Inspiration
Physical therapy recovery is difficult to do correctly at home. Many patients perform exercises with poor form due to the lack of real time guidance, which increases the risk of re injury and slows progress. In person PT sessions are expensive and typically limited to one or two visits per week, leaving patients unsupported between appointments.
PhysioVision turns any webcam into an AI powered physical therapy coach. It analyzes movement in real time, provides immediate feedback on form and pacing, and tracks progress over time so patients can recover safely and consistently outside the clinic.
What it does
PhysioVision watches a user perform physical therapy exercises through their camera and gives live coaching cues, rep counting, and quality scoring.
It:
- Tracks 33 body landmarks using real time pose estimation
- Automatically counts reps with exercise specific logic
- Gives instant cues like "Lower down" or "Stand up" based on movement phase
- Scores each set on range of motion and tempo consistency
- Stores workout history so users can track improvement over time
- Supports full routines with multiple exercises, sets, and target reps
The UI is intentionally minimal. Users see one clear instruction at a time so they can focus on form instead of reading text while moving.
How we built it
PhysioVision is a real time web app built around pose estimation, signal processing, and custom movement analysis.
Tech stack
- Frontend: React, TypeScript, Vite, Tailwind CSS, shadcn ui
- Pose tracking: Google MediaPipe Pose Landmarker at approximately 30 fps
- Backend: Node.js with Express
- Database: MongoDB for users, routines, and workout history
- Authentication: JWT based authentication
Exercise analyzers
Each exercise has its own analyzer with custom math and thresholds rather than generic joint angle rules.
Squats
- Uses relative knee to hip vertical distance instead of angles
- More robust across body types and camera distances
- Signal is normalized to a 0 to 1 depth score and smoothed to reduce jitter
Pushups
- Tracks elbow bend angle to detect up and down phases
- Requires a stable plank position before reps can start
- Uses head drop distance to ensure sufficient depth
Jumping jacks
- Detects arm height relative to the head
- Measures ankle spread normalized by hip width
- Combines arm and leg openness into a single continuous signal
Rep counting logic
Reps are detected using a custom state machine instead of simple threshold crossings.
- Movement signals are normalized to a 0 to 1 range
- Each exercise has tuned thresholds for up and down phases
- Stability is enforced by requiring multiple consecutive frames past a threshold
- Minimum time between reps prevents double counting from jitter or pauses
This approach avoids false positives when users move slowly, pause, or shake slightly.
Challenges we ran into
Rep detection reliability
- Joint angle based methods failed across body types and camera setups
- Switching to relative landmark distances significantly improved robustness
State synchronization
- Early versions had rep counting and feedback cues out of sync
- Fixing this required careful phase logic and signal inversion
Overly harsh tempo scoring
- Fixed millisecond thresholds punished consistent reps
- Percentage based tolerance scaled naturally with user speed
Unreadable feedback
- Positive messages flashed too quickly during workouts
- Added timed message holds so reinforcement is visible
System complexity
- Coordinating real time pose data, rep counting, UI updates, and backend persistence required careful state management
Accomplishments that we're proud of
- Accurate real time rep counting at full frame rate
- Exercise specific intelligence instead of one size fits all logic
- Clean, distraction free UI designed for active users
- Motivating feedback that encourages consistency
- Full workout flow with routines, scoring, and history tracking
- Fair scoring across different speeds and movement styles
What we learned
- Computer vision requires relative measurements and smoothing to work in real environments
- UX timing matters more than verbosity during physical activity
- Motivation is critical in rehab focused tools
- Percentage based thresholds generalize better than fixed values
- Real time systems demand careful frontend and backend coordination
What's next for PhysioVision
- Expand the exercise library to cover full PT protocols
- Add therapist dashboards for remote monitoring
- Provide deeper form corrections such as knee alignment or back posture
- Launch a mobile friendly version
- Add progress analytics to visualize recovery trends
- Build injury specific rehabilitation programs
Log in or sign up for Devpost to join the conversation.