When you'd use this
Right after settling on a design system palette, choosing categorical colors for a chart, or before shipping work that needs to meet WCAG / KWCAG 1.4.1. A pair that passes a contrast check can still look like the same grey to a deuteranope — meaning charts, buttons, and labels that rely on color alone fail to convey information.
Two modes
- Palette — Paste one or many hex / rgb / oklch tokens (up to 24). Each color is shown side-by-side across four vision types. Drop the full color-palette 11-stop scale in to check if neighboring stops remain distinguishable.
- Image — Upload a single JPG / PNG / WebP (up to 20MB). The original plus four simulated variants render side-by-side. Useful for charts, infographics, UI screenshots.
Four vision types
- Deuteranopia (deutan) — M-cone loss, ~75% of red-green CVD
- Protanopia (protan) — L-cone loss, ~1% of red-green CVD
- Tritanopia (tritan) — S-cone loss, ~0.01% blue-yellow CVD
- Achromatopsia — all cones lost, grayscale view
Anomalies (deuteranomaly, protanomaly) use the same matrices scaled by severity. This tool ships v1 with full anopia only.
Simulation model
Machado, Oliveira, Fernandes (2009) sRGB-to-sRGB matrices at severity 1.0. The matrix is applied directly to gamma-encoded sRGB rather than linear-RGB — that's about 3× faster and visually almost identical for preview purposes. Don't use this output for clinical assessment.
WCAG 1.4.1 — don't convey meaning by color alone
WCAG 2.1 (and KWCAG 2.2) section 1.4.1 requires that color is never the only means of identifying, distinguishing, or emphasizing information. If two stops collapse to the same shade in any of the four simulated views, add another cue — shape, text, pattern, or position.
Local processing
Image decoding uses createImageBitmap; simulation runs on Canvas getImageData with the matrix in code. All in the browser. No model download — the matrix coefficients ship with the bundle (zero added dependencies).
When this isn't the right tool
- Medical assessment — this tool is design preview only. Use standardized clinical tests (Ishihara, etc.) for diagnosis.
- Exact perception by an individual — simulations are models; individuals vary. Real user testing remains the gold standard.
- HEIC (iPhone photos) — browsers can't decode HEIC. Export to JPG / PNG first.
Images and palettes stay local
Machado et al. 2009 matrix arithmetic — no external model, no server calls. Pixel processing uses Canvas getImageData; the simulated views render only in this page. No upload trace.