Add the exercise reference library, animated exercise figures, and exercise categories
Exercise Library/ holds per-exercise reference docs (setup, cues, mistakes, progressions) with SVG visuals and a Python-rendered motion pipeline; Workouts/ExerciseFigure renders the bundled *.motion.json rigs as animated stick figures on the exercise screen. Exercises gain a warm-up/main-circuit category, timed exercises display hold time via planSummary, and a completed exercise reopens to a check screen instead of its timers.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# 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).
|
||||
|
||||
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.
|
||||
Reference in New Issue
Block a user