Color Blindness Simulator

Simulate 8 color vision deficiencies on images, screenshots and color palettes. Full-size PNG export and a pair check that flags colors that look the same.

  • Runs in your browser
  • Your data never leaves your browser
  • Free · No Sign-Up
Image shows the original and 8 simulations. Colors compares every pair in a palette; click a color swatch to copy its simulated HEX value.
Drop an image here or paste one (Ctrl+V / ⌘V). PNG, JPEG, WebP, GIF, AVIF or SVG. The image is processed in this tab and is not uploaded. Images above 16,777,216 pixels are scaled down for both preview and PNG export. HEIC and TIFF require a browser that can decode them.
Choose a window or screen. The tool takes one frame and stops sharing immediately. On phones, open or paste a screenshot instead.
Image mode shows the sample chart when first opened. This button replaces your image with it. Ctrl+L / ⌘L inside the tool restores the sample and clears the color list.

Drop, paste or open an image. It is not uploaded.

Values from 0.1 to 0.9 change protanomaly, deuteranomaly and tritanomaly. The three dichromatic types always use 1.0; the two monochromatic types do not use this slider.
All types shows the original and 8 simulations. Side by side shows the original and the selected simulation at a larger size.
PNG PNG saves the selected simulation at full image size, up to the canvas limit shown with the image. The cards use reduced previews. Export uses the image and severity at the time you click.

Original
Protanopia No red (L) cones
Deuteranopia No green (M) cones
Tritanopia No blue (S) cones
Protanomaly Weak red (L) cones
Deuteranomaly Weak green (M) cones
Tritanomaly Weak blue (S) cones
Achromatopsia No color
Achromatomaly Reduced color
Examples, details and FAQ Worked examples, how it compares with other tools, and answers to common questions.

Example: the Default Chart Colors of matplotlib

The first four colors of matplotlib’s default cycle (tab10, also D3’s category10) are blue #1F77B4, orange #FF7F0E, green #2CA02C and red #D62728. Paste them into Colors mode. Under protanopia the green becomes #A39119 and the orange #A59100: ΔEOK 0.006 and contrast 1.00:1, flagged Look the same. Under deuteranopia the red and green are 0.040 apart (contrast 1.17:1), flagged Hard to tell apart. A line chart with these four series needs labels on the lines or different markers, not only a legend.

Example: Status Colors in a UI Kit

The default palette of Material UI uses #2E7D32 for success, #ED6C02 for warning, #D32F2F for error and #0288D1 for info. This is the list the Colors mode opens with. Under protanopia, success and warning are 0.057 apart (1.22:1). Under achromatopsia, success and error are 0.006 apart (1.02:1): in grayscale they are the same gray. Every pair has a contrast ratio below 3:1 under all types, so the hue carries the whole message. Add an icon and a text label to each status, as WCAG 2.2 Success Criterion 1.4.1 asks.

How the Results Are Computed

Each pixel is decoded from sRGB to linear light, multiplied by a 3×3 matrix, clipped and encoded back. The matrices for the red, green and blue types come from Machado, Oliveira and Fernandes (2009), the same values as the R package colorspace with linear = TRUE. For example, #E74C3C becomes #786D39 under protanopia.

The pair check measures the distance between two simulated colors in OKLab (ΔEOK) and their WCAG contrast ratio:

  • Look the same: ΔEOK below 0.02, the just-noticeable difference that CSS Color 4 uses for gamut mapping.
  • Hard to tell apart: below 0.06. Szafir (2018) found that a noticeable difference for a scatterplot point was about three times larger than lab models predict, so 0.06 is three JNDs. Small marks such as points and thin lines need at least this much.
  • Distinct: 0.06 or more.

The contrast ratio is shown next to ΔEOK because a pair that differs mainly in lightness stays readable in a grayscale printout too. A ratio of 3:1 is the minimum WCAG 2.2 Success Criterion 1.4.11 sets for adjacent parts of a graphic.

How Common Each Type Is

Figures from the prevalence table in Webvision (Kalloniatis and Luu), based on European populations:

TypeMenWomen
Deuteranomaly5%0.4%
Deuteranopia1.5%0.01%
Protanomaly1%0.01%
Protanopia1%0.01%
Tritanopia0.008%0.008%
All typesabout 8%about 0.5%

Tritanomaly and the monochromacies are rare. A review in Eye (Simunovic, 2010) puts rod monochromacy and incomplete achromatopsia at 1 in 33,000 to 50,000. Rates differ by population: the Japanese Ophthalmological Society gives about 5% of men and 0.2% of women in Japan. Test the red–green types first; they cover almost everyone affected.

Compared with Chrome DevTools and Coblis

Checked on 2 October 2026:

  • Chrome DevTools (Rendering → Emulate vision deficiencies, Chrome 152) has protanopia, deuteranopia, tritanopia and achromatopsia with the same Machado matrices, but no anomalous types, no severity and no export. On a Mac with a Display P3 screen, the colors read from a DevTools screenshot match the matrices applied in Display P3, not in sRGB. Green #2CA02C under tritanopia came out as rgb(32, 155, 136); this tool gives rgb(0, 155, 137). On 24 test colors the largest difference was 32 levels.
  • Coblis runs in the browser and keeps the full image size, but shows one type at a time. It uses the HCIRN projection model, so #E74C3C under protanopia is rgb(143, 131, 78), lighter than the Machado result. Its anomalous types are a fixed mix (1.75 parts simulation to 1 part original), with no severity setting, and its monochromacy uses Rec. 601 luma on gamma-encoded values.

Neither tool checks a palette pair by pair.

Limits

  • A simulation shows an average observer, not what one person sees. It does not replace testing with people who have color vision deficiency.
  • Colors outside sRGB (for example in Display P3 photos) are clipped to sRGB before the simulation. The tool reports the share of such pixels when the browser can read the image in Display P3.
  • Images above 16,777,216 pixels are scaled down. HEIC and TIFF open only in browsers that decode them (Safari).
  • Severity applies to the three anomalous types in steps of 0.1. Achromatomaly has no published model; the tool uses a 50/50 mix in linear light.
  • Screen capture is not available on phones; there, take a screenshot and paste or open it.
  • The Colors mode checks up to 12 colors; transparency is ignored.

Related checks: text contrast in the Color Contrast Checker, new palettes in the Color Palette Generator, and exact colors from a screenshot with the color picker.

FAQ

Which color blindness model does the simulator use?

Protanopia, deuteranopia and tritanopia and their anomalous forms use the matrices published by Machado, Oliveira and Fernandes (2009), applied in linear RGB. Chrome DevTools uses the severity 1.0 matrices from the same paper, rounded to three decimals, for its protanopia, deuteranopia and tritanopia modes; it has no anomalous modes. Achromatopsia is the Rec. 709 luminance in linear light, and achromatomaly is a 50/50 mix of the original and achromatopsia because no published matrix exists for it.

Is my image uploaded?

No. The image is decoded, simulated and encoded as PNG in your browser tab. The page sends no request with the image or the colors, and it saves only your view settings (mode, view, type and severity), never the image or the color list. Analytics records only the tool name and the action: opening an image, the sample chart, a screen capture, a download, and one event 1.5 seconds after you stop typing colors.

Why do my results differ from Chrome DevTools?

DevTools applies the matrices in the color space of your screen. On a Display P3 screen (Chrome 152 on a Mac, measured on 2 October 2026) the results differed from the sRGB calculation by up to 32 levels per channel, for example rgb(32, 155, 136) instead of rgb(0, 155, 137) for #2CA02C under tritanopia. This tool always computes in sRGB, so the PNG is the same on every screen.

What does the severity slider change?

It sets the severity of protanomaly, deuteranomaly and tritanomaly from 0.1 to 0.9, in the 0.1 steps of the Machado table. The default 0.6 is a middle value. Protanopia, deuteranopia and tritanopia always use severity 1.0.

How large can the image be?

Up to 16,777,216 pixels, the largest canvas every current browser accepts. A larger image is scaled down to that size and the tool says so. The cards show a reduced preview; the PNG download uses the full processed size and is computed in slices so the page stays responsive.