All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
FrameLab - A professional multi-camera video analysis application for bike fitting and biomechanical analysis, featuring AI-powered pose detection, real-time angle measurements, and synchronized multi-view recording.
- Up to 4 cameras simultaneously in 2x2 grid layout
- Flexible quadrant system with enable/disable for individual positions
- Custom camera names (e.g., "Side View", "Front View")
- Persistent layouts saved between sessions
- Video file playback support for recorded sessions
- Real-time pose estimation using MediaPipe
- 33 body landmarks with automatic tracking
- Cycling-specific angles: knee, hip, ankle, elbow, shoulder, back
- Live angle display overlaid on video feed
- Pause and manually adjust joint positions
- Persistent adjustments that track with live video
- Synchronized recording from all active cameras
- Automatic organization by athlete/bike/date
- Angle data export to JSON with per-frame measurements
- Frame buffer for live cameras (last 10 seconds)
- Video controls: play, pause, speed adjustment (0.25x-1x), loop
- Timeline scrubbing to jump to any frame
- Dynamic zoom from 1.0x to 4.0x in 0.25x increments
- Click-and-drag panning when zoomed in
- Per-camera independent zoom state
- Reset to default by clicking zoom level
- Athlete profile organization
- Multiple bikes per athlete support
- Change session on-the-fly without restart
- Auto-created directory structure
- Settings persistence for camera names and positions
- Windows 10+
- macOS 10.14+
- Linux (Ubuntu 18.04+)
- Python 3.9-3.12 compatibility
- DearPyGUI for GPU-accelerated UI
- MediaPipe for pose estimation
- OpenCV for computer vision and video I/O
- NumPy for numerical computing
Built for bike fitters, coaches, and cyclists who want professional-grade analysis tools without subscription fees.