Body Stage 1 failed first playtest (NaN solver blowup: seated chest-in-table + two-handed anvil weld); failure brief for external agent; docs marked, body track blocked pending diagnosis

This commit is contained in:
Foxyz1302 committed 2026-10-01 23:20:40 +03:00
1 parent 4fdfcfd928
commit ce1e0e3b0c
3 files changed
+167 -17

No files matched your search

+26 -12
View File
@@ -120,7 +120,10 @@ TERMINOLOGY (owner-corrected — use precisely):
grab/teleport; `IsPanelCollider(node)` identifies interactive colliders for lasers.
- **TeleportMarker.cs** — `scenes/teleport_marker.tscn`: disc + beam + Label3D, group
"teleport_marker", StaticBody pick box. `SetNear` hides visuals, `SetHighlighted` swaps colors.
- **PhysicsTorso.cs** — the player's PHYSICAL CHEST (body-physics Stage 1, implemented 2026-10-01).
- **PhysicsTorso.cs** — the player's PHYSICAL CHEST (body-physics Stage 1). **Implemented
2026-10-01; FAILED first in-headset playtest (seated chest-vs-table overlap + two-handed
50 kg anvil weld → NaN transform flood) — see §5 known issues +**
**`research/body-stage1-failure-brief.md` before touching anything here.**
One RigidBody3D box (0.22×0.5×0.13, 30 kg, gravity off, CCD, contact monitor), chase-driven
toward an HMD-derived target: target = head − 6 cm back + torso-yaw basis·(0, −0.42, +0.06)
+ `ReachOffset` (fed by BodyRig's reach budget). Linear drive = the PhysicsHands pattern at
@@ -213,6 +216,19 @@ Floor StaticBody scans layer 3 (collision_mask 13).
## 5. Known issues / open questions
- **Body Stage 1 (chest) FAILED in-headset on first playtest (2026-10-01) — DO NOT extend the
body track until diagnosed.** Owner report: "it quickly collapsed with my head detaching
from the body"; screenshot = prop table chaos. Log evidence: session calibrated at head
height **1.01 m (seated)** → chest box overlaps the table; the NaN flood
(`!v.is_finite()` at `instance_set_transform`, 22.8k lines) starts right after
**"grabbed 'Anvil · 50 kg' (50 kg, left, two-handed)"** — i.e. chest-vs-statics overlap +
50 kg prop rigid-welded to both 90 N hands pressed into that mess. Headless body spike
passes (it lacks static-table overlap + welded heavy props — that's the repro gap).
Full self-contained analysis for the owner's external agent:
**`research/body-stage1-failure-brief.md`** (evidence chain, hypotheses H1–H3, mitigation
candidates M1–M5, headless-repro plan). Working suspicion: the documented
"script velocity SETs + reaction forces = limit cycle" lesson (grab v5.0) resurfacing at
body scale — 30 kg velocity-write servo braced against statics.
- **AnchorMoveMode NEEDS FIXING (owner playtest report, 2026-10-01)** — two-hand turning
is NOT working as intended (not 2-anchor based) and simultaneous two-hand movement acts
weird. NOTE before fixing: owner is considering replacing grab-locomotion with physics
@@ -295,17 +311,15 @@ Floor StaticBody scans layer 3 (collision_mask 13).
## 7. Next steps (in order)
1. **Full physics body track — Stage 1 (chest body) IMPLEMENTED, validate in-headset** —
`PhysicsTorso.cs` is live: chase chest (30 kg, 2400 N), yaw spring moved in, collision
layers reworked (3 = body, 4 = hands, no self-collision). Owner playtests: chest contact
with props (lean a crate on it, catch the bowling ball against it), shove response
(props push the chest, it recovers — camera never moves), turn following (torso lags
head naturally), weight feel. Hug testing on props as agreed. Headless: `body_spike`
PASS 3×; all other spikes still PASS 3×. **Stage 2 (arm chains, hierarchical budgets,
Nimso/Boneworks tier) awaits Stage-1 feel verdict** — see
`research/vr-body-physics-hugs.md` §5/§7 + `research/vr-body-physics-godot.md`.
Tuning knobs live in HANDOFF §6 (PhysicsTorso rows); first levers if feel is off:
`MaxForce` (gives more/less), `OrientKp` (torso yaw stiffness).
1. **Diagnose + fix the body Stage-1 collapse (BLOCKS the body track)** — first playtest of
the physical chest NaN'd the solver (seated chest-in-table overlap + two-handed 50 kg
anvil weld pressed into it; "head detaching from the body"). All context, hypotheses,
mitigation candidates and the headless-repro plan are in
`research/body-stage1-failure-brief.md` — written self-contained so the owner can forward
it to their external agent verbatim. First move per the brief: extend `body_spike` with
the exact cocktail (chest target overlapping a static slab + two welded 90 N hands
dragging a 50 kg box into the chest) and get a deterministic NaN repro before touching
PhysicsTorso.cs. Owner re-playtests feel only after the fix.
2. **Locomotion decision** — owner report 2026-10-01: two-hand anchor turning broken (not
2-anchor based), simultaneous two-hand movement acts weird, teleport + lasers broken
(experiments, not current issues). Owner's candidate replacement: physics thumbstick