Project TX video extractions into hugs research; dedupe AGENTS.md grab item; close research phase

This commit is contained in:
Foxyz1302 committed 2026-10-01 22:09:21 +03:00
1 parent 9c676f49d3
commit 970b5f1d50
3 files changed
+70 -19

No files matched your search

+8 -14
View File
@@ -210,20 +210,14 @@ device only; the editor has an XR simulator for dev. Trackers/action map: see `x
snap — SUSPENDED for a hand while it grips, HAND ghosts > 10 cm lag). Collision layers: snap — SUSPENDED for a hand while it grips, HAND ghosts > 10 cm lag). Collision layers:
1 = world, 2 = UI (panel mask 0 — props pass through even when shown); layers live on 1 = world, 2 = UI (panel mask 0 — props pass through even when shown); layers live on
CollisionObject3D, NOT CollisionShape3D. Panel = prop-UI prototype (ax_button summon, CollisionObject3D, NOT CollisionShape3D. Panel = prop-UI prototype (ax_button summon,
contact-press knobs, Reset). Research reports live in `research/` (arm IK, IK contact-press knobs, Reset). Laser/distant grab REMOVED (user never knew it existed);
stability/deep, grabbing, two-handed grab/Box3D internals, addon weld patch) — READ before grab = palm-proximity only, per-hand palm-face offset (left +X, right −X — taste).
re-researching or changing grab/IK. Stink-O's box3d-godot (custom components) = documented PinJoint quirks (anchors captured at creation; joint node position READ every tick;
plan-B. Laser/distant grab REMOVED (user never knew it existed); grab = palm-proximity only, break measures the prop-local anchor vs the palm point) apply to the v5.0–5.2 PIN path
per-hand palm-face offset (left +X, right −X — taste). Box3D PinJoint quirks: anchors are only — the weld does not share the pivot behavior. Research reports live in `research/`
CAPTURED AT CREATION; the joint node's position is READ EVERY TICK (keep it on the palm = (arm IK, IK stability/deep, grabbing, two-handed grab/Box3D internals, addon weld patch,
hand-following pivot); break must measure the prop-local anchor vs the palm point. Headless body physics hugs, body physics Godot facts) — READ before re-researching or changing
regression tests: `scenes/physics_spike.tscn` AND `scenes/grab_spike.tscn` — both must print grab/IK/body. Stink-O's box3d-godot (custom components) = documented plan-B.
overall PASS. `PhysicsHands.cs`: physical palm bodies (0.4 kg, 90 N chase, rotation lock,
stuck-safety snap, HAND ghosts > 10 cm lag). Collision layers: 1 = world, 2 = UI (panel mask
0 — props pass through even when shown); layers live on CollisionObject3D, NOT
CollisionShape3D. Panel = prop-UI prototype (ax_button summon, contact-press knobs, Reset).
Research reports live in `research/` (arm IK, IK stability/deep, grabbing,
two-handed grab/Box3D joint internals) — READ before re-researching or changing grab/IK.
7. **Getting a body (rig) — placeholder v1.2 (cube character, agent-built).** `BodyRig.cs`: 7. **Getting a body (rig) — placeholder v1.2 (cube character, agent-built).** `BodyRig.cs`:
all-BOX primitives (owner preference) — head 0.15³ behind the eyes, slim torso retracted, all-BOX primitives (owner preference) — head 0.15³ behind the eyes, slim torso retracted,
wrist-anchored 2-bone arms. **Soft IK applied**: shoulder→hand distance clamped to wrist-anchored 2-bone arms. **Soft IK applied**: shoulder→hand distance clamped to
+10 -5
View File
@@ -263,11 +263,16 @@ PropShop, PropGrabber, PhysicsHands, BodyRig, FadeLayer/Fade. Action map: `openx
wants to pursue a full physics VR body (also as reusable tech for a second project idea); wants to pursue a full physics VR body (also as reusable tech for a second project idea);
the hug should be mostly physics with detection for future interactivity. Research done: the hug should be mostly physics with detection for future interactivity. Research done:
`research/vr-body-physics-hugs.md` (prior art + phased design; §6 = Nimso's "Hybrid `research/vr-body-physics-hugs.md` (prior art + phased design; §6 = Nimso's "Hybrid
Presence", the closest known implementation, closed-source, only videos) and Presence", the closest known implementation; §7 = owner-extracted video breakdowns of
`research/vr-body-physics-godot.md` (verified stack facts: no Generic6DOF, hinge velocity Project TX: hierarchical per-joint force budgets, script-relaxation hand adaptation,
motors work, PD-follow proven by the hands). Owner offered video-extraction of Nimso's active-ragdoll NPCs with grab anchors) and `research/vr-body-physics-godot.md` (verified
deep-dive videos — pending. Recommendation shape: staged torso → 2-segment arm chains stack facts: no Generic6DOF, hinge velocity motors work, PD-follow proven by the hands).
(chase-driven, Boneworks/Nimso tier, NOT per-bone skeleton sim), test hugging props. Research verdict: the technique is an independent-implementation match of our existing
chase-drive architecture; no more video extraction needed now (conditional: Spideriini
elbow handling if Stage-2 elbow jitter bites; Test Chamber if a locomotion stage ever
starts). Recommendation shape: staged torso → 2-segment arm chains (chase-driven,
Boneworks/Nimso tier, NOT per-bone skeleton sim), test hugging props; muscle model =
hierarchical budgets (hand ≺ forearm ≺ shoulder ≺ torso) scaled from body mass.
Character model: keep boxes for the physics work (owner asked; see research §5-6). Character model: keep boxes for the physics work (owner asked; see research §5-6).
2. **Grab points on special objects** — grab is palm-proximity to the prop origin today; 2. **Grab points on special objects** — grab is palm-proximity to the prop origin today;
special objects may want authored grab anchors (see `research/vr-grabbing.md` taxonomy). special objects may want authored grab anchors (see `research/vr-grabbing.md` taxonomy).
+52
View File
@@ -187,3 +187,55 @@ no written technical breakdown exists anywhere.
force-clamped chase drives, i.e. the same pattern as our PhysicsHands generalized to limbs; force-clamped chase drives, i.e. the same pattern as our PhysicsHands generalized to limbs;
"hybrid" = tracked targets + simulated bodies, which is ALSO our layer-3 architecture "hybrid" = tracked targets + simulated bodies, which is ALSO our layer-3 architecture
(AGENTS.md). We are not inventing a new technique — we'd be porting a known-shaped one. (AGENTS.md). We are not inventing a new technique — we'd be porting a known-shaped one.
## 7. Project TX video extractions (owner-provided AI summaries, 2026-10-01)
Owner extracted AI breakdowns of Nimso's videos: "IN-DEPTH VR PHYSICS INTERACTIONS" pt. 1–2
(`youtube.com/watch?v=tMDmwD1cQPg`, `BTlY8SWLtgo`), plus asks on joint/force model, muscle
system, hand adaptation, and physics NPCs. Distilled to what bears on OUR design:
- [S] **Force model = ours, generalized.** Script = "brain" reading tracker data, feeding
targets; solver executes via ConfigurableJoints in force/acceleration mode with PD-tuned
spring (Slerp) drives — never infinite force. Heavy object ⇒ spring stretches ⇒ hand lags
the controller ⇒ weight feel. Exactly our PhysicsHands pattern (90 N chase) and the grab
weld's philosophy: the solver owns the coupling, the script owns the intent.
- [S] **Muscle = hierarchical per-joint force budgets.** Base avatar mass 60 kg scales the
joint drives' F_max. Shoulders get HIGH torque budgets (climb-hangs the whole body);
wrists/forearms get strict caps. A 12 kg sledgehammer held out straight exceeds the
wrist/forearm cap via lever arm ⇒ hand buckles; two-hand sliding down the shaft shortens
the lever ⇒ liftable. Fatigue is modeled as mechanical disadvantage ONLY — no stamina
meter; strain reads through visual lag and drift. → Refinement for our Stage 2: replace
the flat 90 N hand budget with per-joint budgets (hand ≺ forearm ≺ shoulder ≺ torso)
scaled from a body-mass stat; props with attachment coordinates register their mass at
the attachment point (holstered 12 kg hammer scaled the whole avatar 60→72 kg).
- [S] **Hand adaptation = script-side relaxation on contact (anti-winch).** When the hand
hits structural limits, the script temporarily relinquishes axes, SHIFTS THE PIVOT (palm
→ fingertips against a magazine baseplate), and eases joint boundaries dynamically
("dynamic radius gripping" tracks a bat's changing radius as the hand slides). The winch
lesson in reverse: don't fight the solver — reconfigure. Our analog already exists as
break thresholds; a future nicety is pivot-shift on contact for resting palms on surfaces.
- [S] **Physics NPCs (the huggee half) = active ragdoll + kinematic grab anchors.** The NPC
is a live ragdoll driven by internal joint-matching springs (Boneworks-class). Strikes
compare impact velocity against NPC joint stiffness; enough momentum overrides the NPC's
balance solver (deflection before hit registration). Grabbing an NPC's hand/head creates
a TEMPORARY fixed/distance joint between the player's hand rigidbody and the NPC
hitboxes — the NPC instantly feels the player's weight; you can swing, push off-balance,
pull close. → For us: hug/touch = contact between player chest/palms and an NPC
active-ragdoll; grabbing NPCs = our existing ConeTwist weld against NPC anchor bodies;
squeeze-back = NPC joint-matching drives ramping against the player's budget.
- [S] **Leg colliders exist but are buggy** (legs lock up, impede crawling) — the dev
shipped them anyway for climbing/tire-swing play. Validates deferring legs LAST.
- [S] **Locomotion is physics-native**: stick push at slow speed, natural sway raises walk,
jog bounce frequency triggers run ("remember your feet aren't tracked"); two-handed
weapons blend primary-hand rotation with secondary-hand position ("Hybrid system").
- [S] **Out of scope for VR Messs** (noted for completeness): extended physics materials as
data wrappers (surface-pair impact audio, density-based stabbing, material magnetism),
dynamic recoil from muzzle/bullet-mass integration, geometric mag-well sliding with
ergonomic posing rules, mass-independent buoyancy (surface-area/displacement forces so a
1 kg box floats a 70 kg body without jitter), modular attachments shifting center of mass
locally, cross-compatible ammo systems.
- [I] **What the extractions change in our plan:** confidence only + two concrete design
upgrades (hierarchical budgets; NPC anchors via existing welds). No architectural
surprises — an independent implementation converged on our exact shape. Remaining unknown
= tuning numbers (per-joint gains; published nowhere, must be tuned in-headset) and
locomotion/balance/comfort (only relevant at a Stage 3+ we may never reach).