No figure on this site is a drawing that was made once and saved. Each one is a function:
it takes parameters and returns SVG, so the same generator produces the p4 plate and the
p6m plate without either being redrawn.
That is the reason the collection can keep growing without the illustrations drifting apart.
A generator is written once, checked once, and every essay that calls it inherits the same
line weights, the same colour roles, and the same behaviour in dark mode. There are
31 of them so far.
blackbody
blend-space
The same gradient blended two ways Above, the code values are interpolated, which is what most tools do. Below, the luminances are. The midpoint of the top ramp carries 23 per cent of white's luminance where it should carry 51, so the top ramp is visibly too dark through its middle. interpolating code values interpolating luminance midpoint 23% midpoint 51% same endpoints, different middles sRGB
checker-shadow
A checkerboard under a shadow, with two squares marked The two marked squares are both #797979. One is a dark square in full light; the other is a light square inside the shadow. Nothing about the drawing enforces the illusion — the two values are set equal in code and asserted before drawing. A B A and B are both #797979 asserted equal
collapse
cones
cornsweet
cvd-compare
delta-e
encoding-choice
Which colour pairs survive a dichromacy, and which do not Three two-colour encodings under normal vision and three dichromacies. The red-green pair collapses under protanopia and deuteranopia — its chromatic separation falls from 119 to 17 and 12. Blue against orange survives all three, which is why it is the safe default. normal protan deutan tritan red / green blue / orange blue / yellow blue/orange is the safe default Brettel 1997, severity 1.0
gamma-probe
A gamma probe: which grey matches a half-white dither? The striped block on the left is half white and half black, so it carries half the luminance of white. Stand back until the stripes blur and find the patch that matches it. On an sRGB display the answer is code 188, not 128 — code 128 has only 22 per cent of white's luminance. half white, half black 128 160 176 188 ← this one 200 220 blur the stripes by standing back sRGB transfer function
gamut-compare
gamut-sweep
gradient-strip
A single grey bar lying on a gradient The horizontal bar is #959595 from end to end. Against the dark end of the ramp it looks light; against the light end it looks dark. This is the easiest figure here to verify — one bar, one value, and an eyedropper will confirm it anywhere along its length. the bar is one value the bar is #959595 throughout asserted equal
horseshoe
illuminant
illuminant-set
macadam
matching-functions
p3-probe
A probe for a wide-gamut display Both halves of this block carry the same sRGB red. Where the browser and the panel both support Display P3, the right half is drawn in a red that sRGB cannot reach, and a seam appears down the middle. No seam means an sRGB display — or a browser not managing colour, which this cannot distinguish and does not pretend to. one rectangle, or two? a visible seam means the display reaches past sRGB evaluated by the browser, not the build CSS color(display-p3 …)
palette-proof
This site's own palette, measured against three dichromacies The closest pair in the Okabe–Ito palette under each condition. It holds at ΔE 13.3 under protanopia and 11.1 under deuteranopia, but falls to 8.2 under tritanopia, where orange and reddish purple converge. The palette is safe for the common deficiencies and weaker for the rare one, which is a real property of it and is usually left unsaid. normal ΔE 21.7 orange / yellow protanopia ΔE 13.3 sky blue / reddish purple deuteranopia ΔE 11.1 orange / yellow tritanopia ΔE 8.2 orange / reddish purple the closest pair, under each condition measured, not claimed ΔE2000, Brettel 1997
reflectance
simultaneous-contrast
Two identical grey patches on different surrounds Both inner squares are #818181. The one on the dark field looks lighter. The values are asserted equal in code before the figure is drawn, so the claim is a fact about the drawing rather than a promise. on a dark field on a light field both patches are #818181 asserted equal
space-ranking
Four colour spaces ranked by how uniform they actually are The spread — largest ellipse over smallest, after transformation — for each space. Raw chromaticity is worst at 10.4. The three perceptual spaces are all far better and close to one another, with CIELUV at 2.21 and Oklab at 2.57 — a smaller gap than the usual advocacy suggests. CIE 1931 xy 10.42 aniso 2.95 CIELAB 3.24 aniso 3.42 CIELUV 2.21 aniso 2.37 Oklab 2.57 aniso 2.27 spread: largest JND ellipse ÷ smallest (1 is perfect) measured, not quoted at Y = 0.4
spectral-strip
transfer-function
whites-illusion
White's illusion: identical bars on a square-wave grating Both grey bars are #909090. The bar sitting in a dark stripe looks darker, not lighter — the opposite of what contrast with the immediate surround predicts, which is why this figure is the standard objection to explaining brightness by lateral inhibition alone. in a dark stripe in a light stripe both bars are #909090 asserted equal