Inspiration

We wanted to make fitness more fun and interactive. Inspired by games like Subway Surfers and the rise of AI-powered assistants, we combined physical motion tracking with gamified feedback. Our idea was to create a game where players physically move to control a character — blending exercise, gaming, and AI-generated encouragement.

What it does

Fitness Surfers is a motion-controlled game where players move left, right, or center using PIR sensors connected to an ESP32-S3 board. The character dodges obstacles in 3D-style lanes similar to Subway Surfers. When a player is about to crash, AI gives them custom coaching commands. If they fail to dodge, the game ends with a funny AI-generated joke to lighten the mood.

How we built it

  • We used an ESP32-S3 microcontroller with two PIR sensors to detect left and right motion.
  • The ESP32 sends serial data to a Python game built with Pygame.
  • The game features animated GIFs, 3D-simulated lane switching, obstacles, and background music.
  • We integrated Gemini AI (Google genAI) to generate:
    • Game-over jokes based on the player's failure.
  • We handled serial input parsing, real-time updates, and dynamic UI rendering.

Challenges we ran into

  • Accurately detecting motion using PIR sensors and filtering out noise.
  • Ensuring serial communication didn't lag or drop packets.
  • Keeping the game responsive while making API calls to Gemini.
  • Wrapping AI-generated text to fit neatly on the game screen.
  • Balancing sound design so that effects didn’t clash or overlap.

Accomplishments that we're proud of

  • A fully working motion-controlled game playable in real-time.
  • Seamless hardware-software integration between ESP32 and Python.
  • Creative use of AI-generated content to enhance player engagement.
  • Custom animations, music, and smooth gameplay design.
  • Making fitness actually fun through gamification and humor.

What we learned

  • How to interface microcontrollers with Python games via serial ports.
  • How to work with PIR motion sensors for physical interaction.
  • Best practices for AI integration in real-time applications.
  • Techniques for handling dynamic text rendering and UI constraints in Pygame.

What's next for Fitness Surfers

  • Add voice feedback using text-to-speech for AI directions.
  • Implement player avatars and custom skins.
  • Introduce a multiplayer mode for fitness competitions.
  • Track fitness metrics like reaction time and calories burned.
  • Turn it into a classroom-friendly fitness tool for kids and families.

Built With

Share this project:

Updates