How ieomn/rallymate works
RallyMate is a tennis-video analysis product: a player uploads a video, receives vision-based motion analysis and evidence-aware reference scoring, then reviews measurements, ball trajectories, and annotated playback. The browser uses a same-origin service gateway; the Python service queues work for a persistent inference worker. The README documents upload, resumable processing, trajectory retrieval, reports, and guarded MiMo explanations. Several service and scoring implementations were not excerpted, so those internal connections are omitted rather than inferred.
Main entry points: ScoreLab.tsx Analysis UI · pipeline.py Video pipeline · api-client.ts Upload client · worker.py Inference worker
Components 21
Web experience
- Analysis UI
scoring-demo-web/app/ScoreLab.tsx - Upload client
scoring-demo-web/app/lib/api-client.ts - Web gateway
scoring-demo-web/worker/gateway.ts - Trajectory viewer
scoring-demo-web/app/lib/trajectory-viewer.ts - Advice endpoint
scoring-demo-web/app/api/advice/route.ts - Report export
scoring-demo-web/app/lib/report-export.ts
Service runtime
- Analysis API
src/rallymate_service/api.py - Upload handling
src/rallymate_service/uploads.py - Job database
src/rallymate_service/database.py - Inference worker
src/rallymate_service/worker.py
Vision analysis
- Video pipeline
src/rallymate_vision/pipeline.py - Frame inference
src/rallymate_vision/inference.py - Pose schemas
src/rallymate_vision/pose/metadata.py
Analysis and scoring
- Event detection
src/rallymate_events/rules.py - Motion features
src/rallymate_features/event_features.py - Evidence scoring
src/rallymate_scoring/scoring_context.py - Result validation
src/rallymate_vision/validation.py
Evidence workflows
- Truth annotation
src/rallymate_annotation/scoring_truth_event_execution.py - Pose evaluation
src/rallymate_evaluation/pose_diagnostic_review.py
Other components
- Player
- MiMo provider
Connections 19
- Player → Analysis UI: uploads video
README.md - Analysis UI → Upload client: starts analysis
- Upload client → Web gateway: sends upload
README.md - Web gateway → Analysis API: proxies requests
README.md - Analysis API → Upload handling: handles uploads
- Inference worker → Job database: claims jobs
src/rallymate_service/worker.py - Inference worker → Video pipeline: runs analysis
src/rallymate_service/worker.py - Video pipeline → Frame inference: runs inference
src/rallymate_vision/pipeline.py - Frame inference → Pose schemas: uses schemas
src/rallymate_vision/inference.py - Video pipeline → Event detection: detects events
- Event detection → Motion features: measures motion
src/rallymate_events/rules.py - Video pipeline → Evidence scoring: builds scores
src/rallymate_vision/pipeline.py - Video pipeline → Result validation: validates output
src/rallymate_vision/pipeline.py - Analysis UI → Trajectory viewer: shows trajectory
README.md - Trajectory viewer → Upload client: fetches trajectory
README.md - Analysis UI → Report export: exports reports
README.md - Analysis UI → Advice endpoint: requests explanation
README.md - Advice endpoint → MiMo provider: requests guarded advice
scoring-demo-web/app/api/advice/route.ts - Truth annotation → Pose evaluation: supports review