💡 Inspiration
For many years, I’ve struggled to stay consistent at the gym. Every time I tried, I wasn’t sure if I was doing the exercises correctly. My body structure is a bit different, and that made me prone to injuries and insecurity about my form. Personal trainers are expensive, and I wanted to find a way to make professional-level guidance accessible to everyone.
That’s where the idea for Biome came from — an AI-powered personal trainer that democratizes access to expert feedback and helps people work out safely and effectively.
🚀 What We Learned
Building this project was a journey of growth and teamwork. Our team was truly international — with members from Brazil and India, and one teammate currently pursuing a Master’s degree in the United States. Coordinating across different time zones and cultures taught us a lot about collaboration, adaptability, and commitment.
We learned deeply about Google Cloud, ADK, and how agent systems can orchestrate complex AI workflows. We also learned how to build an efficient development pipeline using Cursor IDE for AI-assisted coding and rapid prototyping, and how to deploy scalable systems through Cloud Run.
Together, we grew not only as developers but also as a distributed team, learning to overcome technical and organizational barriers while keeping the vision of accessibility and impact at the core of our project.
🧠 How We Built It
We built Biome using:
Frontend: React 19 + TypeScript + Tailwind CSS
Backend: FastAPI (Python)
Database: Neon PostgreSQL
AI: Google ADK orchestrating Gemini 2.0 Flash
Pose Detection: MediaPipe extracting 33 body landmarks per frame
Infrastructure: Dual Cloud Run deployments (frontend + backend) for scalability and fault isolation
We used Cursor IDE to speed up development with AI pair programming and integrated GitHub Actions for CI/CD and uptime maintenance.
⚙️ Challenges We Faced
Backend setup complexity: Many dependencies conflicted, making it difficult to run locally.
Database sleeping: Neon’s free tier shuts down after inactivity, so we used GitHub Actions to ping the backend every 4 minutes to keep it awake.
Token limits: Initially, we tried sending video frames to Gemini, which exceeded token limits. We solved this by processing poses first with MediaPipe.
Agent integration: Transitioning from a traditional API approach to a fully agent-based system using Google ADK required rethinking our architecture.
Deployment debugging: We had to configure environment variables, CORS, and memory scaling for smooth Cloud Run operation.
🏆 Accomplishments We’re Proud Of
Fully deployed and functional AI-powered fitness coach
96% token optimization while maintaining precision
Built an agent system coordinating upload → pose extraction → analysis → result storage
Real-time results with complete analysis in under 60 seconds
Production-ready app with robust error handling and monitoring
🌍 What’s Next for Biome
Live feedback: Real-time posture analysis via camera feed
Mobile app: Capture workouts easily on iOS and Android
Progress tracking: See improvement trends and visual analytics
Community features: Share achievements and challenges
Wearable integration: Combine data from fitness trackers for holistic health insights
☁️ Cloud Run & ADK Integration
Using Google Cloud Run gave us a powerful serverless foundation — automatic scaling, zero maintenance, and pay-per-use pricing.
Google ADK made it possible to create an intelligent, modular agent system, enabling Gemini to reason over structured pose data and provide biomechanically accurate analysis.
Built With
- docker
- fastapi
- gemini-2.0-flash
- github
- google-adk
- google-cloud-run
- mediapipe
- neon
- postgresql
- python
- react
- tailwind-css
- typescript

Log in or sign up for Devpost to join the conversation.