Skip to content

ROM profiles and ground-contact invariants for domain-aware ranges #102

Description

@a-baran-orhan

Focused split of Workstream 3 from the dance UAT umbrella #91.

Goal

Support domain-aware movement ranges (e.g. ballet turnout / pointe) without weakening the conservative general ROM defaults. Treat tester-supplied angles as hypotheses to verify with qualified sources, implemented as representation profiles or contextual constraints rather than universal safety claims.

Investigate ROM profiles / contact context

  • Review hip external rotation for ballet (current ceiling 45°; UAT suggestion ≥60°, up to 90° for a ballet representation).
  • Review ankle dorsiflexion by context (~15° non-weight-bearing, up to ~30° weight-bearing).
  • Review ballet plantarflexion (current 50°; pointe-oriented ~90–100°).
  • Decide between explicit profiles (general, ballet), configurable rig limits, or solver context inferred from active contacts.
  • Keep authored-angle validation and IK/contact constraints aligned under any profile.
  • Keep representational ceiling vs medical/safety recommendation explicit.
  • Avoid sex-based ROM profiles; prefer explicit rig/user configuration.

Ground-contact invariants

  • Reproduce the Demi-plié heel lift with ground-lock: feet.
  • Decide precedence when authored pose, ROM clamp, and required contact cannot all be satisfied.
  • A declared planted sole must stay visibly planted or produce an explicit unresolved-contact diagnostic (never silently lift).
  • Add measurable invariants for heel height, toe height, sole orientation, and foot drift during grounded ballet movements.

Acceptance

  • General movements retain conservative default behavior.
  • A reviewed ballet configuration can represent required turnout/ankle ranges without changing global defaults accidentally.
  • Ground-contact failures are observable via diagnostics and tests.
  • No docs present these limits as medical advice.

Priority: P1.

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