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:
parent
ca0fad1482
commit
6439b9d48e
1 changed files with 31 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue