You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix floor-clipping across the library; correct deadlift/row arms; remove push-up (#4)
QA pass driven by real Playwright screenshots + bone-position diagnostics (not
just numeric spot-checks) against the running app, after a prior review missed
that verified-numbers didn't match what actually rendered.
Root cause 1 — ground-lock anchored the wrong point:
- Feet-only ground-lock zeroed the ANKLE BONE's height, not the foot mesh's
sole (~0.04m lower) — feet visibly sank into the floor on every ground-locked
standing movement (squat and ~15 others).
- Hands+feet ground-lock (push-up/plank family) had the same bone-vs-mesh gap
on both ends. Fixed with a final rigid-body nudge after the existing rotation
converges.
Root cause 2 — no anchor at all for some phases:
- Movements with neither ground-lock nor a pin (prone/supine core work: crunch,
superman, bicycle-crunch, supine-leg-raise) had the root frozen at the
base pose's grounded height while FK bent freely on top of it, letting bent
limbs swing below the floor with nothing to catch them (superman peaked at
-0.61m). Added a per-frame safety clamp: if a phase has no ground-lock/pin,
keep the lowest mesh point at y=0 (a no-op when the pose is legitimately
elevated).
- mountain-climber was missing `ground-lock: hands, feet` entirely; added it.
- crunch never reset `knees` in its "Lower" phase, so the loop-to-reset wrap
snapped the knees straight every rep; added the reset.
Root cause 3 — deadlift/bent-over-row arms were authored before the hip-hinge
existed and never accounted for it: `shoulders: flex` is relative to the torso,
and the torso already pitches forward with the hinge, so the two rotations
stacked (95° hinge + 90° flex ≈ 185° total) and flung the arms up behind the
body instead of hanging them toward the floor. Switched to `extend` (which
counter-rotates against the hinge) and tuned the hinge/knee depth so the arm
lands near-vertical. Verified: wrist now sits below the shoulder in both.
Root cause 4 — pins engaging from a very different starting pose: triceps-dips
transitioned directly from standing into a pinned dip, and the mid-interpolation
root shift swung the untouched legs through the floor every rep (worst -0.345).
Restructured into Sit → Support → Lower → Press → Stand so the pin only engages
once the body is already close to its final shape, and tuned the leg angle for
clearance at the bottom of the dip. Also removed step-up's premature pin on its
first phase — plain FK already lands the foot within centimeters of the box, so
the pin now only engages once the foot is already close (residual glitch equity
dropped from a sustained -0.05 to a ~2-frame -0.06 blip at the pin handoff).
Camera: `frameCamera()` only fit the mannequin's bounding box, so a scene prop
taller than the figure (the pull-up bar) got cropped out of frame. Now unions
the prop scene into the frame — the whole bar and the hanging figure are both
visible.
Content: removed `push-up` from the catalogue and spec/examples per request
(the grounding bug was fixed, but it's being pulled from the library anyway).
Verification: 139 tests pass; every example still parses ROM-clean; a headless
Playwright sweep sampled all 65 movements at 6 points each through the real
render pipeline — zero clip below -0.02 except the documented sub-frame step-up
blip.
Claude-Session: https://claude.ai/code/session_018WCktDrKYZpJjCb2apbqWp
Co-authored-by: Claude <noreply@anthropic.com>
| Chest | chest-opener (stretch only) | 1 |**Weak — push-up not even registered**|
31
+
| Chest | chest-opener (stretch only) | 1 |**Weak — push-up was pulled from the catalogue; still the obvious gap-filler once chest coverage is revisited**|
0 commit comments