News thumbnail
Technology / Sat, 25 Jul 2026 XDA

Someone used an ESP32 to capture light travelling at 10 billion frames per second

Summary This ESP32 samples one pixel per laser pulse, stitching many pulses into a 10 billion FPS slow-motion of light. People have managed to achieve some amazing things with an ESP32, but I think setting one up to capture a laser pulse and create a 10 billion FPS video showing light travelling across the room takes the biscuit. They used an ESP32 to watch a laser beam pulse, then construct a 10 billion FPS video that lets them see the pulse in slow motion. Well, they didn't hook up a 10 billion FPS camera to the ESP32 and record just one pulse. So, it's less one continuous video of a single pulse and more like a patched quilt that makes up a whole.

Summary This ESP32 samples one pixel per laser pulse, stitching many pulses into a 10 billion FPS slow-motion of light.

It uses a stable, repeatable laser and time-aligned sampling so sequential pixels form a continuous frame-by-frame movie.

No exotic high-speed camera required; long-term accumulation on an ESP32 reconstructs an ultra-slow motion video.

People have managed to achieve some amazing things with an ESP32, but I think setting one up to capture a laser pulse and create a 10 billion FPS video showing light travelling across the room takes the biscuit. And while an ESP32 is definitely not capable of recording a single video at that level of slow-mo, someone had an excellent idea as to how to achieve a similar effect using the microcontroller.

This ESP32 project creates a continuous video out of lots of individual laser pulses

Now you can see how light moves with your very own eyes

In a post on the ESP32 subreddit, user doubleyow showed off their jaw-dropping new project. They used an ESP32 to watch a laser beam pulse, then construct a 10 billion FPS video that lets them see the pulse in slow motion. You're literally seeing light travel in the above video.

So, how did doubleyow achieve this? Well, they didn't hook up a 10 billion FPS camera to the ESP32 and record just one pulse. That would be very demanding for the microcontroller and not a setup you'd see in someone's garage. Instead, what doubleyow did was set up the laser so it pulsed in a stable and predictable manner. They then left the laser to pulse by itself for a period of time.

The ESP32 watched the laser and recorded a single pixel of each pulse at a specific position at a specific moment in time. Because the speed of light doesn't change and the laser's pulsing didn't change, the ESP32 slowly accumulated lots of sequential pixels from lots of different laser pulses. Once it was done, it then stitched all the images together into a video.

What you're seeing above isn't the result of recording one laser pulse, but instead, the result of recording lots of identical laser pulses at different moments and piecing them together. So, it's less one continuous video of a single pulse and more like a patched quilt that makes up a whole. Fortunately, because the laser is consistent, the result is pretty much what you'd actually see if you slowed time down and watched a single pulse.

If you're brave enough to read up on all the technical stuff that got this project off the ground, doubleyow has a separate Reddit post where they detail how they got the ESP32 to do this in the first place.

© All Rights Reserved.