We've all been there - starting a workout routine full of motivation, only to quit after a week because exercising alone is boring as hell. Traditional fitness apps are lifeless: they count your reps, maybe show a 3D model, and that's it. Where's the personality? Where's the entertainment? The inspiration hit us when we saw people quit too early because they were unentertained and thought, "What if your personal trainer was actually entertaining?" What if bad form didn't just get ignored, but got you roasted in real-time by an AI with the personality of an anime character? We wanted to solve the motivation problem in fitness by making it: Gamified (S-rank grading, combo systems) Social (shareable moments of getting destroyed by AI) Funny (Claude AI + anime voices) 💡 What It Does SufferCV is a computer vision-powered fitness trainer that tracks your workout form in real-time and delivers AI-generated roasts when you slack off. Core Features: Real-Time Pose Detection Uses TensorFlow.js MoveNet to track 17 body keypoints via webcam Analyzes angles and positions for 5 exercises: squats, push-ups, planks, jumping jacks, and lunges Strict Form Grading System S-rank (95-100%): Perfect form - deep squats, chest-to-floor push-ups A-B rank (80-90%): Good form with solid technique C-D rank (60-75%): Needs improvement F rank (<60%): Prepare to get roasted AI-Powered Roasts Claude 3.5 Sonnet generates contextual, hilarious roasts Delivered via Web Speech API with anime-style voice 4 personality types: Tsundere, Yandere, Genki, Sadistic Gamification Combo counter for consecutive good reps Color-coded skeleton (green = good, red = bad) Screen shake effects when roasted Anime-style particle effects on perfect form Session stats tracking 🛠️ How We Built It Tech Stack Frontend: Vanilla JavaScript (no frameworks - pure performance) Vite for bundling and hot reload HTML5 Canvas for skeleton visualization CSS3 with keyframe animations Computer Vision: TensorFlow.js Core (v4.22.0) TensorFlow MoveNet (SinglePose Lightning model) WebGL backend for GPU acceleration AI Integration: Anthropic Claude 3.5 Sonnet API Web Speech API for text-to-speech Custom prompt engineering for "playful teasing" mode Backend: Node.js + Express for local development Vercel Serverless Functions for production CORS configuration for API access Deployment: GitHub for version control Vercel for hosting (automatic deployments) Environment variables for API key security Architecture Breakdown Key Implementation Details

  1. Form Analysis with Trigonometry We calculate joint angles using the law of cosines: $$\theta = \arccos\left(\frac{a^2 + b^2 - c^2}{2ab}\right)$$ Where for a knee angle: Point A = hip keypoint $(x_1, y_1)$ Point B = knee keypoint $(x_2, y_2)$ Point C = ankle keypoint $(x_3, y_3)$

Built With

Share this project:

Updates