Skip to content

Reduce contact warnings: honest reach/ground-lock + locomotion-aware grounding#99

Merged
a-baran-orhan merged 7 commits into
mainfrom
fix/reduce-contact-warnings
Jul 22, 2026
Merged

Reduce contact warnings: honest reach/ground-lock + locomotion-aware grounding#99
a-baran-orhan merged 7 commits into
mainfrom
fix/reduce-contact-warnings

Conversation

@a-baran-orhan

@a-baran-orhan a-baran-orhan commented Jul 22, 2026

Copy link
Copy Markdown
Member

Cuts advisory contact warnings 165 → 109 without weakening the gate. Two kinds of change, both principled.

1. Authoring: reach, not ground-lock, for relocating feet

Many moves declared a foot a planted support while it was actually relocating — closing home, landing from a knee-drive, returning from a kick, brushing a tendu, pivoting a turn. The solver then correctly reported the "planted" feet drifting, sometimes hugely (walk-cycle about-face 0.95 m, high-knee-march switch 0.40 m). Fixed by declaring the moving foot reach: foot floor and keeping only the true stance foot ground-locked.

Now warning-free: box-step, grapevine, chassé, waltz-box, walk-cycle closes; high-knee-march, hip-abduction, hip-flexion-demo, front-kick, tendu, quarter-turns, plank-hold. Ready moves clean: 26 → 33.

2. Diagnostics: don't measure a locomotion foot against static thresholds

The clip grounding checks assume a statically-held flat foot. A stance foot in a traveling clip is never that: it rolls onto its ball as the body passes (toe planted, heel lifts = push-off), and at each step transition the pin alternates a beat before the landing foot is down (both corners briefly airborne = swing). Measured earlier this session — box-step's stance foot: toe 0.000, heel 0.06→0.12, sole 19→33° — that's push-off, not a defect.

In a locomotion clip (isLocomotion, threaded from the probe):

  • exempt a toe-planted, heel-lifted foot (push-off roll) from the flat-foot checks;
  • skip an airborne supported foot (sole well off the floor) as a swing/landing foot — extends the existing generic-feet swing skip to pins.
  • (Also: gate toe-height on shin orientation like heel/sole, so a foot on its ball — plank — isn't a flat foot with a lifted toe.)

Safety: all exemptions are gated on a traveling clip; static clips (squat, deadlift, plank, plié) keep the strict bar. The endpoint contact-position gate check still validates every pin at phase end, so a genuinely-failed pin cannot hide. Verified: box-step's ~0.12 m handoff float is gone; superhero-landing/deadlift static heel-lift still flags.

Not in this PR (left ready with advisory notes, by decision)

14 moves still carry minor advisory warnings and were deliberately not demoted — demoting empties the curated Dance category and the featured Jumping-jacks move. They split into: gait settle-roll (small, could take one more locomotion threshold), deep-pose heel-lift past the 15° ankle ROM (breaks coupled checks when eased — needs solver/visual work), jumping-jacks (airborne jump), calf-raise (on-toe), quad-stretch (arm clearance).

Verification

  • npm run eval1555/1555 checks on both shipped proportions, 0 clamp warnings; constraint warnings 165 → 109
  • npm test399/399, incl. new locomotion-grounding.test.ts (exemption works; no static over-suppression)
  • Only the private posecode-eval package + fixtures changed → no changeset

🤖 Generated with Claude Code

…ock)

The closing / settling / about-face steps of the traveling gait moves
declared their feet `ground-lock: feet` (planted) while the feet were
actually relocating — closing home, stepping the trailing foot in, pivoting
through a 180° about-face, or coming together in a waltz close. The grounding
solver then reported the feet as planted-yet-drifting, up to ~0.95m
(walk-cycle about-face), ~0.74m (walk-cycle arrival), and 0.13-0.21m across
box-step / grapevine / chassé / waltz-box.

Declare those relocating feet as `reach: foot_left/right floor` instead: the
feet step to the floor at their settling position, which is what actually
happens, so the false planted-drift disappears and the motion is unchanged.

