The hundred millisecond flash law

Built on Bloch's law, 1885 by A. A. Bloch. Sources for this reference

A one frame flash and a three frame flash are not the same effect at different lengths. Below roughly 100 milliseconds the visual system integrates energy rather than tracking instantaneous brightness, so duration and intensity trade against each other directly. That is Bloch's law, and it decides whether a punch lands or is simply missed.

Four patches, same total light energy, spread over 25, 50, 100 and 200ms. The bar under each is its own time-averaged value.

What you should see

The first three patches look close to equally bright despite one being eight times the peak intensity of another, because each delivers the same energy inside the integration window. The fourth, at 200ms, is past the window and reads as a longer, dimmer event rather than a flash.

The arithmetic you actually need

Below the critical duration, perceived brightness follows the product of intensity and time:

I * t = constant        (for t below ~100ms)

// so, at 60fps:
1 frame  (16.7ms) needs 6x the amplitude of a 6 frame flash
2 frames (33.3ms) needs 3x
4 frames (66.7ms) needs 1.5x

Which is the practical trap. A one frame hit tuned by eye at 60fps and then shipped at 30fps doubles in duration and therefore in perceived strength. The same effect is not the same effect on a different display.

Why this matters beyond feel

It cuts both ways. A punch that is too short and not bright enough is invisible, and tuning it by adding more frames is the wrong axis if what you wanted was a snap. Equally, brightening a short flash to make it land can push it into a range that is a genuine accessibility problem, and the safe answer there is almost always fewer, slower, smaller and lower contrast rather than a shorter spike.

Rules of thumb

  1. Under about 100ms, intensity and duration trade one for one. Halve the time, double the amplitude.
  2. Author flashes in seconds, never in frames, or the effect changes strength with frame rate.
  3. Past roughly 100ms extra duration stops adding punch and starts adding presence.
  4. Keep repeated flashing under 3 Hz, and keep it local rather than full screen.
  5. Ship a reduce-flashing setting and make it do something real, not just lower the alpha slightly.

All 61 notes How to use them Credits