Files
workouts/Exercise Library
rzen bb234c198f Fix backward-bending joints in the five legacy motions
Abdominal's pinned hands used elbow -40 as the IK plane hint, drawing
the arms hyperextended (user-reported). Flipping the hint bends the
elbows the natural way while the hands stay on the handles. Same class
of fix for the milder cases: Arm Curl and Shoulder Press elbows and
Calfs knees clamp to -8, Side Plank's raised arm to the -70 ROM cap.
The whole library now passes render.py --strict with zero warnings,
making it a valid verification gate. Fixtures regenerated; 48 tests
green.

Claude-Session: https://claude.ai/code/session_01HJDQQDA9QdP8zByg43H5v3
2026-07-07 13:06:18 -04:00
..

Exercise Library

Reference material for exercises the app knows about — one folder per exercise, named exactly as the exercise appears in the app.

Each entry contains:

  • info.md — the details, always in this order: a one-line summary, quick facts (Category, Type, Targets, Prescription), then Setup, Execution, Cues, Common Mistakes, and Progression (easier → harder — get strong by making the move harder, not by endless reps).
  • motion.json — the exercise scripted as key frames of joint angles on the shared rig (proportions in the library-level body.json), with IK pins for planted hands/feet and tween timings. This is the canonical source for all visuals and for the in-app animation planned for the lower half of the exercise screen.
  • Generated from it by render.py (never hand-edited): frames/frame-N.svg (one per key frame), preview.gif (the tweened loop), and visual.svg (the primary frame, for static contexts).

Which exercises the library must contain — the movement-pattern × modality matrix, the gym-floor census, and the considered exclusions — is defined in COVERAGE.md; judge additions and removals against it.

The rig and the visual language — right limbs dark / left limbs light with an embedded R/L legend, nose tick for facing, teal on the working parts, timing that encodes tempo, plus figure profiles, flipping, and theming — are defined in SYSTEM.md, along with the motion.json schema and rendering instructions.

The library lives at the repo root, deliberately outside the app targets' source folders, and is not bundled into the app yet — the in-app presentation format is still being worked out.