re: at least two thirds of the title s disagreement is geometry, not tone

Separates two confounded effects so the pending rotation decision has a number:
how much would drawing the rotation actually buy.

A per-level lookup table fitted on a screen is the most general tone model there
is -- every render level mapped to whatever capture level minimises the error,
no functional form assumed -- so whatever such a LUT cannot close is by
construction not a per-level effect. Fitting on the screen itself therefore gives
an upper bound on the tone share and a lower bound on the geometry share.

Positive control: on the main menu, where the port measures 0.06 percent of
pixels differing so geometry is essentially right, a self-fitted LUT closes
70.3 percent, from 9.26 to 2.75. The instrument can collapse a tone-dominated
residual.

Result: on the title the same self-fitted LUT closes only 32.0 percent, from
10.92 to 7.42. So at most a third of the title s disagreement is tone and at
least two thirds is spatial -- content in the wrong place, which is where the
rotation lives. The fitted LUT is generous to tone, so the geometry share is if
anything larger.

Also refutes the idea of a single transferable tone curve. Fitted on the title
and applied to the menu it closes 29.7 percent; fitted on the menu and applied to
the title it makes things 24 percent WORSE. A curve fitted on a dark flat screen
is unconstrained at the bright end -- the menu s populated range is levels 5 to
204 with few bright pixels -- and extrapolating it onto the title s planet and
wordmark actively harms. That extends the existing refutation of the single
exponent: even a full per-level LUT fails to transfer, so a consumer must not
carry a global tone correction.

Reach: two screens, one capture each, and the title pairing is the same screen
but not the same instant, so the ratio is what is claimed rather than the
absolute level. Our render draws the sweeps parent record only, so the geometry
share includes both the missing rotation and the missing leaf placement -- both
closed by the same decision.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd
This commit is contained in:
sylph-decoder
2026-08-29 18:45:15 +00:00
parent cb4fbed102
commit 441135f552

View File

@@ -0,0 +1,83 @@
# ✅ At least two thirds of the title's disagreement is GEOMETRY, not tone
**Classification: measured**, on committed captures. Answers a question the
pending rotation decision needs: *how much would drawing the rotation actually
buy?*
Two separate effects are known to make our renders differ from the console:
* the **tone curve** — the console renders midtones brighter than we do
([`ui-render-tone-curve.md`](ui-render-tone-curve.md)), and its single-exponent
model is refuted above render ≈ 40;
* the **missing rotation** — our blit draws axis-aligned rectangles, so the
title's two tilted light sweeps land as upright bars
([`ui-keyframe-rotation.md`](ui-keyframe-rotation.md)).
They are confounded in any whole-frame number. This separates them.
## Method, and why the split is an upper bound on tone
A **per-level lookup table** fitted on a screen is the most general tone model
there is: it maps every render level to whatever capture level minimises the
error, with no functional form assumed. **Whatever such a LUT cannot close is,
by construction, not a per-pixel-level effect** — it is spatial.
So fitting a LUT *on the screen itself* and measuring what remains gives an
**upper bound on the tone share** and a **lower bound on the geometry share**.
## The positive control
The method must be able to close a residual that really is tone. On the **main
menu** — where the port measures only 0.06 % of pixels differing, so geometry is
essentially right — it does:
| | mean abs difference | closed |
|---|---|---|
| main menu, uncorrected | 9.26 | — |
| **main menu + LUT fitted on the main menu** | **2.75** | **70.3 %** |
✅ The instrument works: a tone-dominated residual collapses by 70 %.
## The result
| | mean abs difference | closed |
|---|---|---|
| title, uncorrected | 10.92 | — |
| **title + LUT fitted on the title** | **7.42** | **32.0 %** |
🔴 **At most 32 % of the title's disagreement is a tone effect, so at least 68 %
is spatial** — content in the wrong place. That is where the rotation lives, and
it makes the rotation the dominant term by roughly two to one.
⚠️ The same-screen LUT is *fitted*, so 32 % is generous to tone. The true tone
share is smaller and the geometry share larger.
## 🔴 And a claim this refutes: there is no single transferable tone curve
Fitting on one screen and applying to the other:
| | closed |
|---|---|
| main menu + LUT fitted on the **title** | **+29.7 %** |
| title + LUT fitted on the **main menu** | **24.0 %** ✗ |
**The menu's curve makes the title worse.** A curve fitted on a dark, flat screen
is unconstrained at the bright end — the menu's populated range is levels 5204
with few bright pixels — and extrapolating it onto the title's planet and
wordmark actively harms.
⚠️ So *"the tone curve"* is not one thing that can be measured once and applied.
This extends [`ui-render-tone-curve.md`](ui-render-tone-curve.md)'s refutation of
the single **exponent**: even a full per-level LUT fails to transfer between
screens. **A consumer must not carry a global tone correction.**
## Reach
* Two screens, one capture each; the title capture is the plate-free frame and
our render is at rest, so they are **the same screen but not the same
instant** — a looser pairing than the port's posed comparison, which is why
the absolute numbers here (10.92) are larger than its 1.81 % of pixels.
⚠️ The *ratio* is what this page claims, not the absolute level.
* Our render draws the sweeps' **parent** record only — the pre-leaf-fix state —
so the geometry share measured here includes both the missing rotation and the
missing leaf placement. Both are closed by the same decision.