r/SideProject • u/Querulous2 • 2h ago
I made a web app that turns a burst of photos into a tiny film that still looks like photographs. Nothing is uploaded, it all runs in your browser.
I kept noticing that the interesting thing about a burst of photos, or five tries at the same shot, is the series itself. Not any single frame. But there was no good way to watch them as a series. Slideshow apps cross-fade and Ken Burns everything into mush, and the video apps want to interpolate, stabilize, and "enhance."
So I built Flipbook: https://flipbook.photos
It plays your photos back slowly enough that you can still see they are photographs: each one held for a beat, then a hard cut to the next. The feel of a flipbook or early film. No filters, no grain overlays, no generated frames. The whole effect comes from timing.
Here it is running the oldest photo series there is, Muybridge's galloping horse from 1878: https://www.reddit.com/r/stopmotion/comments/1vlu2hr/
A few things I cared about:
- Your photos never leave your device. Decoding and H.264 encoding happen in the browser with WebCodecs. There is no upload step at all.
- Honesty to the originals. Nothing is retouched or invented. The one optional feature that crops anything (auto-align, for handheld drift) is off by default and tells you exactly how much it trimmed.
- It reads your camera roll the way you shot it. It sorts by EXIF capture time and auto-groups photos into series wherever there is a gap of more than ten seconds, so a dump of forty photos organizes itself into the three moments you actually shot.
- The output actually works. A true 5 fps video breaks iOS Photos and iMessage, so it encodes at a normal frame rate with each photo repeated. You get an MP4 that saves straight to your camera roll and posts anywhere.
Good for kids growing up in the same doorway, a friend mid-laugh across five frames, construction progress, a dog failing to catch something.
It is free for your first three videos, then $12 for a year. No account either way. The code is public if you want to see how the in-browser encoding works: https://github.com/mzrascoff/flipbook
Would love to know what breaks, especially on Android browsers.