Fix figure IK snapping and gate the library on a fail-hard motion checker
Three solver defects made limbs teleport, twist, or windmill: write-back angles wrapped at ±180 and lerped the long way around; branch flips landed on configurations the anatomical write-back cannot represent, silently pulling pinned extremities off their pins; and the degenerate straight-limb bend plane fell back to the camera axis instead of the anatomical anterior. solve_limb now verifies each branch reproduces the solved end before accepting it, resolve unwraps written-back angles toward the pose they replace, and the degenerate plane comes from the parent's anterior axis. render.py --check replays every exercise's full tween loop and fails hard on six invariants (pin fidelity, continuity, wraps, authored-vs-resolved drift, ground penetration, resolved ROM); --export refuses to ship a failing exercise. All 66 motions re-authored or retouched to pass: honest authored angles where pins used to override them silently, grounded feet on the seated machines, a vertical bench-press bar path, straight-armed child's pose, a butterfly stretch seated on the mat, and FK arms where pins forced impossible reaches. MotionSolver.swift mirrors the solver changes line for line, held by regenerated fixtures. Claude-Session: https://claude.ai/code/session_01PKptrgbx74peTwHGRxBojv
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# Running
|
||||
|
||||
Steady, easy-pace running — an upright posture with a slight forward lean from
|
||||
the ankles, a light midfoot landing under the hips, and a relaxed, efficient
|
||||
stride. Run in place, on a treadmill, or outdoors; your Apple Watch records
|
||||
the real effort — heart rate, calories, and duration — as a running workout.
|
||||
|
||||
- **Category:** Cardio
|
||||
- **Type:** Aerobic / conditioning
|
||||
- **Targets:** Heart, lungs, legs, endurance
|
||||
- **Prescription:** 15–30 minutes at a conversational-to-brisk pace
|
||||
- **Defaults:** 1 × 1200 s
|
||||
|
||||
## Setup
|
||||
|
||||
Stand tall with a slight forward lean from the ankles, not the waist. Let
|
||||
your watch start the session so the effort is tracked on your wrist.
|
||||
|
||||
## Execution
|
||||
|
||||
1. Ease in for the first minute or two, letting your heart rate climb.
|
||||
2. Land lightly on your midfoot, under your hips — not out in front.
|
||||
3. Drive your knees forward and let your arms swing opposite your legs.
|
||||
4. Favor a quicker cadence over a longer stride; settle into a pace you can
|
||||
hold for the whole block.
|
||||
5. Cool down with an easy minute before you stop.
|
||||
|
||||
## Cues
|
||||
|
||||
- Keep your posture tall, with the lean coming from the ankles.
|
||||
- Relax your shoulders and keep your elbows around 90 degrees.
|
||||
- Aim for a pace where you could speak in short sentences, not full paragraphs.
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
- Overstriding — reaching the foot out ahead of the hips on landing.
|
||||
- Starting too hard and fading long before the time is up.
|
||||
- Hunching forward at the waist instead of leaning from the ankles.
|
||||
|
||||
## Progression
|
||||
|
||||
Add minutes, lift the pace, or fold in short faster intervals to raise the
|
||||
challenge over time.
|
||||
Reference in New Issue
Block a user