Designed for desktop

This tool doesn't fit well onto a small screen. For the best experience, open it in a desktop browser.

PWM LED + camera artefact simulator

Simulates what a camera records from PWM-driven LEDs. The browser does not render at the PWM frequency; each virtual camera exposure is integrated mathematically.

Camera

Shooting settings

LED PWM

Simulation

Pause animation
Simulate headroom (hard clipping effect)

Share

Copies a link to this scenario (current settings encoded in the URL).
Static waveform
Timescale
PWM cycles / exposure
—
PWM cycles / sensor readout
—
Readout exceeds frame period (1/fps) — not physically achievable at this fps; real cameras switch to a faster readout mode.
Temporal alias / beat
—
PWM period
—
Disclaimer: This tool cannot be used to predict with any certainty what will be seen in a real-life situation; it demonstrates possible effects. No tool can replace camera tests under real shooting conditions. Camera preset readout times are representative approximate values and vary by sensor mode (data from CineD.com). The LED grid is divided into horizontal sensor-time strips so rolling-shutter banding can be visualised. RGB is simulated per channel: mixed colours can show channel-specific flicker or colour shifts when one component has a low PWM duty. Rainbow mode is a stress palette with many dominant-channel + low-secondary-channel colours, specifically to reveal this behaviour. Global shutter uses one exposure start time for the whole image. “Every camera frame” walks through every virtual frame in order at a controlled presentation rate (capped at 30 displayed frames/s). “Real time” advances according to elapsed time at the selected camera FPS, so the browser/display may necessarily skip frames at high camera rates. Click any LED to select it for the history graph; the selected LED is outlined and the graph shows its commanded RGB percentages. The history graph shows the mathematically recorded RGB brightness across recent camera frames. Faint dashed lines mark each channel's commanded (target) level, so you can see how far the recorded brightness dips below the ideal.