bb234c198f91c16a540324acd739c7d8985668db
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
Workouts
A workout tracking app for iPhone and Apple Watch. Build workout splits, run sessions, and track your progress — with your data stored as plain JSON files in your own iCloud Drive.
Key Features
- Workout splits — organize exercises into reusable routines with custom colors, icons, and an activity type (strength, HIIT, cardio, …). Built-in starter splits (Upper Body / Core / Lower Body machine routines, plus an equipment-free Bodyweight Core circuit with its own warm-up) appear automatically on first launch; editing one makes it your own copy, and deleted starters can be restored from Settings.
- Exercise library — a bundled library of 47 exercises to populate your
splits, authored in
Exercise Library/with per-exercise setup, cues, mistakes, progressions, and an anatomically-rigged 3D stick-figure visual system — covering every common movement pattern and gym station (see the library'sCOVERAGE.md): the full machine circuit, the barbell and dumbbell free-weight canon (deadlifts, squats, benches, rows, curls, raises), the cable staples, and the bodyweight staples (push-ups, pull-ups, dips, lunges, and the floor core set). - Run a workout — start a session from a split, then tap an exercise to run it as a paged flow: a Ready? lead-in, count-up work phases, count-down rests, and a Finish page — mirroring the Apple Watch. Swipe a row to mark it complete, or swipe to edit its plan (sets/reps/weight or duration) and notes. End a workout early from the ⋯ menu — Save keeps your progress (remaining exercises are marked skipped) or Discard removes it.
- Animated form guide — every library exercise shows a looping stick-figure demonstration on the run screen's bottom half, posed by real joint angles on an anatomical 3D skeleton (complete with feet) and rendered live from the Exercise Library's rig data with the working limbs highlighted — the camera slowly orbits every exercise while it moves, machine equipment (seats, bars, cables, roller pads) has world-space 3D form that turns with the figure, and face-on machines show true hip abduction and torso rotation.
- Machine comfort settings — machine-based exercises remember your setup (seat height, back-rest position, pin position, …), shown on the workout screen and editable mid-workout; changes save back to the split for next time.
- Progress tracking — weight-progression charts per exercise across past sessions.
- Apple Watch companion — starting a workout on the iPhone launches the watch app straight into it. The watch lists your in-progress workouts; pick one, pick an exercise, and run it as a paged flow: a Ready? lead-in, count-up work phases, count-down rests with final-three-second haptics and auto-advance, and a Finish page with One More and a Done that auto-completes after a countdown. A phase-dot row (purple work, teal rest) tracks progress. Rest time and the auto-finish countdown are configurable; changes sync back to the phone.
- Two-way live run — prop your iPhone up during an Apple Watch workout and it runs the same Ready → work/rest → Finish flow with live timers, in step with the watch. It's bidirectional: drive from either device — swipe ahead, finish a set, add one — and the other follows. Only human transitions are sent; automatic ones (a rest timer ending) advance both devices independently off shared start times, so they never fight.
- Watch face complication — a launcher complication you can place on any Apple Watch face; tap it to open the app. Available in the circular, corner, inline, and rectangular accessory slots.
- Apple Health & Activity rings — completed workouts are saved to Apple Health and credit your Move and Exercise rings: recorded live on the Apple Watch (heart rate + active energy), or estimated on the iPhone when you train without your watch. See live heart rate and calories on the watch, and a post-workout summary (duration, calories, avg/max heart rate, heart-rate zones, total volume) you can revisit on any past workout. Weights display in your choice of pounds or kilograms.
- iCloud Drive sync — your data lives as human-readable JSON in your iCloud Drive, synced across devices and visible in the Files app. iCloud is required.
Architecture
iCloud Drive JSON documents are the sole source of truth; a local SwiftData
store is a rebuildable read-through cache populated exclusively by an
NSMetadataQuery observer (one-way flow: files → observer → cache). The phone is
the only device that touches iCloud Drive; the Apple Watch is a thin remote that
round-trips workout changes through the phone via WatchConnectivity.
See REQUIREMENTS.md for the data model and CLAUDE.md for project guidance.
Building
The Xcode project is generated with XcodeGen:
xcodegen generate
open Workouts.xcodeproj
Requires Xcode 26 (iOS 26 / watchOS 26, Swift 6).
Languages
Cython
70.4%
Swift
27.5%
Python
1.7%
Shell
0.2%
HTML
0.2%