Your media stays on this device
Video, decoded frames, pose keypoints, and report snapshots are not uploaded or saved by the app. Analysis and PDF/MP4 creation happen in this browser. Only the derived session summary is saved in this browser after you select Save Session. Browser storage can be cleared, is not a medical record, and does not sync to another browser or device.
What to upload
1Record one clip
- One 10–30 second MP4, MOV, or WebM at 30 or 60 fps.
- Normal speed—do not use slow motion, time lapse, edits, or scene changes.
- Include a neutral starting view at both ends of the clip.
- Show one person and the full joint chain required for the assessment.
2Set the camera
- Use a fixed, level camera or tripod, the 1× lens, and no digital zoom.
- Place it perpendicular to the requested movement plane, about joint height.
- Use bright, even lighting, a plain contrasting background, and fitted contrasting clothing.
- Keep every required joint visible; avoid occlusion by clothing, furniture, or the other limb.
3Perform the protocol
- Select the assessment and affected side before upload.
- Use slow, comfortable repetitions with brief endpoint holds.
- Use the same camera location, chair, support, clothing contrast, and movement instructions at every recovery session.
4Review before saving
- Check the pose overlay and landmark coverage throughout the clip.
- Trim only if extra footage surrounds the required movement, then analyze the complete selected range.
- Low coverage and incomplete repetitions remain reviewable and saveable, but retain their warnings in history and reports.
Fixed assessment protocols
Knee
View: side view with the affected leg closest to the camera. Sit on a stable chair and bend, then straighten the knee for 3 slow repetitions, briefly holding each endpoint. Keep the hip, knee, and ankle visible.
Reports maximum flexion, extension deficit, and total active arc.
Hip
View: side view with safe, stable hand support. Move the affected leg through supported standing flexion to extension for 3 controlled cycles. Keep the shoulder, hip, knee, and ankle visible and the camera perpendicular to the motion.
Reports maximum flexion, maximum extension, and total excursion.
Shoulder
View: front-facing, full upper body and both hands visible. Elevate both arms out to the sides and return for 3 controlled repetitions. Avoid turning toward either side.
Reports affected-side elevation, bilateral symmetry, and elevation arc.
Elbow
View: side view of the affected arm. Keep the upper arm still while bending and straightening the elbow for 3 slow repetitions, briefly holding the endpoints. Keep shoulder, elbow, and wrist visible.
Reports maximum flexion, extension deficit, and total arc.
General assessment
View: side view of a stable chair and the full body. Perform a clinician-cleared 5× sit-to-stand at a comfortable pace using the same permitted support each time. Begin seated, finish seated, and keep shoulder, hip, knee, and ankle visible.
Reports completion time, completed repetitions, functional knee and hip ROM, and peak trunk lean.
Pose model choices
MoveNet Thunder
The default and simplest starting point. It balances speed and stable 17-landmark tracking for clear, single-person recordings.
YOLO26
Choose n through x with the speed/accuracy slider. Larger variants may improve detail but take more memory and time. Models are loaded from the IRSRI local model bundle.
BlazePose Heavy
Provides a denser 33-landmark pose. It is slower and may download model resources from its provider, although your selected video is never sent there.
The report records both the requested model and the model actually used. If a model cannot initialize, the app may fall back to MoveNet Thunder and labels that change. Recovery comparison lines require the same assessment, side, protocol version, and actual model.
Results, manual checks, and exports
Headline cards use confidence-filtered, smoothed traces and stable endpoints instead of a single raw frame. Open Review details for the synchronized video, trace, repetitions, timing, velocity, variability, endpoint stability, compensation measures, representative frames, and coverage.
Angle line is a two-point unsigned 0–90° angle to horizontal. Angle is a three-point acute/obtuse check. These pause-frame drawings are review-only: they are not saved and do not appear in exports. Automatic pose and ROM overlays do appear in the full silent MP4.
The branded PDF and annotated MP4 are generated locally. MP4 export requires browser H.264/WebCodecs support; there is no upload fallback. If export is unsupported, use a current desktop browser or download the PDF instead.
Safety and measurement limits
Perform only movements cleared by your surgeon or clinician. Stop for pain, dizziness, instability, or any symptom that concerns you. Use appropriate supervision and stable support.
This tool measures visible 2D camera-plane motion. It does not diagnose recovery or replace clinical judgment. It does not measure pain, swelling, strength or torque, joint stability, tissue healing, true loading, scapular motion, forearm rotation, hip or shoulder rotation, or other out-of-plane motion. Perspective, camera movement, occlusion, clothing, lighting, and pose-estimation error can change values.
The fixed-plane scope is informed by published work on video-based shoulder ROM and 2D sagittal/frontal gait measurements. These sources do not validate every result or recording condition in this app.
Troubleshooting
Pose jumps or disappears: improve light and contrast, show the full required joint chain, remove occlusions, and keep one person in frame.
Angle looks reversed or implausible: confirm the affected side and requested camera view, then inspect the overlay at the endpoint. Repeat with the camera perpendicular and level.
Too few repetitions: include the required starting position and complete slow cycles with short endpoint holds. Partial results can be saved, but remain warned.
Video will not open: try a standard H.264 MP4 or browser-supported WebM. Keep clips short and close other memory-intensive tabs.
Repeat sessions do not compare: comparisons intentionally break when assessment, side, protocol version, or actual pose model changes.