Built from a Master's Thesis: The Science Behind PuffinVBT
PuffinVBT grew out of a master's thesis in data science, validated against a reference sensor across nearly 1,700 training videos and thousands of pipeline configurations.
PuffinVBT measures barbell velocity from ordinary phone video. It exists because the equipment that normally does this costs money, needs setting up, and has to be attached to the bar.
The product came out of the research rather than the other way round, which means two questions had to be answered before it was worth building.
How accurate is it?
How accurately can smartphone video, machine-learning segmentation and ellipse fitting measure barbell velocity and range of motion, compared against a tethered linear position transducer recording the same sets?
The latest full validation pass ran the pipeline across over 1,300 training videos. On the supported filming angles, the current best-performing configuration reaches:
| Measure | Agreement (ICC) | Mean error |
|---|---|---|
| Peak concentric velocity | 0.923 | 0.046 m/s |
| Mean concentric velocity | 0.927 | 0.028 m/s |
| Range of motion | 0.952 | 22 mm |
| Rep counting | – | about 98% correct |
VBT validation studies commonly treat ICC above 0.90 with mean error under 0.05 m/s as excellent agreement. This pass clears that bar.
The two rows rest on different evidence, which is worth being precise about. Velocity agreement comes from 408 reps recorded with a linear position transducer attached to the bar at the same time, so there is a direct displacement reading to compare against rep by rep. Rep counting is checked across roughly 1,300 sets, most of them ordinary uploads where the comparison is against the athlete's own reported rep count.
The numbers move as methods improve, since every pipeline sweep re-runs the same evaluation. Full breakdown in the write-up and, eventually, the finished thesis.
What's next: predicting effort from bar speed
Can a classical machine-learning model trained on velocity metrics predict an athlete's reported RPE? Bar speed is objective, RPE is not, and the relationship between them is the part worth investigating. Nothing is being claimed here yet, because nothing is ready to stand behind.
The validation work is the practical half of an MSc Data Science thesis at TU Wien, by the person who built the product.
There is no marker on the bar and no sensor. The method tracks a weight plate, which is a known size, and uses that to convert pixels into metres.
Accuracy depends on the camera angle, which is why the guidance asks for a side-on view with a plate visible throughout. A sharply angled or obstructed view measures worse, and the honest answer is that it is a real limitation rather than something the model quietly corrects for.
Sign-in is Google SSO, so no password is stored here. Your videos and the numbers derived from them are yours, and deleting them removes them from every view.
Contributing your training data to the underlying research is optional. It is asked for separately during sign-up consent and is never a condition of using the product. See the privacy policy for the detail.
Curious what it produces? See a worked example, or try it on a video you already have.
PuffinVBT grew out of a master's thesis in data science, validated against a reference sensor across nearly 1,700 training videos and thousands of pipeline configurations.
RPE gives you how a set felt. VBT gives you how the bar actually moved. Here's why the best training uses both, and what to do when they disagree.
The personal story behind PuffinVBT. A decade of lifting, a stubborn ego, coaches who know my body better than I do, and the realization that bar speed doesn't lie.