Block B · Seeing the result cheaply

Seeing the result cheaply

A surface is read on a sphere, and a sphere renders in three seconds. Nothing made the cheap look the default, so the expensive one is what got run — and the verdict it produced was no better.

rung: sphere 3 s Does the surface read? Roughness, glaze, colour. No mesh needed. rung: preview low samples, real mesh Does the silhouette land? Mass, proportion, where the shape sits. rung: final 2 min The verdict rung. What a spec may be accepted at, and nothing below. The rung comes back with every measurement, reported and never inferred, so a verdict taken on a sphere is never mistaken for one taken on the final mesh. The three seconds and the two minutes are Cottony's, measured before any of this existed.

The rung is reported, never inferred

Every measurement comes back with the preview level it was taken at, so a verdict taken on a sphere is never mistaken for one taken on the final mesh. An acceptance spec names the lowest rung it will accept a verdict from.

A distribution, not a number

Cottony's board matched the concept art's mean saturation to within 0.01 and looked plainly wrong, because the entire difference sat at the 99th percentile. So a call asking for saturation returns p1, p50, p99, the mean and the standard deviation, and a predicate names the one it means.

Measured over its own pixels

subject means the pixels where alpha clears the floor, and it is the default wherever an image has an alpha channel. Half the value of the whole vocabulary is in that masking: a prop measured over only its own pixels is not diluted by whatever background it happens to sit on.

Equality is the wrong question

Two runs of one unchanged Cottony scene differed in 29,696 pixels, none of them by more than 1/255. That is the noise floor any usable distance metric has to sit above, and the first implementation has to demonstrate the separation on that case rather than assert it.

The block itself

Five open lines, in the roadmap's own words

Each line names the failure it exists to remove and the measurement behind it. None of them has shipped. This list is generated from docs/ROADMAP.md, so it cannot describe a backlog the file does not have.

📋PW7judging a material costs a two-minute render when the verdict needs three secondsA surface is read on a sphere and a sphere renders in three seconds, but nothing makes the cheap look the default, so the expensive one is what gets run.
📋PW8a render is judged by opening the file it wrote, so every verdict costs a second callThe picture and its measurements are one answer to one question, and splitting them across two calls doubles the turns a parameter sweep takes.
📋PW9a mean over an image agrees while the look is plainly wrongCottony's board measured 0.31 mean saturation against the concept art's 0.32 and still looked washed out, because the whole difference sat at the 99th percentile.
📋PW10an asset is judged alone and then lands beside five siblings it does not matchA prop that reads correctly on its own can be the one thing on a sheet with no shadow and no specular window, which no solo render shows.
📋PW11a bake is not byte-reproducible, so a file diff cannot say whether anything changedTwo runs of one unchanged scene differed in 29,696 pixels and none by more than 1/255, so equality is the wrong question and a tolerance is the right one.