back
127 comments
There are many ways of making wigglegrams. The first method is to capture multiple horizontally displaced shots together at once. There were cameras designed for this in the 80s that had 4 lenses, with the widest about eye width apart; the intent was for them to be printed as lenticular 3d images. The second is to have a single shot and then synthetically create additional perspective, such as by using a depth map.

I have done both of these. For the first one[0], I used a Nimslo 3D and for the second one[1] I drew with pastels on paper, and then drew a depth map in Photoshop and used it to displace pixels horizontally for the novel perspectives.

The OP's "accidental" wigglegrams are mostly of the first variety but, the horizontal allignment is not locked in and the shots were taken not at the exact same time. That's why the parallax effect isn't as strong and they don't look as good as the first 3 images that came from Nimso/Nishika.

What is intresting is that both of these two methods are relevant in the age of modern iphone. Iphones capture multiple exposures together in live photos, so moving the iphone laterally when shooting creates a "boomerang" wigglegram. Iphones also capture depth map from the LiDAR sensor when shooting in portrait mode.

Between increased hardware capability and genai for synthesizing additional perspectives, we could be living in a golden age of wigglegrams. Alas, they are out of style.

[0] https://fooladder.com/post/115435676962/at-the-concert [1] https://fooladder.com/post/61216111704/starry-venice

OP’s wigglegrams are fun but a bit jarring; your “at the concert” is much smoother. I wonder how we could bridge that gap. My first thought was to use video stabilization algorithms. I suspect they would either fail do to insufficient frames or remove the interesting movement entirely.
I’ll shill a library I wrote to make wigglegrams & stereograms in matplotlib - I think pseudo-3D visualization is super underrated as a technique to understand data! mpl_stereo: https://github.com/scottshambaugh/mpl_stereo
That's cool. They work well. (I prefer the stereograms, but you need extra equipment to view those. I keep a stereo lens pair near my laptop though.)

If you pick up a digital stereo camera that creates .MPO files, I wrote a small app to create stereograms: https://github.com/EngineersNeedArt/Stereographer

i find it so easy to "switch" to 3D with pairs of images like this, it strikes me as strange that cheap stereo-3D isn't a standard interface element.

Other than getting used to making the switch, I don't think there is any cognitive load. Just pairing normal lens focus with a different triangulation distance, which is something we quickly learn to do without thinking when using any glasses or lenses.

I find it a lot more calming than Wiggle-D. And paired with some simple head/eye tracking via laptop cams, it could be really versatile.

The animated plots are great. Be great to have a trackpad rotatable version. (And the need/benefit for head tracking gets really obvious when I move. The perception of reverse/non-sensical dynamics is strong.)

Found a guy on instagram who builds a custom stereoscopic camera with 4 identical pi cams spaced evenly (about 1 inch (2.54cm)) away from each other on a line. It creates wigglegrams https://k4mera.world/
Cool concept, but implementation is bad. The exposures vary so much between the separate shots it's giving a stroboscopic effect. Hopefully they fix it in later revisions.
That was fun, and the script on github looks hand-written which is refreshing after having been reading AI-written code for months.

I have 120k photos in iCloud that I'm sure have duplicates (I exported my library to Google Photos years ago and exported it back to iCloud). The iOS duplicate detection stopped flagging duplicates for me to merge a while back. I gotta do something like this script...

If you're really wanting to do perceptual hash based deduplication, use multiple, heterogeneous hash algorithms (phash, dct hash, mean hash, ...) as it is likely that a given hash algo will happily lossily match with very very different images--but if all hashes match, you're much less likely to have false positives.

I wrote up what I do here: https://photostructure.com/guide/what-do-you-mean-by-dedupli...

yeah there's something you can still feel in hand-written code - the variable names show how someone was actually thinking about the problem. AI code is grammatically perfect but quite hollow
Guilty. I had a few hours to kill on Amtrak... the time will pass anyway y'know

(Plus I didn't know if it would work. The first version was just some Python functions I had to call from the REPL, livecoding style)

Ah yes, artisanal code!
> and the script on github looks hand-written which is refreshing after having been reading AI-written code for months.

We really need a short for "is it AI or not? has entered the discussion".

There's an additional "post processing" step that the article doesn't mention -- which is alignment of the images within the wiggle.

In the example images (which others have noted are stable horizontally) - This alignment gives some control over the parallax and has a very big effect on the quality of the 3D and the ultimate experience of the image.

If you put your mouse, for example, over the marlboro pack that is most directly facing the camera, you'll see it is perfectly stable relative to the screen (despite looking like it's wiggling). In the second image, this point is at the eye of the singer.

On the accidental images, which are also mostly not stable horizontally, this type of alignment can also have a very big impact. An extreme example of how this plays out can be seen in this image - which for example -- locks onto the face

https://strickgifs.tumblr.com/post/48624241536

