Delta Palette

A colorblind-focused accessibility tool that generates clearer, more inclusive color palettes by leveraging the perceptual uniformity of Oklab and distance-maximization.

Delta Palette

The Idea

My mom has deuteranopia (form of red-green color blindness), and on our trips she'd always squint at transit maps, unable to tell the lines apart. That is because she has difficulty distinguishing between red and green colors.

How I see it

How I see it

How she sees it

How she sees it

Then I realized: if I could generate palettes optimized for both normal vision and deuteranopia, I could try to make maps more usable.

The Science

When I set out to built this generator, I knew I had to figure out 3 things:

  1. A color space where numbers match perception
  2. A simulation of color vision deficiency (CVD)
  3. An optimization that keeps colors "far apart"

Why Oklab?

Oklab is a perceptual color space designed so that equal numerical moves correspond to equal perceived shifts in hue, chroma, or lightness. In sRGB, two colors with the same coordinate difference can look wildly different to our eyes. But in Oklab, Euclidean distance lines up with how we actually see. That makes it perfect for measuring and maximizing 'visual distance' between any two palette entries.

Simulating Color Vision Deficiency (CVD)

I recreated deuteranopia, and other forms of color-blindness by pairing Culori's color-space conversions with the color-blind library. The combination gives an exact preview of how each swatch appears to viewers with CVD.

Maximin Optimization

Instead of simply spreading colors evenly, I pose a "maximin" problem: pick n points in Oklab such that the smallest pairwise distance, checked under both true-color and simulated-color views, is as large as possible. This worst-case guarantee ensures no two lines on your map ever look confusingly similar, no matter who's looking.

Results

The objective was to test whether a Delta Palette-generated color set improves route separability for users with deuteranopia compared with the standard NYC subway colors.

Here's how the map looks after applying a 12-color palette generated by my code:

How I see it

How I see it

How she sees it

How she sees it

In the simulated view, red/green trunk lines previously merged into a single olive tone. The new palette separates them into distinct steel-blue and dusty-green.

Testing results with my friend with color vision deficiency:

Final Thoughts

My primary motivation was improving transit-map legibility for users with deuteranopia. But the generator can be applied to other contexts where color separability is important. By ensuring each hue is maximally distinct in both normal vision and CVD simulations, we can make visualizations and interfaces more accessible.

Other Potential Applications:

  • Educational Materials: Diagrams, instructional posters, or textbooks often use colored regions to convey meaning; optimizing those colors can help students with partial color blindness follow along without confusion.
  • UI Theming & Design Systems: Any design system that relies on color coding (buttons, alerts, badges) can benefit from a CVD-friendly palette so that interactive elements remain clear for all users.
  • Building Floorplans & Evacuation Routes: Emergency signage or interactive floorplans that rely on multiple colors (e.g., exit paths, hazard zones) can use something like this to guarantee legibility for safety instructions.
© 2026 Felipe Min