FitMaxx is a web-based form analyzer that uses Google Gemini AI to analyze exercise form from uploaded videos or images. Get instant feedback, detailed scoring, and personalized recommendations to improve your workout technique.
- 10 Exercise Categories: Analyze form for squats, bench press, overhead press, deadlifts, plank, pull-ups, dips, bicep curls, rows, and lunges
- AI-Powered Analysis: Uses Google Gemini API for intelligent form assessment
- Detailed Scoring: Get scores out of 10 with breakdown by specific criteria
- Personalized Feedback: Receive strengths and recommendations tailored to your form
- Video & Image Support: Upload either videos or images for analysis
- Beautiful UI: Modern, responsive interface built with Material-UI
- Node.js (v16 or higher)
- npm or yarn
- Google Gemini API key (Get one here)
- Clone the repository:
git clone <repository-url>
cd FitMaxx- Install dependencies:
npm install- Set up your environment variables:
- Create a
.envfile in the root directory - Add your Gemini API key:
- Create a
VITE_GEMINI_API_KEY=your_api_key_here
- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
- Select an Exercise: Choose from 10 different exercise categories
- Upload Media: Upload a video or image showing your exercise form
- Get Analysis: Click "Analyze My Form" and wait for AI-powered results
- Review Feedback:
- Overall score out of 10
- Detailed breakdown by criteria (stance, alignment, control, etc.)
- List of strengths in your form
- Specific recommendations for improvement
- Squats - Back and front squats
- Bench Press - Powerlifting essential
- Overhead Press - Military press
- Deadlifts - Conventional and sumo
- Plank - Position and posture
- Pull Ups - Calisthenics master
- Dips - Upper body power
- Bicep Curls - Isolation master
- Rows - Back builder
- Lunges - Leg sculptor
Each exercise is evaluated based on specific criteria with weighted percentages:
- Stance and Setup: Proper positioning and grip
- Alignment: Spinal and joint alignment
- Range of Motion: Full movement execution
- Control: Smooth, controlled movements
- Stability: Core engagement and balance
- Technique-Specific Points: Unique to each exercise
- Frontend: React 18 with TypeScript
- UI Framework: Material-UI (MUI)
- AI/ML: Google Gemini API
- Build Tool: Vite
- Routing: React Router
FitMaxx/
├── src/
│ ├── components/
│ │ ├── FormAnalyzer.tsx # Main application component
│ │ ├── VideoUpload.tsx # File upload component
│ │ └── AnalysisResults.tsx # Results display component
│ ├── services/
│ │ └── geminiService.ts # Gemini API integration
│ ├── constants/
│ │ ├── exercises.ts # Exercise definitions
│ │ └── evaluationCriteria.ts # Detailed evaluation criteria
│ ├── types/
│ │ └── index.ts # TypeScript type definitions
│ ├── App.tsx # Main app component
│ ├── main.tsx # Application entry point
│ └── index.css # Global styles
├── .env # Environment variables (not in git)
├── .env.example # Example environment file
└── package.json # Dependencies and scripts
- Good Lighting: Ensure your video/image is well-lit
- Clear Angle: Capture side and/or front views as recommended for each exercise
- Full Body: Include your entire body in the frame
- Multiple Reps: For videos, perform 2-3 reps for better analysis
- Stable Camera: Keep the camera steady and centered
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
- Google Gemini AI for powering the form analysis
- Material-UI for the beautiful component library
- The fitness community for exercise form guidelines
For issues, questions, or suggestions, please open an issue on GitHub.
Built with ❤️ for fitness enthusiasts everywhere!