How the matching works: where the colour values come from and what happens to them
Every page here ends in a number. This is the whole path that number takes, from a sampled colour value to the word printed beside it — and what gets dropped on the way.
This site is a build, not a database with a search box in front of it: one command reads a file of colour values, ranks every colour against every other one, and writes the finished pages to disk. Every number on them came from the same rule, run over all 9292 paints. The rules are the whole product, so here they are, in order.
Where the colour values come from
From one dataset, and it is not this site's. Paint names, manufacturer codes, range labels and colour values come from Arcturus5404/miniature-paints, under the MIT licence; the about page carries the licence text and the attribution it requires.
Those values are community-sampled approximations, not manufacturer specifications. Nobody publishes instrument readings for every pot on the market; if anyone did, this site would use them. That single fact sets the ceiling on everything below it: sampled values are good enough to rank candidates and not good enough to reproduce a colour exactly.
Each row arrives with a name, a maker, one or more range labels, a catalogue code, an sRGB value, and that value's CIELAB coordinate under a D65 white point — daylight, roughly a north-facing window. Lab is what the matching works from; the hex is only ever shown to you.
What never reaches a page
The catalogue is filtered before anything is compared, and the filter is deliberately stricter than it needs to be.
- Anything not from the MIT dataset. The source mixes rows that may be redistributed with rows harvested from retailer listings or contributed privately. Only the first kind is served.
- A handful of Brazilian ranges, excluded by name. They arrive carrying the same source label as everything else, but the attribution file they came with records the terms as personal, non-commercial use with redistribution refused. When two records of one licence disagree, the stricter one wins.
- Rows with no colour value, which are useless to a colour-matching site whatever their licence says.
- Colour standards. RAL and Pantone are reference systems rather than paints you can buy, and a match list full of them answers nothing at the bench.
What survives is written to a file of its own, and the site is built from that rather than the original: a range added upstream under a licence this site cannot honour never reaches the build, because the build never reads the upstream file.
Those excluded Brazilian ranges are a real gap. If you paint in Portuguese, Zenital runs the same colour engine over a catalogue that includes them, and works a mixing recipe out of the pots you own when no range carries the colour ready-made.
One colour under two labels gets one page
Makers sell the same paint in more than one line. Citadel's Balthasar Gold ships as a Base and as an Air pot at one recorded value, and it is no special case: 401 rows in the current dataset are a colour already published under another label. Each folds into the page it shares, which lists every label the paint ships under in its header, so nothing is hidden by the fold. What those labels are hiding from each other — a lacquer and an acrylic, a can and a pot, a brush paint and an airbrush one — is a guide of its own.
Published apart they would be two pages of one colour, each offering the other as an equivalent at ΔE 0.0 — an answer to nothing — and splitting whatever standing "balthasar gold equivalent" earns between two competing URLs. Only rows of identical colour fold: a name a maker reuses for a different pigment is a different paint and keeps its own page. The URL the fold empties is not deleted either, but keeps a page whose canonical points at the paint that absorbed it.
Two colours, one number
The distance is CIEDE2000 (CIE 142:2001), computed on the Lab coordinates. It is the current standard for exactly this question — whether two samples are the same colour. Why it is not simply the gap between two hex codes, and what the number is worth on a model, is a guide of its own.
What belongs here is how the implementation is checked, because CIEDE2000 is easy to get almost right. It carries four hue bands and a rotation term that only bite in the blues, so a version with the rotation wired wrong agrees with a correct one across most of colour space and disagrees exactly where a painter keeps their blues. This one is tested against the 34-pair acceptance set Sharma, Wu and Dalal published in 2005 for that trap, and has to reproduce every pair to four decimal places — including the two pairs that are the same colours in opposite order, which prove the answer does not depend on which pot you name first.
Every colour against every other one
There is no curated conversion table anywhere on this site and no hand-picked pairs. Every colour is compared against all the others, the nearest is kept for each of the 31 makers, and the makers are ordered by how good their best answer is — so the top block of a paint page holds the closest colour that exists anywhere, not one from a brand somebody chose to feature. Ties break on the paint's name, which sounds like housekeeping and is not: two builds of the same data give the same pages, so a change in the output is a change in the input.
The method has no opinion about what you want and cannot be given one. It does not know whether you need something opaque, something still in production, or something a shop near you stocks: it will offer a wash, a metallic, a one-coat paint or a bottle from the art aisle to anybody whose colour it fits. That is why every match row prints the range label of what it is offering — the only warning on the page that the closest colour may be the wrong product.
The one place any of this runs while you watch is the colour finder, which ports the same formula and ranks the catalogue in your browser.
What that produces, across the whole catalogue
Every other page here is about one paint. This is the one measurement about the method: for each colour on the site, the band its best answer anywhere else falls into, counted by the build that wrote the pages.
| Best answer anywhere | ΔE | Colours | Share |
|---|---|---|---|
| indistinguishable | under 1 | 3297 | 35.5% |
| near-perfect | 1 to 2 | 4495 | 48.4% |
| very close | 2 to 3.5 | 1377 | 14.8% |
| close | 3.5 to 5 | 102 | 1.1% |
| similar | 5 to 10 | 21 | 0.2% |
| far | 10 and over | 0 | 0.0% |
The good number is not the number you need
More than eight colours in ten have a stand-in somewhere at ΔE 2 or better, and the bottom row is empty: nothing here is unanswered outright. Before that reads as a boast, it does not measure the quality of the matching. It measures density. 9292 colours from 31 makers cover the space thickly enough that the nearest colour anywhere is nearly always excellent — and "anywhere" is not a constraint anybody paints under.
Put the constraint you really have back in — one range, one shop, one shelf — and the figure drops hard. A conversion chart between two named ranges answers a good deal less, and how much less depends on the range you are moving into and even on which direction you read the chart in. The table above is the ceiling; every real question you bring here is asked below it.
The bottom two rows are worth a look for the opposite reason. Those colours are not obscure paints in forgotten ranges; their colour is not really a colour. The least-answered pot in the catalogue is Scale75 Acid Pink, an FX-range fluorescent, and behind it come Warcolours Metallic Ultramarine and a phosphorescent green. Fluorescent, phosphorescent, metallic: three ways of being a surface effect rather than a pigment colour, which one Lab coordinate summarises poorly. The method runs out on the pots that were never describable by six hex digits in the first place.
What none of this fixes
The pipeline is careful about what a pipeline can be careful about: licensing, duplicates, dead URLs, the arithmetic, reproducibility. None of it touches the two limits that matter most. The input is sampled rather than measured, so a value can be wrong before anything here has a chance to be right; and a colour value describes a colour, while a pot also has opacity, finish and behaviour under a wash, any of which can make a ΔE 0.8 match useless for the job in front of you. The honest description is therefore narrower than it looks: this site ranks candidates, it does not choose one. Choosing a substitute is the order to make the rest of that decision in, and its last step is always a scrap of plastic under the light you paint in.
When it is wrong
A wrong colour value does not stay in one place: it becomes a wrong recommendation on every page that paint appears on, and it is most convincing when it is closest, because a confident ΔE 0.4 beside a name is what a reader stops checking. Corrections are worth more than compliments here, and the about page has the route — an issue on the repository that also holds this generator, so a report and its fix stay together.
Put it to work: find a paint from a hex code, open a conversion chart, or browse every range.