Skip to content

Support single-foot ground-lock and warn on unsupported ground-lock effectors #60

Description

@a-baran-orhan

Summary

A user trying to author a standing crossover turn cannot pivot on one planted foot because ground-lock currently supports the grouped values feet / hands, but not the per-side effectors foot_right / foot_left.

The production playground silently accepts the unsupported values and reports “parses clean, no warnings”, so the movement looks like turn is broken even though the problem is the ignored/unsupported ground lock.

Verified on https://posecode.org/play on 2026-07-15:

  • a control movement using turn: 180 with ground-lock: feet parses and the figure rotates;
  • changing the lock to ground-lock: foot_right still reports “parses clean, no warnings”;
  • the vocabulary/spec currently documents ground-lock groups, while per-side foot effectors are already supported for reach: / pin:.

Reproduction

posecode exercise "Standing Crossover Turn"

rig humanoid

pose start = standing

step "Left crossover step" 0.55s ease-in-out:
  hip_left: adduct 28
  knee_left: flex 42
  ankle_left: dorsiflex 9
  knee_right: flex 6
  turn: 70
  ground-lock: foot_right
  cue "Lift the left foot and cross it over the right while balancing on the right leg"

step "Pivot and settle" 0.65s ease-in-out:
  hip_left: adduct 0
  knee_left: flex 0
  ankle_left: dorsiflex 0
  knee_right: flex 0
  turn: 180
  ground-lock: foot_right
  cue "Pivot on the right foot, uncross the left foot, and settle with both feet under the hips"

step "Right crossover step" 0.55s ease-in-out:
  hip_right: adduct 28
  knee_right: flex 42
  ankle_right: dorsiflex 9
  knee_left: flex 6
  turn: 250
  ground-lock: foot_left
  cue "Lift the right foot and cross it over the left while balancing on the left leg"

step "Pivot and finish" 0.65s ease-in-out:
  hip_right: adduct 0
  knee_right: flex 0
  ankle_right: dorsiflex 0
  knee_left: flex 0
  turn: 360
  ground-lock: foot_left
  cue "Pivot on the left foot, uncross the right foot, and settle evenly on both feet"

repeat 1

Actual behavior

  • The editor reports “parses clean, no warnings.”
  • foot_right and foot_left do not provide single-foot grounding.
  • The authored crossover turn therefore cannot pivot around the intended planted foot.

Expected behavior

  1. Support per-side ground locks:
    • ground-lock: foot_left
    • ground-lock: foot_right
    • ideally the equivalent hand aliases if the ground-lock model is generalized consistently.
  2. Until/if an effector is supported, emit a line-anchored parser/editor diagnostic instead of silently accepting it.
  3. Keep ground-lock: feet and ground-lock: hands behavior backward compatible.
  4. Update completions and the spec to list the accepted ground-lock values.

Acceptance criteria

  • A phase locked to foot_right keeps only the right foot planted while the left foot can cross or step.
  • A phase locked to foot_left behaves symmetrically.
  • Unknown or unsupported ground-lock values produce a visible, line-specific diagnostic.
  • Parser/render tests cover grouped values, per-side values, and an invalid value.
  • The reproduction above can visibly pivot around the alternating planted foot without reporting false-clean validation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions