User Guide
Complete guide to using Swim ProHub 360 for swimming video analysis
Getting Started
Welcome to Swim ProHub 360
Swim ProHub 360 is an AI-powered swimming analysis tool that uses computer vision to analyze your swimming technique. Upload a video of your swim and receive detailed metrics, AI-generated insights, and personalized coaching advice.
Quick Start Guide
Record Your Swim
Use a camera or smartphone to record your swimming. For best results, record from the side of the pool with a clear view of your full body.
Upload Your Video
Drag and drop your video file onto the upload area, or click to browse and select your file.
Wait for Analysis
The AI will process your video, detecting your body position and movements frame by frame. This typically takes 1-3 minutes.
Review Your Results
View detailed metrics about your stroke technique, body position, and efficiency. Use the AI Coach to ask questions about your technique.
Video Upload
Video Requirements
Recording Tips for Best Results
- Camera Position: Place the camera at pool deck level, perpendicular to your swimming direction
- Lighting: Ensure good lighting - outdoor pools in daylight work best
- Stability: Use a tripod or stable surface to avoid shaky footage
- Full Body: Make sure your entire body is visible in the frame
- Distance: Keep 3-5 meters away from the swimmer for optimal detection
- Water Clarity: Clear water helps with better pose detection
Understanding Your Metrics
Stroke Mechanics
Stroke Style
Stroke Rate
Stroke Count
Distance Per Stroke (DPS)
Crossover Score
Body Position & Alignment
Body Alignment
Shoulder Roll / Body Rotation
Efficiency & Propulsion
Average Speed
SWOLF Score
Kick Rhythm
Enhanced Biomechanical Metrics
Head Position Stability
Hip Depth
Pull Path Efficiency
Breathing Metrics
Kick Symmetry
Knee Flexion
Propulsive Phase Duration
Elbow Angle During Catch
Underwater Speed After Start
PDF Export
Analysis Report Export
/api/jobs/{job_id}/export/pdf.🧠 ML Model & Advanced Stroke Detection
Stroke Detection System v2.2
Swim ProHub 360 uses an advanced 5-phase biomechanical pipeline to automatically detect your swimming stroke type with high accuracy. The system analyzes body movement patterns without requiring manual training or labeled data.
How It Works: The 5-Phase Pipeline
Phase 1: Feature Extraction
27+ biomechanical features extracted from MediaPipe pose landmarks including:
- Phase offset: Timing difference between left and right arm movements
- Arm synchronization: Correlation between left/right arm trajectories
- Hip rotation variance: Amount of body roll (key indicator for freestyle/backstroke)
- Kick patterns: Flutter vs synchronized kick detection
- Glide detection: Identifies characteristic breaststroke glide phase
- Velocity & acceleration: Arm movement dynamics
- Entry angle: Hand entry position relative to shoulder line
Phase 2: Temporal Consistency
Cycle detection via autocorrelation finds repeating patterns in your stroke. The system validates that detected cycles are consistent and fall within realistic timing bounds (0.8-2.5 seconds per cycle). This ensures the classification is based on actual swimming patterns, not noise.
Phase 3: Hierarchical Classification
Two-stage decision tree:
- Stage 1: Alternating (freestyle/backstroke) vs Synchronized (breaststroke/butterfly)
Key features: arm_sync > 0.95 AND kick_sync > 0.95 → synchronized strokes - Stage 2: Specific stroke identification within each category
Uses hip rotation, shoulder roll, kick amplitude, and glide patterns
Phase 4: Viterbi HMM Smoothing
Hidden Markov Model applies temporal smoothing across detected stroke cycles. This reduces false positives from single-frame anomalies and ensures the final classification represents the dominant stroke pattern throughout the video.
Phase 5: Confidence Calibration
Multi-factor confidence scoring with four tiers:
- ● HIGH (≥90%): Accept without review
- ● MEDIUM (≥75%): Reliable, optional review
- ● LOW (≥60%): Requires manual verification
- ● REJECT (<60%): Insufficient evidence
MediaPipe Pose Detection
Body Landmark System
The analysis uses Google's MediaPipe Pose to detect 33 body landmarks per frame. Only landmarks with visibility confidence > 0.3 are used for calculations.
🏊 Upper Body
- Wrists:
#15(left),#16(right) - Elbows:
#13(left),#14(right) - Shoulders:
#11(left),#12(right)
🦵 Lower Body
- Hips:
#23(left),#24(right) - Knees:
#25(left),#26(right) - Ankles:
#27(left),#28(right)
Key Classification Rules
Definitive Synchronized Detection
arm_sync > 0.95 AND kick_sync > 0.95, the stroke is definitively breaststroke or butterfly. This rule has near 100% accuracy for synchronized strokes.
Hip Rotation Analysis
Low rotation (<0.015): Indicates synchronized strokes (breaststroke/butterfly)
Kick Synchronization
Synchronized kick (>0.90): Butterfly or breaststroke
Glide Detection
Model Training & Validation
Rule-Based Expert System (Not Neural Network)
Unlike traditional machine learning models, our stroke detection uses a biomechanically-grounded expert system. This approach offers several advantages:
- No training data required: Rules derived from swimming biomechanics research
- Fully interpretable: Every classification decision can be explained
- Generalizes perfectly: Works on any swimmer without prior examples
- Consistent performance: No overfitting or dataset bias
- Real-time capable: No GPU inference needed
Scientific Validation
The classification rules are calibrated from peer-reviewed biomechanics research:
- Seifert, L. et al. (2014) - "Inter-limb coordination and energy cost in swimming"
- Sanders, R.H. et al. (2015) - "Body roll in freestyle swimming" - Sports Biomechanics
- Maglischo, E.W. (2003) - "Swimming Fastest" - Human Kinetics
- SwimXYZ Dataset - Real-world swimming video benchmark
Advanced Parameters
Detection Sensitivity Settings
The system uses research-calibrated thresholds optimized for real-world videos:
| Parameter | Threshold | Purpose |
|---|---|---|
MIN_VISIBILITY |
0.3 | Minimum confidence for including a landmark |
MIN_FRAMES |
90 frames | Minimum video length (3 seconds @ 30fps) |
IDEAL_FRAMES |
150 frames | Optimal length for highest accuracy (5 seconds) |
MIN_VALID_RATIO |
15% | Minimum frames with valid pose detection |
hip_rotation_freestyle |
> 0.015 | High body roll indicates alternating strokes |
synchronized_arm_sync |
> 0.95 | Both arms move together (butterfly/breaststroke) |
kick_sync_synchronized |
> 0.90 | Dolphin or whip kick pattern |
glide_duration_min |
≥ 400ms | Detects breaststroke glide phase |
MediaPipe Pose Landmarks
33-Point Body Tracking
Each video frame is analyzed using Google's MediaPipe Pose model, which detects 33 body landmarks with x, y, z coordinates and visibility confidence. The system uses these landmarks to track body movement:
🏊 Arms & Shoulders
| Left Wrist | #15 |
| Right Wrist | #16 |
| Left Elbow | #13 |
| Right Elbow | #14 |
| Left Shoulder | #11 |
| Right Shoulder | #12 |
Used for: Stroke rate, phase offset, arm synchronization, entry angle, crossover detection
🦵 Legs & Hips
| Left Hip | #23 |
| Right Hip | #24 |
| Left Knee | #25 |
| Right Knee | #26 |
| Left Ankle | #27 |
| Right Ankle | #28 |
Used for: Kick rhythm, hip rotation, body alignment, kick synchronization
Feature Weights & Importance
How Features Are Prioritized
Not all features contribute equally. The system uses weighted scoring based on biomechanical significance:
Higher weights mean the feature has stronger influence on the final stroke classification. Arm alternation and phase offset are the most reliable indicators.
Handling Real-World Video Challenges
Sparse Pose Detection
Temporal Smoothing
Adaptive Thresholds
src/analysis/stroke_detection.py in the source code. The system is open-source and follows established biomechanics research.
Video Comparison
Comparing Two Videos
The comparison feature allows you to upload two videos and analyze the differences between them. This is useful for:
- Tracking your progress over time
- Comparing your technique to a coach or reference video
- Analyzing the effect of technique changes
- Before/after comparisons for training interventions
Understanding Comparison Results
- Overall Score: A 0-100 score indicating overall technique quality
- Improvement Score: Positive values indicate Video 2 is better than Video 1
- Improvements: Metrics that got better in the second video
- Regressions: Areas where the second video showed decline
AI Swimming Coach
Getting Personalized Advice
After your video is analyzed, you can chat with the AI Coach to get personalized advice about your swimming technique. The AI has access to all your metrics and can provide specific recommendations.
Example Questions to Ask
- "How can I improve my stroke efficiency?"
- "What does my SWOLF score mean and how can I lower it?"
- "My body alignment seems off - what drills can help?"
- "How do I reduce my stroke rate while maintaining speed?"
- "What's causing my crossover issue?"
- "Can you suggest a training plan based on my metrics?"
Correcting Analysis Errors
If you notice the AI misidentified your stroke type, you can correct it by saying something like:
- "I was actually swimming backstroke, not freestyle"
- "This is butterfly, please recalculate"
The AI will acknowledge the correction and provide adjusted recommendations.
Troubleshooting
- Check that your file is under 100MB
- Try a different browser (Chrome recommended)
- Check your internet connection stability
- Try compressing the video with a tool like HandBrake
- Ensure the camera captures your full body
- Record from the side for best results
- Improve lighting if possible
- Avoid excessive splashing that obscures body parts
- Analysis can take 1-5 minutes depending on video length
- If stuck for more than 10 minutes, try refreshing and uploading again
- Shorter videos (30 seconds to 2 minutes) process faster
Frequently Asked Questions
Need More Help?
Contact Support
If you're experiencing issues not covered in this guide, please contact our support team with:
- A description of the issue
- The browser and device you're using
- Screenshots if applicable
- Your job ID (found in the URL of your results page)