Inspiration

We needed a way to motivate ourselves at the gym. When you don't have a gym buddy shouting at you for "just one more", there really isn't a reason to finish that last rep. So why not solve this issue by scrolling reels 😁

What it does

For each rep you complete, you scroll another Youtube Short. When you start to struggle during a rep, a random ad starts playing, and the only way to get rid of it is to complete your rep.

How we built it

We used an ESP8266 microcontroller as the device strapped onto the user's body to measure the movements being made during an exercise. We set up a WebSocket connection between the microcontroller and the Python backend, which acted as a middleware by forwarding exercise triggers (concentric, eccentric, failure) to the frontend). The frontend fetches YouTube Shorts using the GCP YouTube Data API v3, and actions to scroll and show an ad are triggered whenever the frontend receives the exercise triggers forwarded by the backend.

Challenges we ran into

A major challenge we ran into was figuring out a reliable method of using the accelerometer and gyroscope data being measured by the ESP8266 to determine the stage of the rep that the user is in.

Accomplishments that we're proud of

Tracking when you are struggling mid-rep, and showing an ad in response. Also, tracking when you complete a rep and scrolling automatically is pretty smooth and accurate.

What we learned

We learned methods of reconnection safety in WebSockets when a connection is vulnerable to one of its clients losing connection.

What's next for Gym Scroller

Accommodating to different workouts

Built With

Share this project:

Updates