I built a decision on a number that could not carry it
Colour science · Metal · GLSL · SkSL
- The problem
- Glimt has its own film simulations. Fjord is fitted to the Fuji recipe R-Superia. In warm light we missed, and I had switched on a neutralisation step to correct it.
- What I measured
- A grey card under the crossing, two lighting setups, three measurements side by side: the iPhone raw frame, the target, and what Glimt actually delivered. In warm light the raw frame was already 1.2% from the target before we touched it. My step pushed it 15% too blue and 11% too little red. In daylight, where the step was barely on, we landed 1.1% from the target.
- What I got wrong
- I had switched the step on three hours earlier, on the strength of a sign analysis I got by inverting our own chain. That inversion was degenerate: R and B came out identical to four digits, and a third of the cube was rank deficient. The number could never have answered the question I asked it. A surface with a known answer and one reading did what a whole day of derivation could not.
- In production
-
The step is off, and the grade is generated into all three shaders,
Metal, GLSL and SkSL, from one script, with a
--checkin the test suite that fails if one of them drifts from the others. And I wrote a falsifiable prediction into the commit: with the step off, Fjord should land around 0.74 against a target of 0.732, and if it did not, I was wrong again.