re: settle_time() itself beats rest() against the game -- on the one screen that adjudicates

Closes the gap the port named: it ran my proposal against captures 3/3 in favour,
but tested ITS OWN settled pose rather than UiBuild::settle_time().

Geometry established first, because my first attempt got it wrong: a 1280x720
render meets a 1279x675 capture by CROP, not scale -- crop rows 0..675 gives RMSE
14.07 against 68.89 resized and 79.61 for the 45-row crop. The 45-row offset
holds for a full display frame; these captures are already the game surface.

Gamma fitted per pose so neither candidate can win on the fit:

  title      settle  g=0.84  RMSE  8.17  15.28 % >8
  title      rest    g=1.04  RMSE 20.92  70.84 % >8

The two splashes DO NOT ADJUDICATE and are not counted: their gamma fit rails at
the edge of the search range, still railing when widened to 0.30..3.00, so the
photometric model is wrong for them -- and with gamma railed their margins
collapse to 1.16x and 1.06x.

title adjudicates at an interior gamma and does so decisively, 4.6x on differing
area and 2.6x on RMSE. So the IMPLEMENTATION and not merely the direction is
supported.

Absolute agreement is poor -- the port's settled title row is 0.21 % where mine
is 15.28 % -- so the ordering is what this table carries, not the values. The
port's three-screen result remains the stronger evidence.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
sylph-decoder
2026-08-30 12:30:07 +00:00
parent f450ab7f26
commit 8d20155b65
2 changed files with 98 additions and 1 deletions

View File

@@ -0,0 +1,55 @@
# Does UiBuild::settle_time() itself beat rest() against the GAME?
#
# The port ran my PROPOSAL against captures and favoured it 3/3, but tested
# ITS OWN settled pose, not settle_time(). It said so, and that gap is mine.
#
# GEOMETRY, established first: a 1280x720 render matches a 1279x675 capture
# by CROP, not scale --
# crop rows 0..675 RMSE 14.07
# resize bilinear RMSE 68.89
# crop rows 45..720 RMSE 79.61
# crop rows 22..697 RMSE 74.92
# The 45-row offset holds for a full 1280x720 DISPLAY frame; these committed
# captures are already the game surface.
#
# Gamma is fitted PER POSE, so each candidate gets its own best case and the
# comparison cannot be won by the fit. Search widened to 0.30..3.00 after the
# first pass railed at a 0.80 floor.
#
# screen pose gamma RMSE %>8 %>16
# title settle 0.84 8.17 15.28 3.16
# title rest 1.04 20.92 70.84 21.14
# -> SETTLE closer: 15.28 % vs 70.84 % at >8
#
# publisher settle 0.30 36.38 2.36 2.34 <- RAILED at the search edge; not a fit
# publisher rest 0.30 36.69 2.74 2.63 <- RAILED at the search edge; not a fit
# -> SETTLE closer: 2.36 % vs 2.74 % at >8
#
# developer settle 0.30 33.07 6.16 6.01 <- RAILED at the search edge; not a fit
# developer rest 0.30 33.42 6.54 6.30 <- RAILED at the search edge; not a fit
# -> SETTLE closer: 6.16 % vs 6.54 % at >8
#
# ✅ settle_time() beats rest() on all three capture-backed screens, so the
# IMPLEMENTATION and not just the direction is supported.
#
# ⚠️ ABSOLUTE agreement is poor and much worse than the port's (its title
# settled row is 0.21 %; mine is an order of magnitude above). My renderer
# omits things its does not, and a single global gamma is a crude
# photometric model. Take the ORDERING from this table, not the values.
#
# 🔴 AND ON A WIDER SEARCH (0.30..3.00) THE SPLASHES RAIL AT THE NEW FLOOR TOO.
# A fit that sits on the edge of its range is not a fit -- the photometric model
# is wrong for those two, and with the gamma railed their margins collapse:
# publisher settle 2.36 % vs rest 2.74 % (1.16x)
# developer settle 6.16 % vs rest 6.54 % (1.06x)
# Those two rows DO NOT ADJUDICATE and are not counted.
#
# ✅ ONE SCREEN ADJUDICATES, and it does so decisively. `title` fits at an
# INTERIOR gamma (0.84 settle / 1.04 rest) and gives
# settle 15.28 % rest 70.84 % at >8 -- 4.6x
# settle RMSE 8.17 rest RMSE 20.92 -- 2.6x
#
# So: settle_time() ITSELF, not merely the direction, beats rest() against the
# game on the one screen where my instrument is valid. The port's three-screen
# result remains the stronger evidence; this closes the gap it named between
# "the port's settled pose" and "UiBuild::settle_time()".

View File

@@ -352,7 +352,49 @@ is wrong"*.
the thing under suspicion.** No care with this control fixes that; it is the wrong
shape of experiment.
✅ **What adjudicates is the oracle, and it is the port agent's measurement, not
### ✅ Closing the gap: `settle_time()` itself, against the game
The port ran the proposal against captures and favoured it 3/3 — but tested **its
own** settled pose, not `UiBuild::settle_time()`, and said so. That gap is this
crate's to close
([`../data/settle-vs-rest-against-captures.txt`](../data/settle-vs-rest-against-captures.txt)).
**Geometry first, because the first attempt got it wrong.** A 1280×720 render meets
a 1279×675 capture by **crop, not scale**:
| convention | RMSE |
|---|---|
| **crop rows 0…675** | **14.07** |
| resize bilinear | 68.89 |
| crop rows 45…720 | 79.61 |
⚠️ The 45-row offset holds for a full **display** frame; these committed captures are
already the game surface.
Gamma is fitted **per pose**, so each candidate gets its own best case and the
comparison cannot be won by the fit:
| screen | pose | γ | RMSE | % > 8 |
|---|---|---|---|---|
| **title** | **settle** | 0.84 | **8.17** | **15.28** |
| title | rest | 1.04 | 20.92 | 70.84 |
| publisher | settle / rest | **0.30 — railed** | 36.38 / 36.69 | 2.36 / 2.74 |
| developer | settle / rest | **0.30 — railed** | 33.07 / 33.42 | 6.16 / 6.54 |
🔴 **The two splashes do not adjudicate and are not counted.** Their gamma fit sits
on the **edge of the search range** — widened to 0.303.00 and it still rails — so
the photometric model is wrong for them, and with γ railed the margins collapse to
1.16× and 1.06×.
**`title` does adjudicate**, at an *interior* γ, and decisively: **15.28 % against
70.84 %** differing (4.6×), RMSE **8.17 against 20.92** (2.6×). So **the
implementation and not merely the direction** is supported.
⚠️ Absolute agreement is poor — the port's settled `title` row is 0.21 % where mine
is 15.28 %. Its renderer draws things mine does not and a single global gamma is a
crude model. **Take the ordering from this table, not the values.**
✅ **The stronger evidence remains the oracle, and it is the port agent's, not
mine**: its publisher splash against a committed capture, **settle-instant pose RMSE
2.17 / 0.01 % differing** against **`--pose=rest` 9.05 / 0.75 %** — 75× the
differing area, against the game. **That** is the evidence for the proposal; the