Spectral Paint Mixer · Free in the Browser

Daub

Blue and yellow make green here.

Daub mixes oil paint the way oil paint actually mixes. Every pigment carries a full reflectance spectrum, and mixtures are solved with Kubelka-Munk across 31 bands - the same engine that ships inside Helios. That is why two pigments combine into what the tube would give you rather than the grey a screen would. Mix by parts and watch the result, or hand it a colour and let it work backwards to a recipe you can follow at the easel.

Loading the spectral engine…

Why it is different

Blue and yellow make green here

Average two colours in RGB and you walk a straight line through the middle of the cube. That line passes through grey, which is why every digital colour picker turns ultramarine and cadmium yellow into sludge, and why nobody has ever mixed paint that way.

Average two absorption spectra instead and something else happens. What comes back is only the light that neither pigment absorbed - for those two, a narrow window in the green. Daub does the second thing, because that is the thing the paint is doing.

Kubelka-Munk

What happens when you mix

  1. 01

    Every pigment is a spectrum

    Not a hex value. Thirty-one bands describing how strongly the pigment absorbs light at each wavelength, relative to how much it scatters back - what it does to light, rather than what it looks like once your eye is done with it.

  2. 02

    Mixtures add absorption

    Absorption is linear in concentration, so a mixture is a weighted average of its parts' absorption curves. What survives is only the light that no pigment in the mix absorbed.

  3. 03

    Reflectance comes back out

    Kubelka-Munk turns that combined absorption and scattering back into a reflectance curve. This is the step where the non-linearity lives, and where paint stops behaving like arithmetic.

  4. 04

    White gets its weight back

    Plain single-constant Kubelka-Munk assumes every pigment scatters equally, which lets any coloured pigment swamp a white. A per-pigment scattering term restores the enormous scattering that gives white its punch, so a dab of titanium actually lightens a mixture instead of being averaged into irrelevance.

What you get

A mixer, a matcher, and a palette

Why blue and yellow go green

Average two colours in RGB and you walk a straight line through the middle of the cube, which lands on grey. Average two absorption spectra and you keep only the light that both pigments fail to absorb - for ultramarine and cadmium yellow, a narrow window in the green. Daub does the second thing, which is also what the paint does.

Work backwards from any colour

Paste a hex value and Daub searches the paint box for the mixture that lands closest, constrained to two or three tubes because a seven-pigment recipe is no use to anyone. You get proportions in parts, the colour it actually produces, and how far off it is.

Honest about the gamut

Oil is a much smaller gamut than your screen. Plenty of saturated cyans and magentas simply do not exist as pigment. When you ask for one, Daub gives you the closest mixture it can make and tells you the size of the gap, rather than handing back a confident recipe for a colour no paint can reach.

Palettes that are actually mixable

Generate a set of colours that stay distinct from one another and share a family resemblance, with the constraint that every one of them can be mixed from the tubes you own. Each colour comes with its recipe.

The honest part

What the model does and does not claim

Most of Daub's pigments carry measured reflectance spectra from a published FORS database. The rest are reconstructed from their swatch colours, so treat those as a very good predictor rather than a colourimetric instrument. Either way it will tell you the shape of a mixture and get you most of the way to a colour, and your own tube of a given pigment will still differ from anyone else's.

Model
Single-constant Kubelka-Munk · 31 bands
Engine
Shared with Helios, checked against it
Pigments
Named by Colour Index generic name
Recipes
Two to three tubes, expressed in parts
Platform
Any modern browser
Price
Free

Measured pigment spectra from the CHSOS Pigments Checker database. Antonino Cosentino, “FORS spectral database of historical pigments in different binders”, e-conservation Journal 2 (2014), 57-68. Used with permission.

Free · no account

Open the studio

Daub runs in your browser and costs nothing. The engine underneath it is the one in Helios, our painting studio, where the same spectral model drives pigment moving through wet paint on a canvas rather than sitting still in a swatch.

At a glance

Daub specifications

Technical specifications for Daub, Spectral Paint Mixer · Free in the Browser
ModelSingle-constant Kubelka-Munk · 31 bands
EngineShared with Helios, checked against it
PigmentsNamed by Colour Index generic name
RecipesTwo to three tubes, expressed in parts
PlatformAny modern browser
PriceFree