Project TX video extractions into hugs research; dedupe AGENTS.md grab item; close research phase
This commit is contained in:
1 parent
9c676f49d3
commit
970b5f1d50
3 files changed
+70
-19
No files matched your search
@@ -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:
|
||||
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 internals, addon weld patch) — READ before
|
||||
re-researching or changing grab/IK. Stink-O's box3d-godot (custom components) = documented
|
||||
plan-B. Laser/distant grab REMOVED (user never knew it existed); grab = palm-proximity only,
|
||||
per-hand palm-face offset (left +X, right −X — taste). Box3D PinJoint quirks: anchors are
|
||||
CAPTURED AT CREATION; the joint node's position is READ EVERY TICK (keep it on the palm =
|
||||
hand-following pivot); break must measure the prop-local anchor vs the palm point. Headless
|
||||
regression tests: `scenes/physics_spike.tscn` AND `scenes/grab_spike.tscn` — both must print
|
||||
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.
|
||||
contact-press knobs, Reset). Laser/distant grab REMOVED (user never knew it existed);
|
||||
grab = palm-proximity only, per-hand palm-face offset (left +X, right −X — taste).
|
||||
PinJoint quirks (anchors captured at creation; joint node position READ every tick;
|
||||
break measures the prop-local anchor vs the palm point) apply to the v5.0–5.2 PIN path
|
||||
only — the weld does not share the pivot behavior. Research reports live in `research/`
|
||||
(arm IK, IK stability/deep, grabbing, two-handed grab/Box3D internals, addon weld patch,
|
||||
body physics hugs, body physics Godot facts) — READ before re-researching or changing
|
||||
grab/IK/body. Stink-O's box3d-godot (custom components) = documented plan-B.
|
||||
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,
|
||||
wrist-anchored 2-bone arms. **Soft IK applied**: shoulder→hand distance clamped to
|
||||
|
||||
+10
-5
@@ -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);
|
||||
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
|
||||
Presence", the closest known implementation, closed-source, only videos) and
|
||||
`research/vr-body-physics-godot.md` (verified stack facts: no Generic6DOF, hinge velocity
|
||||
motors work, PD-follow proven by the hands). Owner offered video-extraction of Nimso's
|
||||
deep-dive videos — pending. Recommendation shape: staged torso → 2-segment arm chains
|
||||
(chase-driven, Boneworks/Nimso tier, NOT per-bone skeleton sim), test hugging props.
|
||||
Presence", the closest known implementation; §7 = owner-extracted video breakdowns of
|
||||
Project TX: hierarchical per-joint force budgets, script-relaxation hand adaptation,
|
||||
active-ragdoll NPCs with grab anchors) and `research/vr-body-physics-godot.md` (verified
|
||||
stack facts: no Generic6DOF, hinge velocity motors work, PD-follow proven by the hands).
|
||||
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).
|
||||
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).
|
||||
|
||||
@@ -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;
|
||||
"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.
|
||||
|
||||
## 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).
|
||||
Reference in new issue
Block a user