Instruments 9 min

The hidden crowd

Behind every color sits an infinite family of spectra that produce it. That family is a convex body, and you can measure it.

Pick a color. Any color: the specific gray-green of a particular olive, say, measured under daylight. Now ask what physical surface produced it.

There is no answer. There are infinitely many answers, and they form a structured set with measurable geometry. This post is about that set — what it is, how you get your hands on it, and why its width at each wavelength is a number worth computing.

Where the infinity comes from

The map from spectrum to color is a linear functional applied three times. Write a reflectance as a vector r with thirty-eight components. Fix an illuminant and an observer, and the tristimulus response is A r, where A is a 3 × 38 matrix whose rows are the color matching functions weighted by the illuminant.

A 3 × 38 matrix has a null space of dimension at least 35. Any vector n with A n = 0 can be added to r without changing the color at all: A(r + n) = A r. Those are the metamers of r — spectra that are physically different and colorimetrically identical.

Thirty-five dimensions of freedom is a lot of freedom. The only thing keeping the set from being an unbounded affine subspace is physics: a reflectance has to lie in [0, 1] at every wavelength. You cannot reflect negative light, and a passive surface cannot reflect more than arrives.

So the metamer set is the intersection of a 35-dimensional affine subspace with a 38-dimensional box. That intersection is a convex polytope. This is the useful fact. Convexity is what makes the set computable rather than merely infinite.

What convexity buys

Once you know the set is convex and bounded, several questions become tractable that would otherwise be hopeless.

Is there any spectrum at all? For some target colors the answer is no. If your target sits outside the object-color solid — the set of colors achievable by some reflectance in [0, 1] under that light — then the polytope is empty. Emptiness is decidable, and when it happens the honest output is a failure, not a nearest guess. Several tools here return a structured NO_SOLUTION error carrying the bound actually achieved, because silently returning the closest feasible thing would turn “impossible” into a plausible-looking number.

What does a typical member look like? You can construct one directly: project onto the affine subspace, then push back into the box, and repeat. That is projections-onto-convex-sets, and for a nonempty intersection it converges into it. The result is a real reflectance that produces exactly the target color.

How wide is the set? This is the interesting one. Sample the boundary in many directions and record, at each of the thirty-eight wavelengths, the minimum and maximum value any member takes. That gives an envelope: a band showing where the crowd is tightly constrained and where it is nearly free.

The shape of that envelope is informative. Near the wavelengths where the observer is most sensitive, the band pinches — the color you specified pins the spectrum down there. Out at the ends, where the matching functions fall toward zero, the band opens up, because changes there barely register. The envelope is a picture of which parts of a spectrum a color measurement actually determines.

Why anyone should care

Three practical consequences.

A color match is not a material match. If you match a color by eye or by tristimulus under one light, you have picked one member of the crowd. A different manufacturer, matching the same target, may pick another. Both are correct. Under a different lamp, they diverge — and the size of that divergence is bounded by the width of the crowd. A narrow envelope means the match is robust; a wide one means you have specified far less than you think.

Reconstruction is a choice, not a recovery. Software that turns RGB into a spectrum — for rendering, for pigment matching, for “spectral upsampling” — is selecting from the crowd. Usually it picks the smoothest member, which is a defensible default and not the truth. This lab’s tools say which member they returned and on what principle, because “the spectrum” implies a uniqueness that does not exist.

Metamers make good test cases. If you want to know whether a pipeline respects physics, feed it two spectra that are colorimetrically identical under one illuminant and clearly different under another. Any stage that treats color as an intrinsic property of a surface will break on that pair, visibly. Generating such pairs on demand is its own instrument here for exactly that reason.

The part that stays uncomfortable

Everything above is exact given the model — the standard observer, the tabulated illuminant, the 38-sample grid, a passive non-fluorescent surface. Each of those is an assumption, and each has a failure mode.

Fluorescent materials absorb at one wavelength and emit at another; they are not described by a reflectance in [0, 1] at all, and every bound here stops applying to them. The standard observer is a population average, not a person — real observers vary, and two surfaces that match for the standard observer can visibly differ for someone whose cone sensitivities sit at the edge of the distribution. The 10 nm grid smooths narrowband structure.

The convex-polytope picture is not a description of reality. It is a description of what follows from a model, stated precisely enough that you can see where the model ends. That is the most this side of the door can offer, and it is more than the field usually bothers to compute.

Instruments in this post