How rishi138/kinetic works
Kinetic analyzes a live camera feed for ACL-rehabilitation movement quality, then streams annotated video and metrics to a browser dashboard. The sampled runtime captures pose landmarks, smooths them, computes knee deviation, and publishes severity and session-trend data; the UI renders the live feed, metric bars, and trend charts. The README also documents hip drop, trunk lean, LSI, and longitudinal compensation tracking, but the sampled analysis code shows only valgus/varus and in-session history, so those broader capabilities are shown as documented scope rather than confirmed runtime wiring.
Main entry points: main_cv.py Pose analysis loop · App.jsx Dashboard state and layout · server.py WebSocket relay · pose_landmarker_heavy.task Pose model
Components 13
Movement analysis
- Pose analysis loop
src/kinetic_cv/main_cv.py - Pose model
src/kinetic_cv/pose_landmarker_heavy.task - MediaPipe Pose
- Landmark smoothing
src/kinetic_cv/CustomKalman.py - Knee deviation
src/kinetic_cv/detection_funcs.py
Live transport
- WebSocket relay
src/server.py
Clinician dashboard
- Dashboard state and layout
src/react_front/src/App.jsx - Severity bars
src/react_front/src/SeverityBar.jsx - Session trend chart
src/react_front/src/TrendChart.jsx
Documented metrics
- Other rehab metrics
src/kinetic_cv - Cross-session trends
src/kinetic_cv
Other components
- Camera / patient
- Dashboard viewer
Connections 10
- Camera / patient → Pose analysis loop: provides frames
- Pose analysis loop → MediaPipe Pose: detects pose
- Pose model → MediaPipe Pose: model asset
- Pose analysis loop → Landmark smoothing: smooths landmarks
- Pose analysis loop → Knee deviation: calculates deviation
- Pose analysis loop → WebSocket relay: sends video and metrics
- WebSocket relay → Dashboard state and layout: broadcasts streams
- Dashboard viewer → Dashboard state and layout: views dashboard
- Dashboard state and layout → Severity bars: renders severity
- Dashboard state and layout → Session trend chart: renders session trend