I. Stakes
Telehealth physical therapy has a blind spot: patients prescribed home exercises do not have a clinician watching. Form drifts, drift causes reinjury, and reinjury sends the patient back to the PT weeks later. A paper exercise sheet offers no feedback at all. PhysioRise asks whether the phone propped against the wall can do the watching: checking every rep, correcting form in under a second, and reporting results back to the PT who prescribed the routine.
II. Constraints
- PrivacyPT data is health data; every frame stays on the phone
- BackendNone. HIPAA video infrastructure is beyond an indie iOS app
- ComputeiPhone Neural Engine, via CoreML and the Vision framework
- FeedbackSub-second cue, mid-rep, offline-capable
- AudiencePatient at home; licensed PT reviewing the cohort
III. Decisions
The whole pipeline runs on the phone
PT data is health data. Streaming video to a server requires HIPAA infrastructure that an indie iOS app cannot support.
Apple's Vision and CoreML stack runs the entire pipeline on the Neural Engine, which makes inference free, private, and offline-capable. The camera never streams anywhere. Four stages, all on-device:
- 01 · CaptureAVFoundation · front camera, 30 fps
- 02 · DetectVNDetect
HumanBodyPose · 17 keypoints, on-device - 03 · ClassifyPT_Model_
InfinityAI .mlmodel · action classification per exercise - 04 · CoachSwiftUI overlay · skeleton + form cue
One Action Classifier per exercise
For each prescribed exercise, squat, lunge, glute bridge, plank, PhysioRise loads a different Create ML Action Classifier. The model takes a sliding window of pose frames and outputs both the recognized exercise and a confidence-weighted form score. A single multi-class model gets confused between similar movements, lunge against split squat, so the per-exercise models won: they are smaller, faster, and easier to retrain when a PT requests a new prescription type.
A second app for the person who prescribes
PhysioRise Dashboard is where a licensed PT closes the loop: prescribe exercises, set rep targets, review session-level adherence and form scores. Patients see their progress; PTs see the cohort. This is the feedback channel a paper exercise sheet never had.
IV. What shipped
Two apps, one ML pipeline. PhysioRise, the patient app, generates personalized warm-ups and runs the live form coach. PhysioRise Dashboard, the clinician app, syncs prescriptions and results over CloudKit.
| Surface | Audience | Stack |
|---|---|---|
| PhysioRise | Patient, at home | SwiftUI · Vision · CoreML · AVFoundation |
| PhysioRise Dashboard | Physical therapist | SwiftUI · CloudKit sync |
V. Results
Validation moved outdoors, away from the training distribution: pushups, squats, and superman holds in an uncontrolled setting, on a real phone, in real light.
The money result
1st place at Synopsys SCVSEF, and the Castro Family Award for Best Physical Science Project.
The project also qualified for the California State Science and Engineering Fair and drew a nomination for the Thermo Fisher Junior Innovators Challenge.
The honest boundary: this is field classification and fair judging, not a controlled patient study. Nobody has measured whether PhysioRise reduces reinjury. The evidence shows a classifier holding up outside its training set, and two shipped apps that never upload the patient's camera feed.
VI. What I learned
- Privacy is an architecture decision, not a checkbox. Choosing on-device first deleted whole problem classes, no backend, no HIPAA exposure, no network latency budget, and the product got faster because of the constraint rather than despite it.
- Small specialized models beat one clever one. A lunge and a split squat look alike to a general classifier; a model that only knows squats is smaller, faster, and honest about what it does not recognize.
Colophon
- 1st Place & Castro Family Award, Best Physical Science Project
- California State Science and Engineering Fair, qualifier
- Thermo Fisher Junior Innovators Challenge, nominee