A live 3D shape, dithered in two close tones. It doesn't move on its own.
Inside FlashBan
What it is
FlashBan is a free Chrome extension for people with photosensitive epilepsy. It finds flashing video, GIFs, canvas and animation and tones it down to reduce exposure.
Soften first. Cover only if it won't calm down. Dim what it can't check. No account and no server: the only record is a site's domain, on your computer, for 30 days.
Not a medical device. It reduces exposure to flashing content; it can't guarantee protection.
01Sample every frameVideo frames, canvas pixels, animated images and CSS animations are read as they're drawn, never on a slow timer a strobe could slip between.
02Measure brightness and redRelative luminance per WCAG, plus a separate check for saturated red. Near-black noise counts as having no colour.
03Count in a one-second windowBy the clock, not by frames. Flashing area is added up across elements, so one big flash split into tiles still counts.
04DecideOver the limit (WCAG by default; Strict and Relaxed in the popup) means act. Can't read it at all means fail closed.
05Soften, cover or dimFlashing media stays playing but is dimmed and in greyscale. CSS animation is slowed; a cover or lockdown protects content when needed. Unreadable media stays dimmed.
Tested build: the judging tag final (129e645), headless runs on our Windows laptop, plugged in. 29 of 29 pages matched every run; all 16 attack pages were protected and all 8 benign/control pages allowed. Full results. These results describe that build and test set; later builds need their own checks.
1.3 sA page deletes FlashBan's cover every frame: locked down in 1.24–1.25 s.Overlay killer ▪ T6
DimRed-only flashes with almost no brightness change: dimmed and in greyscale.Red only ▪ T3
DimA 12.5 Hz strobe timed between samples: dimmed and in greyscale.Aliasing ▪ T1
DimFlashing after 10 calm seconds: dimmed after it starts.Late start ▪ T8
Dim40 strobes plus busy work: protected by dimming.CPU flood ▪ T5
DimA strobe on a canvas it can't read: dimmed and labelled.Tainted canvas ▪ T4
16 tilesOne big flash split into small tiles: still blocked.Split area ▪ T2
0 of 8Benign/static pages flagged across three runs (24 allow verdicts).False positives in this test set
From the changelog
Merged pull requests from the hackathon build, newest first. Every fix to a false alarm gets an everyday test page, so the harness keeps it fixed.