e4bedc5bda49c730986bbe8e62c5ccd8c91da24e
The rig is ~211 canvas units tall standing but the canvas has 152 above
the ground line - every motion to date is seated or on the floor. A
per-motion "camera": {"zoom": ...} now scales the drawn output (figure,
props, mat, stroke widths) about the ground-center anchor in both the
reference renderer and the in-app view. Pure view transform: pins, prop
coordinates, and the Swift-solver fixtures stay in full-size authored
units; zoom 1 is byte-identical to before.
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 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 the bodyweight core moves plus the full Planet Fitness–style machine circuit (presses, rows, pulldowns, curls, leg and hip machines). - 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%