From 8d20155b656f299e0b9e39ff01446f21f2ee947b Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Sun, 30 Aug 2026 12:30:07 +0000 Subject: [PATCH] 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) Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v --- .../data/settle-vs-rest-against-captures.txt | 55 +++++++++++++++++++ docs/re/structures/ui-resting-pose.md | 44 ++++++++++++++- 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 docs/re/data/settle-vs-rest-against-captures.txt diff --git a/docs/re/data/settle-vs-rest-against-captures.txt b/docs/re/data/settle-vs-rest-against-captures.txt new file mode 100644 index 00000000..25ccec36 --- /dev/null +++ b/docs/re/data/settle-vs-rest-against-captures.txt @@ -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()". diff --git a/docs/re/structures/ui-resting-pose.md b/docs/re/structures/ui-resting-pose.md index ec137d7b..ef66ab34 100644 --- a/docs/re/structures/ui-resting-pose.md +++ b/docs/re/structures/ui-resting-pose.md @@ -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.30–3.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