Your Personal Trainer, Reimagined.
Gymbro is a next-generation full-stack fitness application that leverages advanced computer vision and real-time AI to democratize professional-grade fitness coaching. Designed with a high-energy "Brutalist Neon" aesthetic, it combines a sleek, immersive React frontend with a powerful Python AI backend to provide instant, frame-by-frame biomechanical analysis of your workouts.
This isn't just an app; it's a digital fitness companion that visually and audibly interacts with you, ensuring your form is perfect and your motivation is high.
Upload your workout videos to get instant, frame-by-frame biomechanical analysis. The AI breaks down every movement to ensure safety and efficiency.
- Squat Analyzer: Checks for NSCA-standard depth (Hip crease below knee top) and torso alignment. It flags "half-reps" and "good-mornings."
- Deadlift Analyzer: Tracks the critical "Setup → Pull → Lockout" phases. It monitors back neutrality (keeping it within the safe 40-50° range) and ensures full hip extension at the top.
- Push-Up Analyzer: Monitors elbow angle (aiming for 90°), shoulder position (45° relative to torso), and detects hip sag to prevent injury.
Train live with your webcam! The Real-Time Coach counts your reps and analyzes your form as you move.
- Live Rep Counter: Hand-free rep tracking displayed in massive, easy-to-read typography.
- Instant Feedback Loop: Get immediate visual feedback on your depth and extension.
- Session Reports: After your set, generate a detailed report card with average depth, total reps, and specific actionable advice like "Go deeper on rep 4."
Gymbro is designed to feel alive.
- Music Visualizer: A dynamic, wave-based audio visualizer built into the Navbar. It syncs with the app's soundtrack, animating in real-time to the beat (Neon Pink/Green waves).
- Beat-Synced Intro: The application launch sequence ("YOUR FITNESS REIMAGINED") is rhythmically synchronized to the bass beats of the intro track, creating a hype-building startup.
- Global Audio Control: Seamlessly toggle music across the entire app directly from the visualizer.
- Visual Overlays: See your skeleton, joint angles, and error flags directly overlaid on your video during analysis.
- Actionable Corrections: The AI doesn't just say "Bad Rep." It says "Sit back deeper," "Don't round your back," or "Engage core."
- Privacy First: All video processing happens locally or in a secure session, ensuring your workout data remains private.
- Kinetic Interface: Smooth
framer-motionanimations, page transitions, and hover effects. - Design System: A curated palette of "Void Black," "Neon Green," and "Hot Pink" with "Outfit" and "Anton" typography for a modern, high-impact look.
Gymbro follows a modern Monorepo structure separating the Client (Frontend) and Server (Backend).
- Framework: React (Vite)
- Styling: Vanilla CSS (Variables, Flexbox/Grid) + Framer Motion (Animations).
- State Management: React Context (
AuthContextfor users,AudioContextfor global sound/visualizers). - Routing:
react-router-dom. - Icons:
lucide-react.
- Framework: FastAPI (Python).
- Computer Vision:
MediaPipe(Pose Estimation),OpenCV(Frame processing). - Video Processing:
MoviePy. - Database: Supabase (PostgreSQL) for storing user history and analytics.
You will need two terminal windows (or tabs) to run the full application locally.
- Node.js (v16+)
- Python (v3.9+)
- Git
git clone https://github.com/aryawadhwa/gymbro.git
cd gymbrocd client
npm install
npm run dev👉 Open Browser: http://localhost:5173
cd server
# (Optional) Create a virtual environment
# python -m venv venv
# source venv/bin/activate (Mac/Linux) or venv\Scripts\activate (Windows)
pip install -r requirements.txt
uvicorn main:app --reload --port 8000👉 API Status: http://localhost:8000
gymbro/
├── client/ # React Application
│ ├── src/
│ │ ├── components/ # Reusable UI (Navbar, IntroAnimation)
│ │ ├── context/ # Global State (Audio, Auth)
│ │ ├── pages/ # Main Views (Dashboard, RealTimeCoach)
│ │ ├── hooks/ # Custom Hooks
│ │ └── styles/ # Global CSS & Variables
│ └── package.json
│
├── server/ # Python Backend
│ ├── main.py # API Entry Point
│ ├── core/ # AI Analyzers & Logic
│ │ ├── squat_analysis.py
│ │ └── deadlift_analysis.py
│ ├── uploads/ # Temp storage for video processing
│ └── requirements.txt # Python dependencies
│
└── README.md # This file- Navigate to Dashboard -> Real-Time Coach.
- Allow Camera permissions.
- Select your exercise (Squat/Pushup/Pullup).
- Step back until your full body is visible.
- Wait for the 3-2-1 Countdown.
- Start exercising! The AI will count reps and fix your form live.
- Navigate to Dashboard -> Video Analysis.
- Drag & Drop your pre-recorded workout video.
- Click Upload & Analyze.
- Wait for the processing to finish.
- View your Report Card and refined video with skeletal overlays.
Built with ❤️ by students from RV College of Engineering, Bangalore.
- Arya Wadhwa - Full Stack & Computer Vision
- Dilraj Singh - Backend & Architecture
- Shlokk Sikka - Frontend & UI/UX
- Anirudh M - AI Model Optimization
- Ashwin Acharya - Data Pipeline & Testing
We welcome contributions!
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
© 2025 Gymbro Inc.
