How jpnino1018/motion-analyzer-pdg works
The product is a wearable-IMU motion analysis tool for foot and ankle exercises, with a Streamlit assessment UI and a separate batch-to-CSV workflow. Users upload sensor JSON or process files from a data directory; readings are normalized, optionally trimmed, analyzed into repetition and amplitude metrics, and visualized. The UI also presents a rule-based Parkinson’s severity assessment. The sampled code establishes core processing calls; some UI wiring and README-described capabilities are not fully excerpted, so uncertain links are omitted or marked dashed.
Main entry points: app.py Assessment UI · movement_processor.py Movement Processor · main.py Batch Runner · parkinson_diagnosis.py Severity Diagnosis
Components 13
User Workflows
- Assessment UI
app.py - Batch Runner
main.py
Signal Preparation
- Format Normalization
app.py - Idle Trimming
src/preprocessing/cleaners.py - Movement Processor
src/preprocessing/movement_processor.py - Signal Processing
src/preprocessing/signal_processing.py
Movement Analysis
- Feature Analysis
src/analysis/movement_analysis.py - Severity Diagnosis
src/analysis/parkinson_diagnosis.py
Assessment Results
- Movement Plots
src/visualization/movement_visualizer.py - Clinical Results
app.py - Metrics CSV
main.py
Other components
- Clinician / User
- IMU JSON
Connections 16
- Clinician / User → Assessment UI: uploads data
README.md - IMU JSON → Assessment UI: provides readings
README.md - Assessment UI → Format Normalization: normalizes formats
app.py - Format Normalization → Movement Processor: passes readings
app.py - Batch Runner → IMU JSON: loads files
main.py - Batch Runner → Movement Processor: processes sides
main.py - Movement Processor → Idle Trimming: trims idle data
src/preprocessing/movement_processor.py - Movement Processor → Signal Processing: detects peaks
src/preprocessing/movement_processor.py - Movement Processor → Feature Analysis: analyzes features
src/preprocessing/movement_processor.py - Assessment UI → Movement Processor: processes readings
app.py - Assessment UI → Signal Processing: detects display peaks
app.py - Batch Runner → Movement Plots: plots comparison
main.py - Assessment UI → Severity Diagnosis: requests assessment
app.py - Severity Diagnosis → Clinical Results: supplies interpretation
app.py - Assessment UI → Clinical Results: shows metrics
app.py - Batch Runner → Metrics CSV: writes metrics
main.py