Point your phone's camera at the screen you want to test. We read the rolling-shutter banding, estimate the flicker frequency, and measure the modulation depth — all in your browser. No install, no upload, no account.
Phone and webcam sensors use a rolling shutter — they scan the sensor row by row instead of capturing the whole frame at once. When the light source is flickering, each row freezes a different phase of the on/off cycle. That turns invisible temporal flicker into visible horizontal banding.
The sensor exposes row 0, then row 1, then row 2, each ~20–50 microseconds apart. A steady light produces a clean image. A flickering light produces stripes — one row catches an "on" phase, the next a "off" phase.
We draw each frame to a canvas, read the pixels, and collapse each row to a single brightness value. The result is a 1D signal — brightness versus row — shown in the waveform above.
An FFT on the row signal reveals the dominant spatial frequency of the banding. Multiply by the camera's row readout rate and you get flicker frequency in Hz. Peak amplitude vs. DC gives modulation depth.
There is no universal threshold, but independent research bodies (IEEE 1789, the EU's lighting guidance, and display-industry standards like TÜV Eye Comfort) converge on roughly these ranges.
Tap Zap dims your display using software gamma tables instead of hardware PWM. Your backlight stays at 100% — no blinking, no eye strain, no flicker. System-level. Under 1MB.