How emmetsurmeli/track-sprinting-ai works
Track Sprint AI is a local Streamlit sprint-video review application. An athlete sets up a profile, uploads and trims a recording, then reviews locally computed pose and movement measurements. The app supports human-reviewed contact timing and landing posture, and sends eligible measurements, athlete context, and selected research evidence to OpenAI for constrained coaching—not the video. Results can be inspected, revisited in a dated training calendar, compared across eligible sessions, and exported. The graph follows documented capabilities and sampled orchestration; some UI-to-module wiring and unsampled implementation details are intentionally left out.
Main entry points: app.py App orchestrator · pipeline.py Analysis pipeline · coaching.py Coaching generation · contact_ui.py Contact review UI
Components 23
Analysis workflow
- Video handling
src/track_sprint/video.py - Analysis pipeline
src/track_sprint/pipeline.py - Pose tracking
src/track_sprint/pose.py - Motion metrics
src/track_sprint/metrics.py - Video rendering
src/track_sprint/render.py
Review evidence
- Bilateral movement
src/track_sprint/movement.py - Contact timing
src/track_sprint/contacts.py - Landing posture
src/track_sprint/posture.py
Coaching
- Coaching generation
src/track_sprint/coaching.py - Research library
src/track_sprint/data/evidence.json - Practice activities
src/track_sprint/data/activities.json
History and output
- Training history
src/track_sprint/history.py - Analysis cache
src/track_sprint/analysis_cache.py - Analysis artifacts
src/track_sprint/artifacts.py
User interface
- App orchestrator
app.py - Profile setup
src/track_sprint/profile_setup.py - Contact review UI
src/track_sprint/contact_ui.py - Frame viewer
src/track_sprint/frame_viewer.py - Calendar UI
src/track_sprint/calendar_ui.py - Charts
src/track_sprint/charts.py - Artifact export
app.py
Other components
- Athlete
- OpenAI API
Connections 24
- Athlete → App orchestrator: uses
- App orchestrator → Profile setup: shows setup
- App orchestrator → Video handling: inspects upload
- App orchestrator → Analysis pipeline: starts analysis
- Analysis pipeline → Pose tracking: tracks frames
- Analysis pipeline → Motion metrics: calculates angles
- Analysis pipeline → Analysis artifacts: writes results
- Analysis pipeline → Video rendering: creates annotated video
- App orchestrator → Analysis cache: checks reuse
- App orchestrator → Contact review UI: offers event review
- Contact review UI → Frame viewer: scrubs frames
- Contact review UI → Contact timing: saves marks
- App orchestrator → Bilateral movement: derives movement evidence
- App orchestrator → Landing posture: derives reviewed posture
- App orchestrator → Coaching generation: requests report
- Coaching generation → Research library: retrieves evidence
- Coaching generation → Practice activities: selects activities
- Coaching generation → OpenAI API: requests explanation
- App orchestrator → Training history: records analysis
- App orchestrator → Calendar UI: shows training log
- Calendar UI → Training history: reads sessions
- Calendar UI → Charts: plots progress
- App orchestrator → Artifact export: packages results
- Artifact export → Analysis artifacts: reads derived files