# 실수로 wigglegram을 만들어버렸어요

> Clean Markdown view of GeekNews topic #30739. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=30739](https://news.hada.io/topic?id=30739)
- GeekNews Markdown: [https://news.hada.io/topic/30739.md](https://news.hada.io/topic/30739.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-06-23T09:10:59+09:00
- Updated: 2026-06-23T09:10:59+09:00
- Original source: [lmao.center](https://lmao.center/blog/wiggle-accidents/)
- Points: 2
- Comments: 1

## Topic Body

- 사진 라이브러리에 쌓인 비슷한 각도의 연속 사진을 자동으로 이어 붙이자, 의도하지 않은 **wigglegram** 수백 개가 만들어짐
- wigglegram은 여러 프레임을 GIF처럼 반복 재생해 만드는 **입체 이미지**로, 같은 장면을 약간 다른 시점에서 찍은 사진들이 재료가 됨
- 자동 추출에는 TinEye 같은 역이미지 검색에 쓰이는 **지각 해시(perceptual hashing)** 를 활용해, 비슷한 이미지끼리 해시가 더 가까운 성질을 이용함
- 스크립트는 사진 해시를 계산하고 이미지 쌍의 **해밍 거리**를 비교해, 임계값 아래의 비슷한 사진 묶음을 wigglegram으로 추출함
- 일부는 의도한 촬영 결과지만 대부분은 우연히 찍힌 사진이며, 입체감보다 작은 무의식적 동영상 같은 **kinescopic** 결과도 많음

---

### 우연히 생긴 wigglegram
- [wigglegram](https://en.wikipedia.org/wiki/Wiggle_stereoscopy)은 여러 프레임을 반복 재생해 만드는 **스테레오 이미지**의 한 형태임
- GIF처럼 프레임을 루프시키면 약간 다른 시점의 이미지들이 이어지며 입체적인 효과가 생김
- 같은 장면을 조금씩 다른 각도에서 여러 장 찍는 습관과 카메라 롤을 정리하지 않는 습관 때문에, 사진 라이브러리에 비슷한 사진들이 많이 쌓여 있었음
- 이런 사진 묶음은 “같은 장면을 다른 각도에서 찍은 사진들”이라는 wigglegram 입력 조건과 잘 맞음

### 지각 해시로 비슷한 사진 찾기
- 사진 라이브러리에서 비슷한 이미지의 연속 구간을 자동으로 찾기 위해 [지각 해시(perceptual hashing)](https://en.wikipedia.org/wiki/Perceptual_hashing)를 도입함
- 지각 해시는 sha1 같은 **암호학적 해시**와 달리, 비슷하게 보이는 이미지끼리 해시 비트가 더 많이 겹치도록 동작함
- 스크립트는 모든 사진의 해시를 계산함
  - 해시 계산 자체는 빠름
  - iCloud에서 사진을 다운로드하는 과정은 느림
- 해시 간 **해밍 거리**를 계산해 이미지 쌍이 얼마나 비슷한지 판단함
- 예시에서는 해밍 거리 10 정도가 좋은 경계처럼 보였고, 이를 기준으로 비슷한 사진 쌍과 묶음을 추출함

### 자동 추출 결과의 성격
- 자동 추출 결과 **수백 개의 wigglegram**이 만들어짐
- 일부는 의도적으로 찍은 사진에서 나온 것이지만, 대부분은 실제로 우연히 생긴 결과임
- 우연한 사진들은 항상 전형적인 입체 이미지처럼 보이지는 않음
  - 많은 결과가 “stereoscopic”이라기보다 “kinescopic”에 가까움
  - 작은 무의식적 영화처럼 보이는 결과들이 있음
- 여행지나 장소 사진, 동물, 디자인 작업, 조각 사진 등 다양한 대상에서 wigglegram이 생성됨

### 잘 맞는 소재들
- **동물**은 예측하기 어렵기 때문에 wigglegram 소재와 잘 맞음
  - 고양이, 개, 비둘기 같은 예시가 포함됨
- 디자인 작업도 여러 각도나 상태를 남기기 쉬워 결과물이 나옴
  - iPad Sidecar, baby book, resistor bridge 같은 작업 예시가 있음
- 조각이나 물체 사진도 여러 시점이 이어지면서 wigglegram으로 변환됨
  - Olivetti, frog with a joint 같은 예시가 포함됨

### 공개된 스크립트
- 스크립트는 [GitHub](https://github.com/JCLemme/wiggle-wiggle)에 공개되어 있음
- Mac에서는 **iCloud 사진 라이브러리**에 대해 동작함
- 그 외에는 사진이 들어 있는 디렉터리를 지정해 사용할 수 있음

## Comments



### Comment 60187

- Author: neo
- Created: 2026-06-23T09:11:00+09:00
- Points: 1

###### [Lobste.rs 의견들](https://lobste.rs/s/uuyjxb/help_i_accidentally_wigglegram) 
- 정말 재미있고 엉뚱함. 이렇게 **바보 같은 아이디어**인데도 아주 잘 작동함  
  다만 그 해싱 과정은 “비판”이 아니라 **다운로드와 해싱 작업량이 엄청나다**는 의미에서 꽤 빡세 보임. 이런 빠른 장난감 프로젝트/실험에서는 일단 동작하는 가장 단순한 방법을 쓰고, 백그라운드에서 “오래” 걸리게 두는 게 충분히 합리적임  
  이런 걸 떠올릴 상상력이 있었다면 같은 방식으로 했을지, 아니면 비슷한 시간대에 찍힌 사진이 아닌 것들을 먼저 걸러냈을지는 모르겠음. 다만 그러다 “최적의 사전 필터링”을 일주일 붙잡고 있다가 질려서, 결국 흥미롭거나 재미있는 결과를 못 냈을 가능성이 크다는 고전적인 함정이 있음
  - 전형적인 **설거지 문제** 같음. 10분 안에 직접 다 할 수도 있지만, 아니면 “그 장치”에 넣고 몇 시간 기다리면 개인적인 노력은 거의 안 들어감

- 꽤 멋진 **특수 효과**임

- 촬영 날짜를 분석해도 비슷한 결과가 나올지 궁금함. 모든 연속 사진이 빠르게 찍힌 건 아니라서 **거짓 음성**이 더 많을 수도 있겠음
  - “해싱 후보로 묶기” 위한 필터로는 좋을 것 같음. 위치 정보가 있다면 같이 쓰면 되고, 적어도 모든 사진을 해싱하지 않아도 됨  
    게다가 macOS에서는 클라우드에서 뭘 내려받지 않고도 Photos의 **sqlite 데이터베이스**에서 타임스탬프와 위치 정보를 바로 가져올 수 있을 것 같음

- 사진 정보를 어느 정도 보존해서, 해시끼리 비교하면 사진의 **유사도**를 얻을 수 있는 해싱 알고리즘이 있는 줄 몰랐음. 생각해 본 적 없는 활용처가 엄청 많을 것 같음

- 저 거칠고 **로파이한 느낌**은 어떻게 내는 걸까?
  - 256색 팔레트를 쓰는 [Floyd-Steinberg dithering](https://en.wikipedia.org/wiki/Floyd–Steinberg_dithering)임  
    GIF를 만들면 256색 팔레트는 사실상 “공짜”로 따라옴. 다만 각 창이 자기 지역 색상표를 갖는 여러 창 프레임을 합성하는 식의 고급 기법을 쓰지 않는 경우에 그렇다

- 2013년에 당시 파트너와 함께 양방향 거울 뒤에 iPod 3대를 놓고, 작은 웹 앱으로 제어하며, iPad로 촬영을 트리거하고 결과를 보여주는 **입체 사진 부스**를 만들었음  
  완성도는 별로였지만 만드는 과정은 재미있었음. http://stereogif.me

- **멀미**가 있는 사람은 이 페이지를 열 때 조심하는 게 좋음

- 멋지다. 예전에 Nintendo 3DS 사진을 받아 두 카메라 프레임으로 **애니메이션 GIF**를 만들어 주는 서비스가 있었음  
  내 블로그에서는 그걸 “wigglepics”라고 불렀고, 꽤 재미있는 미감이었음

- 이 효과가 2010년대 초반 Tumblr와 주변 사이트에서 엄청 유행했던 게 기억남  
  덕분에 지난 몇 시간 동안 고양이 사진을 찍어서 GIF를 만들고 있었음
