You film your squat from the side, exactly the way every tutorial says to. The app reports a mean velocity of 0.58 m/s on a set where your bar speed at that percentage usually sits closer to 0.66 m/s. Nothing about the lift changed - same weight, same effort, same cue you have used for months. What changed is that the phone stand got bumped a foot closer to the rack during warm-ups, or the bar drifted back over your hips at the bottom the way it always does on a low-bar squat, and the geometry between lens and bar no longer matches what the software assumes it is.
Every 2D video velocity system - phone app, tablet, or webcam bar-path tracker - runs on one assumption: the bar travels on a flat plane parallel to the camera's sensor, at a fixed distance, for the entire rep. Break that assumption by a few centimeters of depth or a few degrees of angle, and the number it reports is not noisy. It is systematically wrong in a predictable direction, and it will read that way on every rep until the geometry gets fixed, not the software.
Why a Flat-Plane Assumption Breaks in a 3D Room
A 2D tracking system has no way to sense distance. It only knows how many pixels a marker moved between frames, and it converts that pixel movement into real-world meters using a single scale factor, established once by measuring a known length - a barbell sleeve, a plate diameter - somewhere in the frame. That conversion is only accurate for objects sitting at the exact depth where the scale factor was calibrated.
Two things break that condition, and both are easy to introduce without noticing either one.
- The camera is not perpendicular to the plane of motion. If the lens axis sits at an angle to the bar path - propped against a rack at a slant, positioned to also catch a mirror, or just eyeballed instead of measured - every real-world distance in the direction of that angle gets foreshortened in the image, the same way a road sign photographed at an angle looks compressed compared with one shot straight on.
- The bar moves toward or away from the lens during the rep. This is the one lifters underestimate. A low-bar back squat, a bench press with a heavy arch, or a deadlift pulled slightly around the shins all involve real forward-backward bar travel in the plane the camera cannot see. The scale factor calibrated at the start of the rep is now wrong for every frame where the bar has moved nearer to or farther from the lens, even though the camera itself never moved.
| Error Source | What Physically Happens | Direction of Error | Fix |
|---|---|---|---|
| Non-perpendicular camera (yaw or tilt) | Lens axis is angled relative to the bar-path plane | Velocity under-read across the whole rep, worse toward the frame edges | Re-align to true perpendicular before filming |
| Depth drift during the rep | Bar moves toward or away from the lens mid-rep (low-bar squat, arched bench, rounded deadlift path) | Velocity over- or under-read specifically during the portion of the rep where depth changes | Increase camera distance, or use a non-video sensor for that lift |
The Geometry, With Numbers
Both failure modes follow ordinary photogrammetry, and the size of the error is predictable enough to estimate before you ever press record.
Angle error. When the camera axis sits at an angle theta off true perpendicular, apparent displacement in the image compresses by a factor of cos(theta) relative to the real displacement. Below about 10 degrees off perpendicular, the error stays under 2%, which is close to what a careful eyeball placement produces. Past 20-30 degrees the error accelerates quickly, because cosine falls off faster as the angle grows.
| Angle Off Perpendicular | cos(theta) | Velocity Underestimate |
|---|---|---|
| 5 degrees | 0.996 | ~0.4% |
| 10 degrees | 0.985 | ~1.5% |
| 15 degrees | 0.966 | ~3.4% |
| 20 degrees | 0.940 | ~6.0% |
| 30 degrees | 0.866 | ~13.4% |
| 45 degrees | 0.707 | ~29.3% |
Depth-drift error. The second source follows a similar-triangles relationship: if the camera-to-bar distance is D and the bar shifts in depth by delta-z at some point in the rep, the local scale factor is off by roughly delta-z divided by D. The practical lesson is that distance is your buffer - the same amount of real bar drift produces a much smaller error the farther back the camera sits.
| Camera-to-Bar Distance | Bar Depth Drift | Approx. Velocity Error |
|---|---|---|
| 1.5 m | 10 cm | ~6.7% |
| 2.5 m | 10 cm | ~4.0% |
| 3.5 m | 10 cm | ~2.9% |
| 2.5 m | 20 cm | ~8.0% |
Ten centimeters of depth drift is not an extreme case - it is a fairly ordinary amount of forward-backward bar travel on a low-bar squat or a deadlift pulled slightly around the shins. At a typical home-gym filming distance of 1.5 to 2 meters, close enough to fill the frame on a phone without zooming, that ordinary drift alone can produce a 5-7% velocity error, large enough to change which side of a velocity-loss cutoff a set lands on.
What the Research Actually Shows
Balsalobre-Fernandez, Marchante, Munoz-Lopez and Jimenez (2018, Journal of Sports Sciences) validated a smartphone video app against a linear position transducer for bench press velocity and reported a very high correlation between the two methods (r > 0.95) - but only under a protocol that fixed the phone's position perpendicular to the bar path at a controlled distance for every trial. That protocol choice is the finding worth noticing: validity holds for a camera placed correctly, and the study's own methodology treats perpendicular alignment as a condition of the measurement, not a minor detail. None of it generalizes to a phone propped at a convenient angle against whatever happens to be nearby.
Weakley, Mann, Banyard, McLaren, Scott and Garcia-Ramos (2021, Strength and Conditioning Journal), reviewing velocity-based training devices from theory to practical application, flagged 2D video-based systems specifically as carrying an error source that inertial and laser-based systems do not share: their accuracy depends on the athlete's movement staying inside a single calibrated plane, a coaching and setup variable rather than a fixed property of the device. That same tool can look highly accurate in a controlled validation study and considerably less accurate in an ordinary gym where nobody is enforcing camera geometry rep after rep.
Setting Up a Camera So the Geometry Holds
Most of this error is preventable with a five-minute setup routine, not a software fix after the fact.
- Find true perpendicular before you film, not by eye. Stand a level app against the racked barbell, note the reading, then match it when you position the camera facing the bar. A few degrees of error here compounds through the whole set.
- Put real distance between the lens and the bar. 2.5 to 3 meters is a reasonable minimum for most home setups - per the distance table above, roughly half the impact of ordinary depth drift compared with filming from 1.5 meters. If the frame feels too tight, zoom in optically rather than moving closer; a longer effective focal length reduces how much a given depth shift changes the image, the same reason portrait photographers use longer lenses to avoid distorting a face.
- Avoid the ultra-wide lens. Switching to ultra-wide to fit a home gym into frame introduces heavier barrel and perspective distortion, especially near the edges - exactly where a bar path often sits during a squat or deadlift.
- Calibrate on the plane the bar actually travels, not on whatever sits closest to the lens. Calibrating scale off a plate that sticks out toward the camera rather than the bar sleeve itself calibrates a different depth than the one the bar moves through - a small, avoidable version of the same drift error.
- Center the range of motion in the frame. Perspective distortion is smallest near the center of an image and grows toward the edges; if the bottom of a squat lands near the bottom edge of the frame, that portion of the rep carries more error than the top.
The Perspective Error Self-Audit
Run this once on any lift you plan to track by video, and repeat it whenever you change your camera, gym, or lens.
Equipment: your normal camera or app setup at 60 fps or higher, a bubble level or phone level app, a tape measure, two small tape markers, and a plate of known weight for a drop test.
Procedure:
- Confirm the camera is level, then mark its floor position with tape so you can return to it.
- Place one tape marker on the near collar of the bar and one on the far collar, then film a full rep.
- Step through the footage frame by frame and measure the pixel distance between the two markers at the top and bottom of the rep.
- From the same camera position, drop a plate through a measured height of 0.4-0.5 m along the same plane the bar travels, and calculate the expected impact velocity from v = the square root of 2 times gravity times height.
- Compare that calculated value against what the app reports for the drop.
Normal range: a change under 3% in the near-far marker pixel distance between top and bottom of the rep, combined with an app-reported drop velocity within about 5% of the calculated value, indicates the setup is holding its geometry well enough to trust for load-velocity work. A marker-distance change above 8%, or a drop-velocity discrepancy above 10%, means the bar plane is drifting or the camera angle is off enough to distort real training decisions - rerun the setup steps above before trusting the numbers for autoregulation.
Worked Example: The Same Squat, Two Camera Setups
A lifter records a set of low-bar back squats at 80% 1RM twice in the same session: once with the phone propped at roughly 20 degrees off perpendicular and 1.5 m away to fit the whole gym in frame, and once after a five-minute setup correction - camera moved to 2.8 m, realigned to true perpendicular with a level app, calibrated on the bar sleeve itself.
| Setup | Distance | Angle Error | Reported Mean Velocity | Reference Velocity (IMU) | Error |
|---|---|---|---|---|---|
| Uncorrected | 1.5 m | ~20 degrees | 0.58 m/s | 0.66 m/s | ~-12% |
| Corrected | 2.8 m | ~2 degrees | 0.65 m/s | 0.66 m/s | ~-1.5% |
The uncorrected setup was not a broken app or a bad rep. It was a camera angle and a filming distance that, per the geometry above, predicted almost exactly the error observed. Nothing about the lift changed between the two recordings - only the geometry the software was working with did.
Frequently asked questions
01How do I know if perspective error is actually affecting my numbers, or if it's just normal rep-to-rep variation?+
02Does a higher frame rate fix perspective error?+
03Which lifts are most at risk for this specific error?+
04I filmed from directly overhead instead of from the side - does that avoid perspective error?+
05Is the setup routine worth the time, or should I just switch to a wearable sensor?+
Related Articles
How to Track Bar Path with Video Analysis
Track bar path on video for the squat, bench press, and deadlift: camera angle, free software options, and how to cross-check results against VBT data.
How to Calibrate a Velocity Sensor: 5-Step VBT Accuracy Protocol
A miscalibrated VBT sensor skews every reading that follows. Follow this 5-step protocol for reference measurement, mounting, baseline, and verification.
Fixing Bar Velocity Spikes From Bouncing: How to Spot and Filter the Artifact
A single rep reads 1.4 m/s and wrecks your average. Learn why bounced reps and bar drops spike bar velocity readings, and how to filter the artifact out.
How to Troubleshoot Noisy VBT Velocity Readings
Noisy VBT velocity readings usually trace to one of three causes: sensor placement, bar whip, or ROM drift. Here is the checklist to isolate which one.
Fixing Deadlift Velocity Shifts From Grip Style: Standardizing Hook, Mixed and Strap Pulls
Switch from straps to hook grip and initial pull velocity jumps 15%? That is grip mechanics, not new strength. Here is how to standardize the reading.
When Smith Machine Counterweights Skew Velocity Readings: How to Correct for the True Effective Load
A counterbalanced Smith machine quietly subtracts kilograms from your real load. Learn to measure the offset and stop it from wrecking your velocity zones.
Bands and Chains Wreck Your VBT Velocity Readings: How to Fix It
Add bands or chains and your velocity zones lie. See why accommodating resistance skews VBT readings, and how to test and prescribe around it.
Bluetooth Dropout Losing VBT Reps Mid-Set: How to Diagnose and Fix It
A set logs 4 of 6 reps and the velocity chart has a gap. Split the cause into interference, distance and buffering, then recover the missing data.
Measure performance with lab-grade accuracy