Only steps where the feet genuinely move are converted — a stationary
plié/lower keeps `ground-lock: feet`, and the deliberately mid-move
about-face turn's relocation is now honest.

Eval: 1559/1559 checks on both shipped proportions, 0 clamp warnings,
constraint warnings 151 -> 146; the large phase-transition foot-drift
warnings are gone. 397/397 tests pass.
@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
posecode Ready Ready Preview, Comment Jul 22, 2026 2:53pm

…oves

Same fix as the gait closing steps, applied to more moves that declared a
moving foot as a planted support:

- high-knee-march: the descending knee-drive foot ("Switch") and the returning
  feet ("Down") are landing, not planted (was 0.40m planted-drift).
- hip-abduction, hip-flexion-demo: the raised leg's foot lands during "Lower".
- front-kick "Return", tendu "Close through the floor": the working foot
  returns/brushes home while the other stays planted.
- box-step-taps "Right/Left down": the tapping foot lands.
- quarter-turns: feet pivot to the new facing on each 90° turn (was 0.19m
  orbit-drift), like walk-cycle's about-face.

Each keeps the true stance foot ground-locked and declares the moving foot a
`reach: foot floor`. high-knee-march, hip-abduction, hip-flexion-demo,
front-kick, tendu, quarter-turns are now warning-free.

Eval: 1555/1555 checks both proportions; constraint warnings 146 -> 125.
397/397 tests pass.
A foot on its ball (plank, knee-drive) with the shin laid down legitimately
lifts its toe off the flat plane; only flag toe-height when a flat foot is
expected (shin near-vertical), matching the existing heel/sole gate. Clears
plank-hold's false toe-height warnings; real flat-foot toe-lift still fires.
@a-baran-orhan a-baran-orhan changed the title Stop feet sliding at gait phase transitions Reduce contact warnings: reach (not ground-lock) for relocating feet Jul 22, 2026
…t plant

The clip grounding checks use static-pose thresholds, but a stance foot in a
traveling clip is never statically flat: it rolls onto its ball as the body
passes (toe planted, heel lifts = push-off), and at each step transition the
pin alternates a beat before the landing foot is actually down (both heel and
toe briefly airborne = swing). Both are correct gait, not grounding artifacts.

In a locomotion clip (authored travel):
- exempt a toe-planted, heel-lifted foot (push-off roll) from the flat-foot
  heel/toe/sole checks;
- skip an airborne supported foot (sole well off the floor) as a swing/landing
  foot, extending the existing generic-`feet` swing-foot skip to pins.

The endpoint contact-position check still catches a pin genuinely left off its
anchor, so a real solver failure cannot hide. Static clips (squat, deadlift,
plank, plié) keep the strict flat-foot bar. Cleared the large gait
phase-transition heel/float warnings (box-step 0.121m -> 0.029m); constraint
warnings 118 -> 109. 397/397 tests pass.
After clearing every authoring-fixable and locomotion-diagnostic warning,
14 moves still emit advisory contact warnings that need solver work or
per-pose visual iteration (deep-pose heel-lift past the ankle ROM:
superhero-landing, forward-lunge, horse-stance, demi-plie, step-up,
single-leg-calf-raise; residual gait roll/settle: box-step, grapevine,
chasse, waltz-box, walk-cycle, box-step-taps; plus jumping-jacks airborne
feet and quad-stretch arm-body clearance).

Mark them experimental so "ready" truthfully means warning-free. Ready now:
33 moves, all clean.
…ssion)

Asserts the airborne-swing exemption removes box-step's large phase-transition
heel floats, and that superhero-landing's genuine static heel-lift is still
flagged (the exemption must not suppress real artifacts).
@a-baran-orhan a-baran-orhan changed the title Reduce contact warnings: reach (not ground-lock) for relocating feet Reduce contact warnings: honest reach/ground-lock + locomotion-aware grounding Jul 22, 2026
@a-baran-orhan
a-baran-orhan merged commit fd26d8f into main Jul 22, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant