Why I Built PuffinVBT
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.
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.
This is the practical half of a Master's thesis. 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.
RQ1: is the measurement any good?
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 | – | 97.6% 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.
RQ2: can the numbers predict effort?
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.
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.
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.