Inspiration
I started TrueROM because of a problem I experienced myself. I have limited shoulder mobility, so I regularly stretch and do rehabilitation exercises to improve it. But even when I felt better, I had no reliable way to answer a simple question: Is my shoulder mobility actually improving?
When I tried tracking my shoulder range of motion (ROM), the results were inconsistent. I realized that a higher arm angle did not always mean better shoulder mobility. As I raised my arm, I could compensate by leaning, rotating, or extending my trunk, increasing the measured ROM even though part of the movement was not coming from my shoulder.
This made ROM difficult to use as a benchmark for stretching or rehabilitation. If my ROM increased, I couldn't tell whether my shoulder had actually improved or whether I had simply compensated more.
That experience led me to build TrueROM. Instead of asking only “How high can I raise my arm?”, I wanted to also ask “Did I move my trunk to get there?”
TrueROM combines shoulder ROM measurement with trunk-compensation detection to make mobility progress easier to track consistently over time.
What it does
TrueROM is a webcam-based shoulder mobility tracker that measures shoulder ROM while simultaneously monitoring compensatory trunk movement.
After a short calibration establishes the user's natural starting posture, TrueROM tracks shoulder ROM and three types of trunk movement in real time: forward/backward trunk lean, lateral lean, and trunk rotation.
Rather than directly subtracting trunk movement from shoulder ROM, TrueROM uses excessive compensation as a measurement-quality signal. The camera border changes from green to orange to red as compensation increases, providing immediate visual feedback.
When the user reaches their end range, TrueROM detects when the movement stabilizes, asks them to briefly hold the position, and records the median of the stable measurements as the Final ROM.
Completed measurements can then be saved and compared, allowing users to track changes in mobility over time.
How we built it
I built TrueROM with React, TypeScript, Vite, and MediaPipe Pose Landmarker, using a standard webcam for real-time pose tracking.
Shoulder ROM is calculated using the hip, shoulder, and elbow landmarks. Signed angles distinguish forward flexion from backward extension, while lightweight smoothing reduces frame-to-frame jitter.
A 3-second neutral calibration establishes a personalized zero point for shoulder ROM and a baseline trunk orientation. For compensation detection, MediaPipe's 3D world landmarks from the shoulders and hips are used to track changes in forward/backward lean, lateral lean, and trunk rotation relative to that baseline.
I also built an endpoint-detection pipeline. Once the ROM stabilizes near the user's end range, TrueROM starts a short hold countdown and records the median of the stable samples. If excessive trunk compensation occurs during the hold, the measurement is not finalized.
Everything runs locally in the browser, with completed measurements stored locally for comparison across sessions.
Challenges we ran into
Making ROM measurements stable: Pose landmarks fluctuate between frames, causing ROM values to change even when the arm is still. We addressed this with smoothing and personalized neutral calibration.
- Deciding when to record the Final ROM: Simply recording the highest angle could capture tracking noise or an unstable movement. TrueROM instead detects a stable endpoint and records the median of a brief hold.
- Identifying trunk compensation: Research on upper-extremity rehabilitation and kinematic assessment helped guide our approach. We track forward/backward lean, lateral lean, and trunk rotation separately rather than directly subtracting them from shoulder ROM, since these movements occur across different axes.
- Working with a single webcam: Reliable measurement requires key landmarks to remain visible throughout the movement. Landmark validation and framing feedback help prevent unreliable measurements when tracking is lost.
Accomplishments that we're proud of
Going beyond a single ROM number: TrueROM evaluates not only how far the arm moves, but also how the movement was achieved.
- Building a repeatable measurement flow: Calibration, ROM tracking, compensation monitoring, endpoint detection, and stable Final ROM recording work together as one measurement process.
- Making it accessible with a webcam: The prototype works with a standard webcam and browser-based pose estimation, without requiring dedicated motion-capture equipment or wearable sensors.
What we learned
Pose estimation needs more than raw landmarks: Real-time landmarks alone do not create a reliable measurement. Calibration, smoothing, validation, and temporal logic are essential for turning raw pose data into a stable measurement pipeline.
- 3D landmarks reveal movement that is difficult to capture in 2D: Using MediaPipe's 3D world landmarks taught me how trunk lean and rotation can be tracked separately from the arm angle.
- Real-time computer vision is also a UX problem: Accurate algorithms are not enough if users cannot position themselves correctly or understand what the system detects. Framing guidance and real-time visual feedback became important parts of the measurement experience.
- Building the complete pipeline: TrueROM gave me hands-on experience connecting webcam input, pose estimation, geometric calculations, temporal filtering, measurement logic, and a React/TypeScript interface into one real-time system.
What's next for TrueROM
From measurement to actionable guidance: In the future, I want TrueROM to identify where mobility becomes limited or compensation begins to increase. It could then connect those movement patterns with short, relevant rehabilitation or mobility exercise videos, allowing users to exercise, measure again, and compare the results.
- Expanding to more shoulder movements: TrueROM could expand beyond flexion and extension to movements such as shoulder abduction and rotation, with compensation monitoring adapted to each movement.
- Validating the measurement system: A major next step is testing TrueROM with more users and comparing its measurements with established clinical or motion-capture methods. This could also help validate and refine the experimental thresholds used for trunk-compensation feedback.
Built With
- css3
- html5
- javascript
- mediapipe
- react
- typescript
- vite
- webrtc
Log in or sign up for Devpost to join the conversation.