Make traveling gait moves carry the body to their waypoints#97
Merged
Conversation
Floor foot-pins were solved by translating the whole body back onto the planted foot. During authored `travel:` that cancelled the travel — the figure marched in place while the floor-guide circles moved away (box-step never traced its box, grapevine/chassé skipped their circles, chassé even drifted backward). Phases that used `ground-lock` instead of `pin` travelled correctly, which was the tell. Solver: in a GAIT clip (authors travel AND alternates floor foot-pins between both feet) a floor foot-pin is now a STANCE foot — solved by leg IK to the fixed plant while the travelled root stays put, so the body steps across the floor instead of marching in place. Same-foot travel pins (a forward lunge's weight-shift) and vertical supports (pull-up bar, box, calf-raise, pirouette) keep the body-translate behavior. Mirrored in both the viewer (index.ts) and the headless eval probe (probe.ts), which are kept in parity. Reconcile the last centimetres of stance reach (the leg chain is hip+knee only, so a planted foot can't roll onto its toe): - checks.ts: foot->floor contacts in a traveling clip use a 6cm locomotion tolerance (real push-off roll); static contacts keep the strict 3cm bar. - Trimmed over-authored travel so the body stays balanced over its feet: chassé to a compact 0.2/0.4, waltz-box 0.32->0.2, walk-cycle 0.4/0.8->0.34/0.66. Also silence float-warning false positives: heel/sole flat-foot warnings now require the shin near-vertical, so a plank/mountain-climber foot resting on its ball (shin laid flat, sole legitimately steep) is no longer flagged as a failed flat plant. Real heel-lift (deadlift, superhero-landing, deep squats) stays flagged. These clip warnings are advisory and do not affect the gate. Pirouette's spin is not yet on-axis (the body orbits the off-center supporting foot); marked experimental in the playground pending a focused spin-axis fix. Eval: 1561/1561 checks on both shipped proportions, 0 clamp warnings, constraint warnings 165 -> 151. New test: travel-planting.test.ts asserts the body reaches each authored travel waypoint.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Traveling dance/locomotion moves didn't obey their authored positions — the figure marched in place while the floor-guide circles moved away:
travel=(0, 0.32)at only(0, 0.00)Root cause: a
pin: foot floorwas solved by translating the whole body back onto the planted foot. During authoredtravel:that cancels the travel. Phases usingground-lockinstead ofpin(which only corrects Y) travelled correctly — the tell.Fix
Solver. In a gait clip — authors travel and alternates floor foot-pins between both feet — a floor foot-pin is now a stance foot: solved by leg IK to the fixed plant while the travelled root stays put, so the figure steps across the floor. Same-foot travel pins (a forward-lunge weight-shift) and vertical supports (pull-up bar, box, calf-raise, pirouette) keep the body-translate behavior. Applied in both the viewer (
index.ts) and the headless eval probe (probe.ts), which are kept in parity.Reconciliation. The leg chain is hip+knee only (a planted foot can't roll onto its toe), so a stance foot's contact point shifts a few cm as the body passes over it:
checks.ts: foot→floor contacts in a traveling clip use a 6 cm locomotion tolerance (real push-off roll); static contacts keep the strict 3 cm bar.0.2/0.4, waltz-box0.32→0.2, walk-cycle0.4/0.8→0.34/0.66.Float-warning false positives. Flat-foot heel/sole warnings now require the shin near-vertical, so a plank / mountain-climber foot on its ball (shin laid flat, sole legitimately steep) is no longer flagged as a failed flat plant. Real heel-lift (deadlift, superhero-landing, deep squats) stays flagged. These
clip-*warnings are advisory and don't affect the gate.Pirouette. Its spin isn't on-axis yet (the body orbits the off-center supporting foot); marked experimental in the playground pending a focused spin-axis fix.
Result
Test plan
npm run eval— 1561/1561 checks on both shipped proportions (XBot + procedural), 0 clamp warnings; constraint warnings 165 → 151npm test— 397/397 pass, incl. newtravel-planting.test.ts(asserts the body reaches each authored travel waypoint)tsc --noEmitclean on render, eval, playground🤖 Generated with Claude Code