Color Blindness Simulator
Simulate how colors appear with protanopia, deuteranopia, tritanopia, and achromatopsia using color transformation matrices.
Reviewed by Aygul Dovletova · Last reviewed
How to Use the Color Blindness Simulator
- Enter a color in the HEX input or open the color picker to pick visually.
- Click Simulate. The tool renders five swatches side by side: normal trichromatic vision, protanopia, deuteranopia, tritanopia, and achromatopsia.
- Compare each swatch against the normal-vision baseline. Swatches that look nearly identical to neighbors represent real failure modes - the two colors are indistinguishable to that viewer.
- Iterate: change the color and re-run until the critical pair in your UI (success/error, active/inactive) stays distinct under every simulated vision type.
What the Simulation Actually Computes
Color vision deficiency simulation is not a simple hue shift - it requires modeling how a deficient retina transforms light. The tool uses the Brettel-Vienot-Mollon algorithm, the standard reference in visual-accessibility research since their 1997 paper Computerized simulation of color appearance for dichromats. The algorithm transforms the input sRGB color into the LMS color space (named after the long, medium, and short cone response curves of the human retina), then projects the color onto a reduced plane where one of the three cone types is missing: the L-plane for protanopia, the M-plane for deuteranopia, the S-plane for tritanopia. For achromatopsia (total rod-only vision), the color is collapsed to its luminance value via the standard Rec. 709 luma coefficients. The transformed LMS color is converted back to sRGB through the inverse matrix and gamma-corrected for display. The tool applies the published Hunt-Pointer-Estevez LMS matrix and Brettel\'s pre-computed projection matrices for each deficiency type, so the output matches what academic simulators like Vischeck and Coblis have been producing for two decades.
Where This Matters in Practice
- Chart and graph color palettes, where a red-green combo renders indistinguishable to the 4-5% of users with deuteranomaly - ColorBrewer\'s "colorblind-safe" palettes exist for exactly this reason.
- Traffic-light status indicators (red error, yellow warning, green success) - the canonical red-green failure case - where you must pair color with an icon shape or text label.
- Data visualizations using heatmaps or divergent color scales, where tritanopic users lose the blue-yellow axis that designers lean on as "the colorblind-safe axis".
- Form validation, where red-outlined fields for errors must be paired with text or icons under WCAG 1.4.1 (Use of Color).
- Gaming UIs where team colors (red vs green, blue vs purple) must remain distinct for competitive fairness.
Pitfalls and Scientific Limits
First, the simulator models dichromacy - the total absence of one cone type - which is the severe end of the spectrum. Most color-deficient users are anomalous trichromats (protanomaly, deuteranomaly, tritanomaly), who have a shifted rather than absent cone and perceive more color than the simulated dichromat but less than a normal trichromat. Simulating anomaly requires a parametric model with a severity slider, which this tool does not expose; assume the simulation is the worst case and your actual users will see slightly more differentiation than shown. Second, monitor calibration matters: the algorithm assumes sRGB output on a standard display. On a wide-gamut P3 display rendering content tagged as sRGB, the OS color management should translate correctly, but if you are evaluating colors on an uncalibrated laptop screen, the absolute accuracy drops. Third, the Brettel model is an approximation: real color vision is a continuous perceptual phenomenon and no matrix transform captures every user\'s subjective experience. Fourth, context changes perception: two colors that look identical in isolation may be distinguishable when adjacent to a third color that provides a reference, so the side-by-side simulation here is a strict lower bound on real-world distinguishability. Fifth, never rely on color alone - WCAG 1.4.1 predates this simulator and its guidance is universal: every color cue needs a redundant non-color cue (icon, label, pattern).
The Biology Behind the Algorithm
Normal vision is trichromatic: three cone types with peak sensitivity near 564 nm (L), 534 nm (M), and 420 nm (S). The LMS color space describes any perceived color as a triple of cone activations. Protanopia is the absence of L cones - red light is effectively invisible. Deuteranopia is the absence of M cones, producing the classic red-green confusion and affecting roughly 1% of males of northern European descent. Tritanopia is the absence of S cones; very rare (<0.01%) and attacks the blue-yellow axis designers treat as "safe". Achromatopsia is total cone dysfunction, leaving only rod-mediated luminance perception. The Brettel algorithm exploits the fact that dichromatic vision equals projecting LMS onto the plane of the two working cone types plus the luminance axis.
Comparison to Other Simulators and Audit Tools
Chrome DevTools ships a color-vision emulator in the Rendering tab (protanopia, deuteranopia, tritanopia, achromatopsia, and blurred vision) that applies the transform to the entire rendered page - use it when you want to audit a live site rather than a single color. Stark and axe DevTools run whole-page scans for WCAG 1.4.1 violations, which is a complementary check: this simulator tells you what a color looks like, Stark tells you whether the pair of colors passes contrast in each deficiency. Vischeck (now defunct but widely cited) and Coblis are academic peer tools that use the same Brettel matrices. For video games and apps, the platform SDKs increasingly bake in system-wide simulation (macOS has had dichromacy display filters in Accessibility settings for years). Use this simulator for designing a single color or a small palette; use DevTools or Stark for whole-page audits.
Frequently Asked Questions
What is the Brettel-Vienot-Mollon algorithm?
A mathematical model of dichromatic color vision published in 1997 (Brettel, Vienot, and Mollon, <em>Computerized simulation of color appearance for dichromats</em>, JOSA A). It transforms a color from sRGB into LMS cone space, projects it onto a plane that represents the reduced perception of a dichromat (missing L, M, or S cones), then projects back to sRGB for display. It has been the reference algorithm for academic and commercial color-vision simulators for nearly three decades.
Why is protanopia different from deuteranopia if both are "red-green blindness"?
Protanopia lacks L cones, so red light does not register; deuteranopia lacks M cones, so green does not register. Both collapse the red-green axis, but the luminance shift is opposite - a pure red patch appears much darker to a protanope than to a deuteranope. The confusion lines in CIE space differ enough that serious accessibility work simulates both separately.
What about anomalous trichromacy (deuteranomaly, protanomaly, tritanomaly)?
These are the much more common mild forms - the cone exists but its peak sensitivity is shifted, compressing but not eliminating color discrimination along one axis. The simulator here models the severe dichromatic endpoint, which is the worst case; real anomalous users perceive somewhat more color differentiation. If your design passes the dichromacy simulation it will also pass for anomalous users, so this is a conservative check.
How rare is tritanopia?
Very rare - it affects less than 0.01% of the population, compared to roughly 8% of males who have some form of red-green deficiency. However, tritanopia is often underestimated in accessibility work because the blue-yellow axis is mistakenly assumed to be "safe" for colorblind users. Designing for tritanopes is especially important in data visualizations where a blue-to-yellow gradient is a common divergent scale.
What does the achromatopsia swatch actually show?
The luminance value of your color, computed via the Rec. 709 luma formula <code>Y = 0.2126 R + 0.7152 G + 0.0722 B</code> applied to linearized sRGB. Achromatopsia is total cone dysfunction leaving only rod vision, which responds to luminance independent of wavelength, so the world appears as grayscale. If two colors look nearly identical in the achromatopsia swatch, they are at the same luminance - which also correlates with WCAG contrast ratios that operate on luminance.
Why check color alone when WCAG already says never to rely on color?
WCAG 1.4.1 mandates a non-color cue for every meaningful distinction, which is the right rule. But a poorly chosen palette still fatigues colorblind users by constantly forcing them to read the redundant cue rather than scanning by color. Good palette choice preserves scanability - the simulator finds palettes where color is a helpful bonus rather than decoration.
Does the simulation match Chrome DevTools' color vision emulator?
The underlying math is the same (Brettel-Vienot-Mollon for dichromacies, luminance for achromatopsia). The output should be pixel-equivalent within sRGB rounding. The difference is scope: DevTools applies the transform to the whole rendered page through a CSS <code>filter</code>, useful for live auditing, while this tool shows per-color swatches useful for palette design. Use both.
What is the correct contrast check for colorblind users?
The WCAG 2.1 contrast formula operates on luminance, the same dimension achromats rely on. A pair passing 4.5:1 for normal vision passes automatically for achromatopsia and is very likely to pass the three dichromacies. But contrast only measures brightness; also verify hue discriminability visually using this simulator or DevTools.
Does the tool send my color values to a server?
No. The Brettel matrices and LMS conversions are small constants shipped in the JavaScript bundle, and every simulated swatch is computed in-browser on the local color value. The tool works offline, and your color choices are not logged or analytics-tagged.
Why do simulated colors look different from what a real colorblind user sees?
Because the simulator produces the perceptual equivalent a normal trichromat needs in order to experience the same sensation a dichromat has when viewing the original. The colorblind user viewing the original and you viewing the simulated swatch should perceive the same thing, up to individual variation and monitor calibration.
More Fun & Utility
Aesthetic Text Generator
Transform text into vaporwave, upside down, small caps, bold, italic, strikethrough, bubble, and square Unicode styles.
Open toolASCII Art Generator
Convert text to large block-letter ASCII art. Supports A-Z, 0-9, and basic punctuation.
Open toolCoin Flipper
Flip a virtual coin with animation. Track heads/tails counts, percentages, and streaks.
Open toolDecision Wheel
Add custom options and spin a colorful wheel to make random decisions. Animated CSS wheel with smooth deceleration.
Open toolDice Roller
Roll D4, D6, D8, D10, D12, or D20 dice. Choose quantity, see individual results and totals with roll history.
Open toolFortune Cookie
Open a virtual fortune cookie to reveal a random fortune with lucky numbers. 50+ unique fortunes.
Open tool