FreeToGenerate.com

Simulates in your browser — the image is never uploaded.

Red and green converge with no change in brightness.

Three published models, all peer-reviewed. Brettel is the default because it is the only one of the three that handles tritanopia as a true projection. Switch between them: they agree within about one just-noticeable difference, which is the strongest evidence any of them is right.

or drop one here · JPEG, PNG, WebP, GIF — anything your browser can display.

The image is decoded by your own browser and never leaves this machine — no upload, no server, no account.

Choose an image, or use the colour pair below on its own.

#c8503c

Pick any colour and the tool finds another one that looks identical under this deficiency — the pair below is the whole problem in two swatches.

A pair that cannot be told apart

These two colours are clearly different to most people:

Under this deficiency, both look like this:

#8F7D35

Is this model a real projection?

Determinant
-0.000002

A dichromat has two cone types instead of three, so simulating one has to collapse a dimension — mathematically, the matrix must be singular. Every model here is, to the precision it was published at. The matrix set that circulates without a citation is not, which is why it is not offered.

Also available in: Español · Português · Français · العربية

Color Blindness Simulator

See your image the way a colour-blind reader does, using models that can be checked rather than trusted.

What is a colour blindness simulator?

A colour blindness simulator takes an image and redraws it the way someone with a colour vision deficiency would see it. Most people with one are missing, or have a shifted response in, one of the three cone types the eye uses to sense colour. Missing the red cone is protanopia, the green cone deuteranopia, and the blue cone tritanopia.

This matters for design because the two colours you chose to mean pass and fail may be the same colour to part of your audience. A simulator answers that question in a second, which is why every accessibility checklist recommends one.

The catch is that most simulators on the web are not simulating anything. There is a specific, checkable reason, and this page is built around it.

How to use the colour blindness simulator

  1. Choose the deficiency you want to check. Protanopia and deuteranopia both collapse red against green; tritanopia collapses blue against yellow and leaves red and green almost untouched. The line under the buttons says what each one does.
  2. Drop in an image, or skip straight to the colour picker. The image is decoded and redrawn by your own browser and never uploaded. You get the original and the simulation side by side, and a button to download the result as a PNG.
  3. Use the colour pair to see the actual problem. Pick any colour and the tool searches for a second one that is obviously different to you and identical under the deficiency you selected. That pair is the whole issue in two swatches.

How to tell a real simulation from a colour filter

A dichromat has two working cone types where most people have three. Simulating that means throwing away a dimension: every colour along a confusion line has to come out as the same colour, because that is precisely what the person cannot distinguish. For a linear model this is not a matter of judgement. The matrix has to be singular — determinant zero, rank two. A matrix with rank three maps distinct colours to distinct colours, which is the one thing a colour blindness simulation must never do.

That test is easy to run, so we ran it. Every model offered here passes: Brettel's six half-plane matrices and Viénot's three all have determinants between zero and six millionths, which is inside the rounding their published five decimal places allow. The matrix set that circulates widely on code-sharing sites and CSS filter articles, with no citation attached, does not pass. Its determinants are 0.006822, -0.0525 and -0.0399 — more than a thousand times further from zero than any correct model here.

Stated as something you can picture: push 32,768 colours through a genuine projection and 54.5 per cent of them are still distinct afterwards under protanopia. Push the same colours through the uncited matrix and 87.1 per cent survive, and for deuteranopia 95.8 per cent. A transform that keeps 96 per cent of colours apart has not simulated colour blindness. It has applied a mild tint. Compared against a correct model it is out by a median of 0.107 in Oklab, where a just-noticeable difference is around 0.02.

So this tool ships the three published models and not that one. You can switch between them and watch how little they disagree: Brettel against Machado differs by a median of 0.009 to 0.039 depending on the deficiency, and Brettel against Viénot by 0.023 to 0.027. Three independent groups landing within a couple of just-noticeable differences of each other is the strongest evidence any of them is right.

The honest limits, including one that surprised us

Red and green do not become the same colour. This is the claim every article about colour blindness makes, and measured properly it is wrong. Take a saturated red against a saturated green: under deuteranopia the pair keeps 6 per cent of its original Oklab separation, and under protanopia 62 per cent. The reason is lightness. Protanopia does not merely desaturate red, it darkens it, so the two swatches end up different in brightness even once the hue difference is gone. Measured on the colour axes alone, ignoring lightness, the pair drops to 3 per cent under deuteranopia and 20 per cent under protanopia. Both numbers are true and only the pair of them is honest.

These matrices are defined on linear RGB, and a lot of published code applies them straight to the gamma-encoded values a PNG actually stores. Skipping that step costs a median of only 0.0097 for protanopia, which makes it look harmless, but 0.1069 at the ninety-fifth percentile and 0.2544 at worst. It is a tail problem, so a spot check on a few colours will not find it. This tool linearises.

One model has a documented exception. Machado's severity-1.0 matrices for protanopia and deuteranopia are projections, but the tritanopia one is not: its determinant is 0.2356 and its confusion direction survives. Its rows sum to one, so this is a property of the published model rather than a typo on our side. It is why Brettel is the default here, and why Machado is offered as a comparison rather than a recommendation.

Finally, the scope. These models describe dichromacy — a cone type entirely absent. Most colour-blind people are anomalous trichromats, who have all three cones with one shifted, and see more colour than this shows. Treat the simulation as the strong case rather than the typical one. It also cannot tell you whether a design is usable, only what it looks like; a chart that is unreadable here is definitely a problem, but one that survives may still rely on colour more than it should.

Why is it free?

Because it costs us nothing to run. Simulating colour blindness is one matrix multiplication per pixel, and your browser does it on your own machine in a few milliseconds. Your image is decoded, transformed and re-encoded locally — it is never uploaded, never stored, and never seen by us, because no server is involved at any point.

That means no account, no sign-up, no file size limit and no watermark on the download. Run a confidential design mockup through it if you need to; it does not leave the computer you are reading this on.