This is the classic 2D sine-ramp test pattern colour scientists use to expose a bad colormap: every row encodes the exact same left-to-right data ramp u ∈ [0,1], but a sinusoidal ripple is added on top whose amplitude grows from 0 at the top row to its full value at the bottom row. If the colormap encodes value as a perfectly uniform ramp of perceived lightness, the ripples fade smoothly into invisibility as amplitude shrinks. If it doesn't — like Jet — the ripples snap into false bands and edges at specific rows even though the underlying data changes perfectly smoothly. No 3D geometry is involved: the "features" you see are entirely an artifact of the colormap, which is exactly the point.
Perceived lightness is computed by converting each colormap color from sRGB to CIE L*a*b*, the color space designed to match human perception:
linear = srgb<=0.04045 ? srgb/12.92 : ((srgb+0.055)/1.055)^2.4
Y = 0.2127·Rlin + 0.7152·Glin + 0.0722·Blin (relative luminance)
L* = 116·f(Y) − 16, f(t)=∛t for t>0.008856
Perceptual uniformity samples L* at 64 points across the colormap and measures how consistent the step-to-step change in L* is (low spread in dL* = a fair ramp). Jet plateaus through its green/yellow band and has a bright cyan and bright yellow flanking a darker green — the same L* value appears twice, which is why the ripple pattern below shows a false "ridge" that isn't in the data. Viridis was designed by construction to keep dL*/dt nearly constant, so its ripple panel stays smooth at every amplitude.
Colorblindness simulation applies a linearized Brettel/Machado-style 3×3 matrix to linear RGB before converting back to sRGB. The distinguishability lost readout compares the average perceptual step size (CIE76 ΔE in L*a*b*) between adjacent colormap samples with and without the simulated deficiency — a colormap that leans on red/green contrast (like Jet) loses far more of its signal than one built mostly from a lightness ramp (like Viridis).
- Ripple frequency / amplitude — reshapes the synthetic test signal, exactly analogous to changing the underlying "data" behind a real plot.
- L* profile (lower strip) — plots perceived lightness against data value directly; red dots mark the exact samples where the curve runs backwards (a false feature).
- ΔE strip (bottom) — the per-step perceptual distance normal vs. under the selected color-vision deficiency.
Real-world relevance: this is the exact reason NASA, matplotlib and most scientific-plotting guides retired "jet" as a default colormap in favor of viridis-family maps — and why dashboards built for color-vision-deficient viewers should avoid pure red/green encoding.