From f2a74efe2d8a724840945e4192b688d4198583df Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Sat, 29 Aug 2026 18:45:15 +0000 Subject: [PATCH] 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) Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd --- .../title-residual-tone-vs-geometry.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 docs/re/structures/title-residual-tone-vs-geometry.md diff --git a/docs/re/structures/title-residual-tone-vs-geometry.md b/docs/re/structures/title-residual-tone-vs-geometry.md new file mode 100644 index 00000000..f7374512 --- /dev/null +++ b/docs/re/structures/title-residual-tone-vs-geometry.md @@ -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 5–204 +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.