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.
Two quick captures off the same screen. First dimmed the normal way (hardware brightness turned down), then with Tap Zap doing the dimming at full backlight. The flicker number should drop — often all the way to flicker-free.
Turn Tap Zap OFF. Lower your screen's hardware brightness to roughly 30%. Aim at a white area, hold steady, then capture.
Set hardware brightness back to 100%. Turn Tap Zap ON and dim it until the screen looks as dim as before. Aim at the same white area and capture.
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.