Hand Walker
A severed hand that walks on its fingertips, built in Three.js. Every motion is math and physics, no keyframes, no physics engine.
A severed hand walks on its fingertips, “Thing” style. There are no keyframes and no physics engine behind it. The gait, the balancing, the grip: all of it is solved from the model’s anatomy each frame.
The hand is the free generic-hand WebXR model, auto-rigged at load from its bind pose: hinge and abduction axes, reach, stance height and foot-rest positions all derived, never hand-tuned. Each digit gets an analytic two-bone inverse-kinematics solve in its curl plane (law of cosines), with the DIP joint anatomically slaved to the PIP and an MCP yaw that swings the curl plane through the foot target.
The physics is SI-correct for a 0.45 kg hand under real gravity, scaled to the model’s metric size. Planted digits produce capped flexor force, locomotion is friction-limited, jumps are energy-based, and landings squash against the force cap. When support fails the palm bottoms out and scrapes. A global phase advances at a cadence solved for zero foot-slip against each digit’s stance band; shorter legs cycle at twice the cadence, so they patter. Faster commands switch gaits like a dog: walk (ripple) to trot (two-beat pairs, thumb carried aloft) to run (mostly airborne, the bounce emerging from the support spring).
Drag the ground to lead the hand. Pull further and it goes faster. WASD walks camera-relative, Space jumps, right-drag orbits. The backtick opens a debug overlay with the bones, IK targets, forces and support polygon drawn in 3D, plus a numeric panel of every quantity in the sim. qa.js exposes a scripted stress matrix that grades the gait against its quality criteria.