docs: #341 mechanism RESOLVED — trigger and resting geometry are one family

CPolygon::adjust_sphere_to_plane @0x00538210 solves the walkable
placement for perpendicular distance == radius: retail rests the sphere
TANGENT to the slope, which makes its bare-radius push-out trigger
structurally inert — and explains why our planted rest (perp = r*N.z)
makes our substituted trigger inert here by the same algebra. Each
engine's trigger matches its own resting geometry; the live A/B's 84%
fire rate is what mixing retail's trigger with our placement produces.

AD-66 is therefore not a standalone row: the faithful unit is the pair
(tangent placement + bare trigger), ported together or divergent
together. The visible corollary of the retail pair — feet floating by
r*(sec(theta)-1) on slopes, up to ~20 cm near the walkable limit — is
why the decision is queued for the user's eyes rather than taken
silently under the retail-first default.

From capture to mechanism in one morning: the user's two-minute slope
run plus one decomp read did what the overnight harness could not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-07 07:17:22 +02:00
parent ca0fad1482
commit 6439b9d48e

View file

@ -210,6 +210,37 @@ offers a mechanical suspect for the harness flip below: the two assert shapes
plausibly differ in what settle state the harness left (`r*N.z` vs `r`),
which is test-ORDER state, not physics.
### MECHANISM RESOLVED, same morning — the trigger and the resting geometry are one family
`CPolygon::adjust_sphere_to_plane` @0x00538210 (pseudo-C 322032): retail's
walkable placement solves the interpolation for the point where the sphere's
PERPENDICULAR distance to the walkable plane equals the RADIUS — the sphere
rests TANGENT to the slope. Consequences, closing the loop on the live A/B:
- **Retail:** tangent rest (perp = r) makes the bare-radius trigger
(`dist < r ε`) structurally INERT — equality minus epsilon. No fight, no
oscillation. The visible corollary: retail characters' feet float
vertically above a slope by `r·(secθ 1)` — 2.7 cm on a 31° slope, ~20 cm
near the walkable limit — which matches AC's known slope look.
- **acdream:** planted rest (feet on surface, perp = r·N.z) makes OUR
retained trigger structurally inert here for the same reason. Each engine's
trigger matches its own resting geometry; both pairs are internally
coherent, and the live A/B's 84% fire rate is what happens when you mix
retail's trigger with our placement.
- **Therefore AD-66 is NOT a standalone row.** The faithful unit is the PAIR:
tangent placement + bare trigger, ported together — or our pair kept
together as one deliberate divergence. Porting either half alone
manufactures a fight neither engine has.
- The harness flip's suspect is strengthened: a tangent-rest start is stable
under the bare trigger, a planted start lifts once — which of the two the
harness settle leaves is plausibly order-dependent test state.
**Queued decision (user, no urgency): port the retail pair (feet float
slightly on slopes, exactly like retail — a visible feel change gated by
eyes) or keep our pair (planted feet, one register row covering placement +
trigger together, AD-66 re-titled accordingly).** Retail-first says port; it
is deliberately not done silently because the difference is visible.
**Hypotheses deliberately NOT chased at 04:00:** a property-read side effect
(reading `body.ContactPlane` between tick and assert — should be impossible);
xUnit execution-order/parallelism interacting with harness or engine state;