arkavo-org / arkavo-org/VRMMetalKit

SpringBone: applyVelocityCorrection keeps push-out-manufactured outward velocity — joints coast 4-8cm after hard contact

Open
#382 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
6
Forks
2
Avg merge
18h 51m
Merged PRs (30d)
26

Description

**Problem**
applyVelocityCorrection() zeroes only inward normal velocity (if vn < 0.0), so the outward Verlet velocity that a collision push-out manufactures survives the next substep. The joint coasts outward for multiple frames.

**Observed drift**
During segment-collision testing (Task 4), hard contact against hand-held objects or cloth folds created 4-8cm fixture drift in waist-length chains — joints drifting visibly away from the contact surface for 0.1–0.2s after push-out.

**Pre-existing, affects every collider**
This is not introduced by fitClothCollisionToMesh — it's a general issue with how Verlet velocity is handled post-collision. Discovered incidentally while testing segment collision; applies to sphere, capsule, and plane colliders today.

**Reference**
Related to #381 cloth-collision fidelity; discovered during validation gate 6.3 (oracle measurement) and gate 6.4 (visual inspection).

Contributor guide

Open the contributing guide

Research direction

Start by locating applyVelocityCorrection() in the SpringBone collision code and trace how Verlet velocity is updated after push-out for sphere, capsule, and plane colliders. Reproduce the segment-collision scenario from Task 4, using validation gates 6.3 and 6.4 as references; done means hard contacts no longer leave joints coasting outward for multiple frames.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
computer-graphics
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.