Going to the gym can be daunting. The public environment can be uncomfortable and for beginners, they don’t know how to get started. This is why many people make the choice to exercise at home which has the added bonus of being convenient and free. For beginners this poses another challenge where there is nothing to guide them in exercising properly. This is why we designed a mobile app that can help beginners in their fitness journey by guiding them through workout routines and correcting their form. When it comes to exercising, quality is more important than quantity. Poor form can lead to injuries and decreased efficiency. Our app fixes this issue which would make it really useful for anyone learning to do consistent reps.

What it does

Fit Form is primarily a voice based workout assistant. Users can create workouts and routines based on different exercises and choose the number of reps for each set. The user then faces the camera and does the exercises and the assistant will count the reps and give advice on adjusting form. Users can also see their fitness journey by looking at the stats on how long they spent each day exercising.

How we built it

The Frontend was built using Swift + ARKit and RealityKit which did the motion tracking of the joints and displaying the skeleton. The backend was built using Python and Flask. Motion data was sent using UDP from the frontend to the backend. Charts were generated using matplotlib.

Challenges we ran into

There was more work on the frontend than the backend so we ended up having to shift roles and tasks. Changing state from outside of views proved challenging and we had to come up with creative ways to get around it.

Accomplishments that we're proud of

We’re proud of getting the motion tracking to work properly. It was our first time using a UDP socket in a mobile application and it worked surprisingly well. Communication between backend and frontend was also established pretty early on.

We organized our code contributions into feature branches to reduce conflicts and follow best practices. We also did consistent code reviews to keep our code quality in check.

What we learned

First time for most members working with Swift (and mobile apps in general).

What's next for Fit Form

Suggesting workout routines that can be done for beginners based on what they want to work on and adding more exercise options would greatly improve the experience for beginners.

Built With

Share this project: