💡 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

Share this project:

Updates