Color Blindness Simulator
Put a palette of hex codes in, or choose an image, and see the same thing beside it through deuteranopia, protanopia or tritanopia. The simulation is the published one: colours are taken out of the sRGB gamma curve, converted to cone responses and projected onto the plane the named deficiency can still see, using Viénot's 1999 matrices for the two red-green types and Brettel's 1997 pair of half-planes for tritanopia. The severity slider runs from 0 to 100 per cent, so the milder anomalous forms sit on the same control, and the exact equation the pixels went through is printed under the result rather than hidden. Images are decoded, simulated and saved in this tab: no upload, no account, no watermark, and transparency is carried through untouched.
4 colours under deuteranopia at 100% severity: #0B7A85 becomes #686886, #E08573 becomes #A7A76F, #5FBFC9 becomes #AAAACA, #1A1D1C becomes #1C1C1C.
- Type
- Severity
- 100%
- Model
- Viénot 1999
- Source
Deuteranopia, Viénot 1999: sRGB linearized, cone responses by the 1999 LMS matrix, M' = 0.494207 L + 1.24827 S, back to linear sRGB at 100% severity, then clamped into the sRGB gamut.
The first colour in the palette, #0B7A85, under all three types at 100% severity. Those lines come from the same code your image goes through.
- Results outside the sRGB gamut are clamped into it, which flattens the strongest greens and cyans under tritanopia.
- Severity below 100% blends the simulation with your colour in linear light. It stands in for anomalous trichromacy rather than measuring it.
- A screen's own calibration, brightness and colour profile change what anyone sees. The simulation assumes plain sRGB.
Common questions
- What does a colour blindness simulator actually show?
- It shows which colours stop being different. Each type of dichromacy is missing one of the three cone responses, so a whole family of colours collapses onto a single line that a person with that type cannot tell apart. The simulation projects your colours onto the plane that is left and draws the result in ordinary sRGB, which is why a red and a green that look nothing alike to you can come out as almost the same yellow. It is a model of what separates and what does not, not a photograph of anyone's experience.
- Which types can I simulate here?
- Deuteranopia and protanopia, the two red-green types, and tritanopia, the blue-yellow one. Deuteranopia is missing the M cone and red and green meet in the same yellow. Protanopia is missing the L cone, so red darkens sharply as well as meeting green: pure red comes out near #5E5E0D. Tritanopia is missing the S cone, and blue and green draw together while yellow pales toward pink. The milder anomalous forms, deuteranomaly, protanomaly and tritanomaly, are approached with the severity slider rather than as separate entries.
- What does the severity slider do?
- It runs from 0 to 100 per cent. At 0 the colours are returned exactly as they went in, byte for byte. At 100 you get the full dichromatic simulation, the case where the cone is absent. In between, the simulated colour is blended with your original in linear light, which is a standing approximation of anomalous trichromacy, where the cone is present but shifted, and not a measurement of it. The percentage you choose is printed next to the formula under the stage.
- Which formulae does it use?
- Colours are linearized out of the sRGB transfer function and converted to LMS cone responses with the matrix Viénot, Brettel and Mollon published in 1999. Protanopia projects with L' = 2.02344 M - 2.52581 S and deuteranopia with M' = 0.494207 L + 1.24827 S, the single-plane forms from that paper. Tritanopia uses Brettel's 1997 construction instead, two half-planes joined along the neutral axis, because one plane is not enough there: the blue half is S' = -0.395913 L + 0.801108 M and the other is much flatter. Those half-planes are anchored on the white point and on the sRGB blue and red primaries, so white, blue and red come through tritanopia unchanged. The equation actually applied is printed under the result every time you change type or severity.
- Why do strong greens look so extreme under tritanopia?
- Because the honest answer is outside what a screen can show. The tritanopia projection sends a saturated green to a blue far beyond the sRGB gamut, and the value is clamped back into range to be displayed at all. Clamping flattens those colours, so saturated greens and cyans are the least reliable part of this simulation. Muted colours, the sort most interfaces and charts are built from, generally stay inside the gamut and are untouched by the clamp.
- Is my image uploaded anywhere?
- No. The picture is decoded in this tab, drawn to a canvas, simulated and written back to a PNG on your own device. There is no account, no watermark and no size cap beyond 25 megapixels, which is the point at which reading the pixels back off a canvas stops being reliable in a browser. Your alpha channel is copied through untouched, so a transparent background stays transparent. The palette you type and the settings you pick are kept in your own browser's storage so the page opens where you left it, and clearing your browser data clears them.
- Can this tell me whether I am colour blind?
- No. This is not a clinical test and it does not diagnose anything: it is a drawing tool that applies a published transform to colours you supply. Colour vision itself is measured by an eye care professional with pseudoisochromatic plates, an arrangement test or an anomaloscope, none of which a web page can stand in for. Nothing you see here should be read as a result about your own vision.
- Does it check colour contrast for accessibility?
- No. Simulation and contrast answer different questions. This page shows whether two colours stay distinguishable under a deficiency; a WCAG contrast ratio measures the lightness difference between text and its background, which matters for everyone. A palette can pass contrast and still collapse under deuteranopia, and the reverse happens too. Use the colour contrast checker on this site for the ratio, and this page for the separation.
A published simulation model (Brettel/Viénot) applied in linear sRGB. It shows how colours separate under each type; it approximates vision and is not a clinical test or a WCAG contrast check.