SCS vs OkLab
OkLab (Björn Ottosson, 2020) is a perceptually-calibrated replacement for CIELAB, now used by CSS Color 4 for color-mix. SCS is derived from Persistence Theory and lives on a probability simplex over the primes {3, 5, 7}. This module compares them along three axes: how they interpolate between two chromaticities, what invariant — if any — they preserve, and how they answer the question "what is luminance?"
A — Color interpolation: three paths between two chromaticities
Linear sRGB blending often produces a muddy gray midpoint. OkLab and SCS both avoid this, but via different mechanisms: OkLab linearly interpolates in a perceptually-calibrated space; SCS walks a Fisher–Rao geodesic on the probability simplex (ηp = √πp) with Fisher–Bernoulli interpolation of luminance.
The three rails differ most clearly near t = 0.5. Linear sRGB passes through a desaturated gray because sRGB primaries do not lie on a perceptual axis. OkLab follows a straight line in its (L, a, b) space — perceptually smooth but geometrically arbitrary. SCS follows the great-circle arc on the positive quadrant of the unit sphere (ηp = √πp), which is the Fisher–Rao geodesic on the simplex; luminance is separately interpolated via Y = sin²φ.
B — A conserved quantity SCS has and OkLab doesn't
On any probability simplex with uniform reference, the information-theoretic identity DKL(π‖U) + H(π) = log m holds. Specialized to m = 3 chromatic channels, SCS inherits S + L = log 3 exactly, for every color. OkLab, calibrated against perceptual data rather than derived from an information-theoretic principle, has no analogous identity.
No combination of these quantities is conserved across colors. OkLab is calibrated to be perceptually uniform, not to satisfy an information-theoretic identity.
S + L = log 3 exactly, for every color. The bar is always full: pure-saturated colors push it toward S (blue); achromatic colors push it toward L (gold).
Epistemic point. This is not a claim that SCS is "better" than OkLab. The identity exists in SCS because the construction lives on a probability simplex with three outcomes {3, 5, 7} derived from Persistence Theory. OkLab was not built around such a simplex, so no analogous identity emerges. The question is what you want your color space to encode: empirical perceptual calibration, or structural information-theoretic invariants.
C — Three answers to "what is luminance?"
CIELAB, OkLab and SCS each define a scalar perceptual luminance from the linear photometric Y. The shapes differ especially below Y ≈ 0.01, where each metric makes a different structural choice.
The three curves all reach 0 at Y = 0 and 1 at Y = 1; what differs is how they cover the interval. OkLab sits above CIELAB and SCS across almost the whole range, because its cube-root grows faster than CIELAB's linear leg (near 0) and than SCS's arcsin(√Y) (in the mid-range). SCS is the lowest curve in the mid-range, which means it dedicates less of its [0, 1] budget to midtones and more to both extremes — the signature of the Fisher–Rao geodesic 2·arcsin(√Y)/π on the Bernoulli family, whose sensitivity 1/√(Y(1−Y)) diverges at both Y → 0 and Y → 1. CIELAB is the only curve with a visible kink (at Y = δ³ ≈ 0.00886), the discontinuity between its linear leg and its cube root. None of the three is "better" in an absolute sense: OkLab and CIELAB are calibrated against psychophysical data (different fits, same family); SCS is derived from an information-geometric principle. The practical hybrid ΔESCS00 (see scripts/delta_e_scs00.py) keeps CIEDE2000 and adds the SCS geodesic as a feature.
Theory
Three sections, three viewpoints. Section A compares interpolation paths (the CSS color-mix question). Section B surfaces an identity that SCS satisfies structurally and OkLab does not. Section C overlays the three perceptual-luminance curves so the structural differences are visible at a glance.
OkLab reference. Björn Ottosson, "A perceptual color space for image processing", 2020 (bottosson.github.io/posts/oklab). OkLab is a fitted cube-root model on a weighted LMS representation, calibrated against MacAdam ellipses, Munsell and IPT data. It is used by CSS Color 4 for color-mix(in oklab, ...).
SCS is composable with OkLab, not a replacement. The stated goal of the PT_COLOR construction (see PT_COLOR.tex abstract) is not to displace OkLab in the perceptual-calibration niche it occupies, but to provide a second lens — simplex-based, information-theoretic, with a structurally conserved quantity S + L = log 3.
Hybrid metric. The script scripts/delta_e_scs00.py in the SCS repository implements ΔESCS00, which combines CIEDE2000 with the SCS simplex metric. That is the practical path: keep OkLab (or CIELAB) for what it does well, add SCS for what it does that the others cannot.
Interpolation details (Section A). Endpoints (r1, r2) are converted to (π, Y) via the SCS pipeline. Luminance: φ = arcsin(√Y), linearly interpolate φ, take Yt = sin²φt. Chromaticity: spherical slerp on ηp = √πp with Ω = arccos(Σ η1,p η2,p). Reconstruct sRGB via piToRgbExact(πt, Yt).
Sum rule (Section B). S = Σ πp log(m·πp), L = −Σ πp log πp, so S + L = Σ πp log m = log m = log 3, regardless of π. This is not SCS-specific — it holds on any probability simplex with uniform reference. What is SCS-specific is that the chromatic simplex is over the primes {3, 5, 7}, derived from Persistence Theory.
Luminance curves (Section C). CIELAB: L* = 116·f(Y) − 16 with f(t) = t^(1/3) for t > δ³ (δ = 6/29) and linear below. OkLab: for r = g = b = Y, compute the exact Ottosson transform. SCS: dlum(Y) = 2·arcsin(√Y). Normalizations: CIELAB / 100, OkLab as-is (already in [0, 1]), SCS / π.