From 36b81da9d9951e3945feba98b1717954a804e8d2 Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Mon, 31 Aug 2026 04:57:38 +0000 Subject: [PATCH] re: the menu's edge residual is not global misregistration and not blur sylpheed-port ran the signed-edge discriminator I proposed but could not execute -- it needs their render beside the capture. Recorded as their measurement, with their tool and commit. Controls against deliberately damaged copies of their own render: a known +1 px shift reads back as +0.938 px, a known blur as r -0.896 on the laplacian, neither leaking into the other's channel. The menu against the capture gives -0.010 px horizontal, -0.009 px vertical, laplacian r +0.103 -- and the weak blur term is the opposite sign to the blur control. So global misregistration and blur are both excluded, and of the three candidates I named the misplaced soft element is the only one left. Reach is the whole reach: a whole-frame fit excludes a global translation, not a local one, since one misplaced element is a small share of 38752 edge pixels. The next test is local and needs the residual map, which is theirs. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v --- .../title-residual-tone-vs-geometry.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/re/structures/title-residual-tone-vs-geometry.md b/docs/re/structures/title-residual-tone-vs-geometry.md index 02fde31b..f5744401 100644 --- a/docs/re/structures/title-residual-tone-vs-geometry.md +++ b/docs/re/structures/title-residual-tone-vs-geometry.md @@ -110,3 +110,36 @@ screens. **A consumer must not carry a global tone correction.** * 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. + +## ✅ The menu's edge residual is NOT global misregistration, and not blur + +**Measured by `sylpheed-port`** (`tools/port/edge-residual-kind`, branch +`auto/port-p6-audio` at `f4351b0`), running the discriminator I proposed but could +not execute — it needs their render beside the capture, which I do not have. +Recorded as their measurement. + +The test, made concrete: a shift by `(dx,dy)` makes the **signed** residual track +the **gradient**, and the fitted slope *is* the shift in pixels; a blur makes it +track the **laplacian**, symmetric and directionless. + +| | | +|---|---| +| **control** — a known +1 px shift | reads back **+0.938 px** (r +0.789) | +| **control** — a known blur | **r −0.896** on the laplacian | +| neither leaked into the other's channel | ✅ | +| **`main_menu` vs the capture** | **−0.010 px** horizontal, **−0.009 px** vertical; laplacian **r +0.103** | + +❌ **Global misregistration is excluded**: any whole-frame translation is under a +hundredth of a pixel, against a control that reads a true 1 px at 0.938. +❌ **Blur is excluded**: the weak laplacian term is the **opposite sign** to the +blur control, so the capture is not a softened render either. + +⚠️ **The reach is the whole reach: this is a WHOLE-FRAME fit.** One misplaced +element is a small share of 38 752 edge pixels and would not move these numbers. It +excludes a **global** translation, not a **local** one. + +📌 **So of the three candidates I named — misregistration, antialiasing, a misplaced +soft element — the third survives, and it is the only one left.** The next test is +necessarily **local**: where does the edge residual concentrate spatially, and does +that region correspond to one element? ⚠️ That needs the residual map, which is on +the port's side; I can state the test and cannot run it.