Skip to content

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:

StepChroma
338
442
538 ← drops
647 ← jumps
744

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:

  1. Normalize all chroma values to a reference maximum (≈133.8 — the blue primary maximum in sRGB/CIELAB)
  2. Fit the ideal spline through the three anchors
  3. Compute RMSE between actual chroma and ideal spline
  4. 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.

→ Hue Stability