fix(physics): restore upward flipper transfer

Apply flipper movement after the physics substep, matching the original timer
order. Replace the weak generic tangent kick with the recovered swept-body
position transfer and pre-clamp velocity curve fitted from three live left-edge
probes, then mirror that local transform for the right flipper.

The x=125 probe now reaches `(138.182,355)` with raw velocity within two units
of `(2217,-5889)`. Keep downstroke interaction listed as pending rather than
claiming the upward fit is the complete raw routine.

Test Plan:
- `cargo test --all-targets` -- 43 passed
- `cargo clippy --all-targets -- -D warnings` -- passed
- `cargo build --profile production` -- passed
- three live left-flipper transfer probes matched within documented tolerance
- `git diff --cached --check` -- passed
This commit is contained in:
2026-08-22 21:05:02 +02:00
parent e07a915277
commit d813b5b9da
4 changed files with 39 additions and 21 deletions
+6 -2
View File
@@ -137,5 +137,9 @@ are line 66 `(98,382)->(131,369)`, circle 67 `(133,377)`, and line 68
`(137,384)->(116,405)`. The raised right records are line 81
`(197,405)->(171,378)`, circle 82 `(181,376)`, and line 83
`(183,368)->(217,383)`. Resting records retain their registration-table
coordinates. Edge-time position and velocity transfer remains a separate
arithmetic restoration task.
coordinates. Edge-time position and velocity transfer is tracked separately
from the record geometry. Three live left-edge probes at `(115,390)`,
`(120,390)`, and `(125,390)` produced post-edge positions `(128.718,365)`,
`(133.397,360)`, and `(138.182,355)` with raw velocities `(1932,-3523)`,
`(2079,-4658)`, and `(2217,-5889)`. The Rust upward stroke fits those states;
the full raw calculation and return-stroke transfer remain pending.