Inspiration
We wanted solo workouts to feel less like guessing. Without a coach nearby, it’s easy to lose track of reps or wonder whether you’re moving well. Gym&I brings camera-based tracking and spoken coaching into a home workout, while letting you focus on the exercise instead of your screen.
What it does
Gym&I connects a Raspberry Pi camera to an iPhone workout app. The Pi analyzes movement and sends observations to the phone, which counts trusted reps, manages sets and rest, and gives spoken cues. An Apple Watch can provide heart-rate readings during a workout.
How we built it
We built the iPhone app in SwiftUI and the Pi’s movement pipeline in Python. The pipeline uses MediaPipe pose landmarks and trained models to recognize exercises and assess movement. We connected the Pi and phone over the iPhone’s hotspot, so the Pi can receive workout controls and send movement observations back. The Watch companion uses HealthKit for heart-rate data.
Challenges we ran into
The hardest part was making several devices work together in real time. The phone, Pi, and Watch each have different jobs, and workout controls and movement observations need to stay in sync. We also had to make the app handle lost tracking or missing heart-rate data without filling in guesses.
Accomplishments that we're proud of
We connected a physical Pi camera to the iPhone app, including automatic phone discovery and workout controls. We also trained movement models, built an Apple Watch companion, and brought the pieces together into one workout flow.
What we learned
We learned that a model is only one part of a coaching experience. Reliable workout feedback also depends on good data flow, clear device responsibilities, and knowing when the system doesn’t have enough information to make an assessment.
What's next for Gym&I
We want to evaluate the trained models with more real workout footage, improve exercise and form recognition, and make setup even smoother. We also plan to build out more personalized workout planning and coaching.
Log in or sign up for Devpost to join the conversation.