evm
My 2014 thesis, now running in a browser tab.
In 2014 I wrote my master's thesis on making video magnification run in real time on a graphics card. Almost nobody saw it. Graphics cards and browsers have come a long way since, so I rebuilt it to run in a browser tab.
Eulerian video magnification takes changes in a video that are too small to notice, the colour of a face shifting with each heartbeat, a chest rising, a structure vibrating, and amplifies them until you can see them. The thesis, Real-Time Parallel Eulerian Video Magnification Using a Graphics Processing Unit (Iona College), was written in CUDA. This version is WebGPU and runs on whatever graphics card your browser has.
How it works
Each frame is split into a pyramid of detail levels. For every pixel, the pipeline filters how that pixel changes over time, keeps only the band of frequencies you ask for, multiplies it, and adds it back to the picture.
What the port fixed
The classic real-time filter has a flaw: the amplified motion arrives late, so it lags the real motion it is drawn on top of. Measured end to end:
| Mode | Added latency | Lag of amplified motion |
|---|---|---|
| Original filter | 0 frames | 2.93 frames |
| Delay-compensated | about 2.7 frames | 0.20 frames |
| Linear-phase | 31 frames | 0.01 frames |
Running it
Pick a preset clip, open a video file, or use your webcam. Nothing leaves your browser.



