Chroma Smoothness — The Edge Your Eye Invents
Stack five surfaces from light to dark. The colors are correct — no borders, no outlines. But at the boundary between the third and fourth surface, there's a faint edge. A band. Slightly brighter on one side, slightly darker on the other.
You didn't put it there. Your eye did.
What Is a Mach Band
The visual system doesn't just detect brightness — it detects rate of change. At a boundary where brightness changes smoothly, you see a smooth gradient. At a boundary where the rate of change suddenly shifts — a second derivative discontinuity — the visual cortex interprets it as an edge.
This is a Mach band. It appears in photography at the edge of step wedges. It appears in color palettes wherever chroma changes too sharply between two adjacent shades.
The Chroma Curve
Every shade in a palette has a chroma value — how saturated it is. In a well-built monochromatic ramp, chroma follows a smooth arc:
- Near-white shades: low chroma (desaturated, almost white)
- Base shade: peak chroma (the most vivid, representative hue)
- Near-black shades: low chroma again (desaturated, almost black)
Plot chroma against step index. You should see a smooth hill.
If some shades were hand-picked in a color picker, or the ramp was assembled from multiple sources, the chroma curve will have kinks — abrupt rises or drops between adjacent steps.
For example:
| Step | Chroma |
|---|---|
| 3 | 38 |
| 4 | 42 |
| 5 | 38 ← drops |
| 6 | 47 ← jumps |
| 7 | 44 |
Steps 5 and 6 create a kink. The eye detects the discontinuity in rate of change and renders a false edge.
How Smoothness Is Measured
Chromametry fits a monotone cubic Hermite spline through three anchors: the first shade, the peak-chroma shade, and the last shade. This spline defines the ideal smooth chroma arc — no oscillations, no false edges.
The score measures how closely the actual chroma values follow the ideal spline:
- Normalize all chroma values to a reference maximum (≈133.8 — the blue primary maximum in sRGB/CIELAB)
- Fit the ideal spline through the three anchors
- Compute RMSE between actual chroma and ideal spline
- Normalize → score ∈ [0, 1]
A score near 1.0 means the chroma follows the smooth arc. A score below 0.8 means kinks are present and likely visible.
Why Cubic Hermite Specifically
The spline algorithm must be monotone — it cannot overshoot between control points. A standard cubic spline would ring between anchors, creating artificial peaks that don't exist in the data.
Monotone cubic Hermite (Fritsch & Carlson 1980) guarantees:
- No overshoot between control points
- Smooth first derivatives throughout
- Preservation of shape at the anchors
This gives an ideal reference curve that is physically achievable. If a generated palette follows this curve, no kinks — no Mach bands.
The Fix
Generate chroma values from the monotone spline directly, rather than picking shades by eye. Set target peak chroma, set endpoints, interpolate. The chromametry-generator uses this approach.
Chroma smoothness then validates how well the output held to the ideal.