(NB - like 12 years ago I used to do make a lot of wiggle images -- including spending some time making wigglegrams out of a set of 3D images of the 1906 San Francisco Earthquake & Fire -- https://thesanfranciscowiggle.com/)

Somehow the extra motion seems to reduce the illusion of depth, it just seems like a disjointed animation to me.
The first ones shown are quite neat and pleasant. The "accidental" ones pretty quickly gave me motion sickness as I scrolled through them. They also weren't nearly as interesting, though I couldn't look at them for very long.
Interestingly, the pixelization/noise effect is applied clientside, so if you open an image in a new tab, you can see the original. Originals look much better, in my opinion.
Whew... the continuous motion started triggering migraine symptoms until I closed the window.

But it does have a nice 3d effect. For me, the cycle speed seems excessive. I believe someone suggested tying wiggle effect to mouse movement?

If I'm not mistaken this blog is from a person I had the pleasure of working with in undergrad for a course project. They were brilliant then and are still now.
On my Pixel phone I always leave enable the "Top Shot" setting, it saves a short low resolution video clip in the XMP/RDF metadata of the JPEG file. It saves motions that are not visible on a still image adding valuable information. iPhones and Samsungs have similar settings.
The website is really nicely designed, and the dithering on the images is quite beautiful.
The Nintendo 3DS has two cameras on the back, so you can turn its 3D photos into wigglegrams. I made a web app that does this automatically, it has a few demos where you can mess with offset or timing: https://wiggle3ds.moonlemon.nexus/

It's neat how the offset affects focal point. To my eye they look best when the main object is kept fairly stationary, and the further away you are the faster the wiggle speed should be.

This is what happens when you let the frontend team name things
I've noticed that GIFS with several frames in them tend to be quite large files. I like that these use dithering, which can reduce the file size. Ideally it would be not larger than 2-3 lightweight photos juxtaposed together, and less than 300KB. I also wish there was a pause button on them because sometimes reading articles on the web with them persistent can get tedious. I suppose disabling images can mediate that, or copying the text to another document.

"In Web Browsers (Chrome, Edge, Firefox): Install browser extensions like GIF Scrubber on Chrome or GIF Blocker on Firefox, which add playback controls to any web page.

On iPhone/iPad: Go to Settings > Accessibility > Motion, and turn off Animated Images to pause all GIFs in Safari.

On Mac: Go to System Settings > Accessibility > Display, and toggle off Animated Images.

In PowerPoint: Press the 1 key on your keyboard during a presentation to pause the GIF."

FYI: For "how-tos" like this I try to avoid "adult" content like smoking. (Even though the stuffie holding a joint and lighter is hilarious.)

This is the kind of content that young techies and artists gobble up, and it's not the kind of thing I would want in content shared with children or teenagers.

TIL wigglegram! Lovely article, thanks. I’ve only seen the effect before on those old film cameras with 4 lenses.
Have to bring back split depth GIFs a decade later too?

Just works with depth hinting no actual stereo information.

https://news.ycombinator.com/item?id=48630210

I often take a very short video, under 5s, rather than a picture. Even 1-2 seconds captures dimension and sound in a different way than a still picture. I’ve had people say it’s strange but they work well for me.
Could these use some frame interpolation and smoothing to make them less jerky? Or would that make them just a video clip then?

The first couple of examples were good but later examples were not so impressive. I think the later examples suffered from having too little of perspective change between frames and too much of subject movement -- which defeats the illusion of 3d from a "static" image.

Ideal one would have a left-to-right pan betweem the two clicks ..roughly matching the perspective shift between left eye and right eye ..while the subject stays static.

The same effect is used in a Dan Deacon video.

https://www.youtube.com/watch?v=idteXQcGKlg

If you're using an iPhone, couldn't you automate this by extracting "Live images" which are kind of "mini-videos" around the photo you took?
I have often wondered how the effect was created where e.g. in a documentary you see historic black and white photographs slowly 'camera panning' or zooming somewhat from left to right with a perspective shift. Is that also created as a wigglegram on the basis of multiple photographs I wonder, at times where taking a single photograph was an involved process?
How is the first one done? It seems like the cartons would fall faster than you could manually capture 2-3 images?

(super cool all around, thanks for sharing)

This dinosaur one is the only one that appears really 3d to me. https://i.kym-cdn.com/photos/images/original/000/267/743/48d...

Plus its as old as time.

Includes repo for finding pictures taken from slightly different perspectives in a photo archive, and making wigglegrams from them.
Does anyone know what is the technique they use in some of the documentaries where they use really old photos, but they make them look like this wiggle gram? I know it's not AI because the photos can be decades old, but they still do some stuff which that makes them almost see like 3D.
Doubles as a motion sickness test :)
Could these things be turned interactive? Like a parallax effect when you move your mouse?
There's something really beautiful about this. The moments of your life can dance.
This was such a fun read, and wigglegrams are still popular on tumblr (although tumblr is no longer popular!)

To the people pointing out the lower quality of the author's wigglegrams: it's because they're accidental...

If you have an iPhone, it does this automatically (provided you don't disable Live Photos). Quite fun to review all the random stereoscopy you have inadvertently created by having an unsteady grip on the camera...
I enjoy photos taken while people are speaking with the camera fixed. You can get some really unintentionally funny flips between facial expressions. Kinda like wigglegrams, I suppose.

(Yes, I find silly and immature stuff amusing.)

Good idea, but the discovered image sequences are very different from the deliberately created examples at the top of the page.
This would make a nice add-on for Digikam, which already does perceptual image hashing.

I read that they used artisanal code(!) - did they write a new image hashing algo, or use an established one?

> So I wrote a little script to hash all my pictures:

Would be nice to have the script, or at least the choice of perceptual hashing algorithm.

I will just take a video recording instead of several images in quick succession.
Maybe show them side by side for crosseyed stereo viewing.
That frog with a joint is a turtle with a joint FYI.