Using software to analyse and improve my workout performance — Part 1

Mathias
Atlon
Published in
3 min readDec 2, 2020

Yesterday we submitted Wodscribe (our brand new functional fitness workout app) to the App Store (still under review). We’re super excited, and thought it would be a good time to take a step back and look at how we got here. This is Part 1 of a two part story. Read Part 2 here.

The story of Wodscribe begins at the CrossFit Open 2018. During the Open I always do the workouts twice (Friday and Sunday). I record my first attempt, and analyze the video to figure out how long to rest, and how large my sets should be for an optimal score. It’s quite funny to see how large of a difference there is between my perceived and actual rest times.

My second attempt is usually 10% to 15% better than my first as a result of the analysis. I don’t have to think about pacing, I just have to execute the plan. It works great, except that the video analysis takes a long time and, honestly, is pretty boring to do.

After doing this again in 2019 (twice!), I started dreaming up a system that could automatically do the analysis for me and allow me to make a realistic plan. While the Open was the main driver, I wanted these insights for my daily CrossFit training as well so I could always train optimally. Luckily I’m a software engineer so I bought a smartwatch and got to work.

The first prototype I built was pretty crude and not very user friendly. However, it was just for myself, so that was fine. The smartwatch measured movement sensor data while the phone recorded video. To understand the sensor data I built a web app that showed it as a graph along with the video. It allowed me to mark reps and exercise types and get a better understanding of the data. This was essentially a lot more of the same boring work that I normally do for the Open, but now it served a larger purpose.

First prototype app and web app for viewing sensor data and marking reps.
First prototype app and web app for viewing sensor data and marking reps.

I quickly learned that some exercises are easier to recognize from the sensor data than others. However, finding patterns in such data is exactly what machine learning is great for. So after gathering data for a bunch of workouts and painstakingly marking all my reps, I trained a neural network. At first, the results were not great, but after a few failed attempts, it started working quite decently. This was the first real evidence that it could actually work.

Machine learning requires lots of data. And while data from my own workouts was enough to recognize a few exercises with reasonable accuracy, a lot more data was needed to even recognize the same exercises for other people. So I had to figure out a way to collect more data. A lot more!

I’ll cover this in Part 2. Follow our Facebook page to get notified when it becomes available.

Update: Part 2 is now available.

--

--