Arms playtest-2 fixes: flip-proof elbow (angle clamp + rate limit, controller-driven), Stage 2b hand coupling (blocked arm holds the hand back)

- Elbow stored as an angle around the arm axis vs a torso-frame reference: 85% hand-suggested,
  from the controller pose (not the physics palm), clamped +-110 deg, 6 rad/s rate limit
  (flip spike: 1.8 cm/tick max vs 13.8 unclamped)
- PhysicsArms.ConstrainHand: while an arm segment is in contact the hand may lead the
  forearm end by 3 cm; PhysicsHands applies it and suspends stuck-snap while active
- ArmSpike: forearm-rest-over-anvil (owner pose: collider fine, drawn forearm 3.9 cm -> 0),
  flip sweep, bar test now asserts the hand is held back; all six spikes PASS x3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
FoxyzandClaude Opus 5.5 committed 2026-10-02 01:27:29 +03:00
1 parent 464cda2f71
commit 7bc6a866eb
5 files changed
+193 -51

No files matched your search

+5 -4
View File
@@ -275,9 +275,10 @@ device only; the editor has an XR simulator for dev. Trackers/action map: see `x
deferred, chase segments are the Box3D-honest version. Hierarchical budgets (Nimso muscle
model) from a 60 kg body-mass stat: hand 90 N ≺ forearm 180 N ≺ upper arm 360 N ≺ chest
2400 N. What it gives: arms that push props, rest on / get blocked by geometry (no
tunneling), and draw honestly (BodyRig's elbow = the physical elbow). What it does NOT do
yet (Stage 2b candidates, owner feel decides): a blocked forearm does not hold the HAND
back (hands still chase the controllers independently), and prop/NPC forces on the arm
don't flow into the chest. Regression: `scenes/arm_spike.tscn` "ARM: overall PASS";
tunneling), and draw honestly (BodyRig's elbow = the physical elbow). Playtest fixes (2026-10-02): open-loop torso lean
(no chest hunting), controller-driven + clamped/rate-limited elbow (no flips), held-prop
arm exceptions, and Stage 2b HAND COUPLING (a blocked arm holds its hand back, 3 cm slack,
ghost shows the controller). Still NOT done: prop/NPC forces on the arm don't flow into
the chest. Regression: `scenes/arm_spike.tscn` "ARM: overall PASS";
the full body also runs inside `scenes/collapse_spike.tscn`. Design + prior art:
`research/vr-body-physics-hugs.md` §5–7, `research/vr-body-physics-godot.md`.