Filming a Swing an AI Can Actually Read
Most golfers who ask how to film your golf swing are really asking a different question: why does the app say something different every time? You film a 7-iron on Tuesday and the analysis says you’re 4° over the top. Same swing on Thursday, filmed from the other side of the mat, and now you’re shallow and stuck. Neither reading is wrong. Both are answers to the question the camera asked, and the camera asked two different questions.
Pose-estimation models, single-camera 3D engines and the swing-scoring features bolted onto launch monitor apps are all doing the same thing: inferring a 3D body from 2D pixels. They are very good at that now. What they cannot do is recover information the footage never contained. A 30 fps clip shot from 25° inside the target line under flickering range lights does not contain your swing plane, and no amount of model quality invents it.
So this page is about the input. Get the capture right and the cheap tools become useful, the expensive ones become trustworthy, and the numbers stop wobbling week to week. For the gear side of this (mounts, tripods, what survives a wet Tuesday at the range), see The Swing Filming Kit That Actually Fits in a Golf Bag.
The maths of a 95 mph clubhead
A 7-iron at 85 mph is travelling 1,496 inches per second. A driver at 105 mph is doing 1,848. Divide by your frame rate and you get how far the clubhead moves between one frame and the next:
| Frame rate | 7-iron at 85 mph | Driver at 105 mph |
|---|---|---|
| 30 fps | 49.9 in per frame | 61.6 in |
| 60 fps | 24.9 in | 30.8 in |
| 120 fps | 12.5 in | 15.4 in |
| 240 fps | 6.2 in | 7.7 in |
At 30 fps there is no frame at impact. The clubhead is four feet from the ball in one frame and four feet past it in the next. Any tool that reports shaft lean at impact, face angle at impact or low point from a 30 fps clip is interpolating, and you should treat those specific numbers as decoration.
240 fps puts the clubhead within about three inches of the ball on some frame of every swing, which is close enough that shaft lean and hand position are genuinely measurable. The downswing itself lasts roughly 0.25 seconds: that’s 7 or 8 frames at 30 fps, and 60 frames at 240. Sixty frames is enough to see the transition as a sequence rather than a guess.
Motion blur is a separate problem with the same cause. Shutter speed on a phone in slow-motion mode is usually capped near the frame interval, so at 240 fps you get something around 1/250s to 1/1000s depending on light. At 1/250s, an 85 mph clubhead smears 6 inches across the frame. Under bright daylight the phone will pick a faster shutter and the clubhead resolves into an actual object. In a dim range bay at 200 lux it won’t, and the shaft turns into a grey fan. This is the single biggest reason outdoor footage reads better than indoor footage on identical hardware.
Two camera positions, and the tolerances that matter
There are only two views worth filming, and each one can only answer certain questions.
Down the line. Camera on the target line extended behind the ball, lens at hand height (about 2 ft 6 in to 3 ft for most adults at address), 8 to 10 ft back for an iron and 10 to 12 ft for a driver. This view owns swing plane, shaft position at the top, early extension, hand depth in the downswing and low point relative to the ball.
Face on. Camera perpendicular to the target line, aimed at the sternum, lens at roughly chest height, 8 to 9 ft away. This view owns lateral movement (head, pelvis, sternum), lead wrist condition, weight shift timing and tempo.
Now the tolerances, because this is where the wobble comes from. Set up 9 ft behind the ball but 4 ft inside the line, which is what happens when you put the phone on the bag rather than on a line, and you are filming from 24° off axis. That is not a “roughly down the line” view. At 24° a genuinely neutral shaft at the top appears across the line, and the transition appears to come over the top by several degrees. Two feet inside at 9 ft back is still 12.5°, which is enough to flip the verdict on a borderline plane.
Height does the same thing on a different axis. Film down the line from chest height rather than hand height and the apparent shaft plane flattens: an on-plane top starts to read as laid off, and delivery looks shallower than it is. You don’t have to take this on trust. Film five swings from hand height, raise the phone a foot, film five more without changing anything else, and run both through the same app. The numbers will move and your swing didn’t.
Lens choice matters more than people expect. Use the 1x lens, never the 0.5x ultra-wide. On an ultra-wide at 5 ft, barrel distortion bows the shaft visibly and exaggerates spine tilt, and pose models trained on rectilinear footage will happily report the distortion as biomechanics. If you can’t fit the full swing arc in at 1x, walk backwards. That’s what the extra distance is for.
The lighting problem, specifically the UK one
Mains here runs at 50 Hz, which means most non-flicker-free LED and all fluorescent lighting pulses at 100 Hz. Shoot at 240 fps under that and you get rolling bands of brightness moving up the frame, plus a real exposure penalty on the dark bands. Some pose trackers cope. Sportsbox and V1’s auto-trace both get noticeably less stable when half the frames are two stops darker than the other half.
Three fixes, in order of how well they work. Film outside, ideally on an overcast day (bright sun creates a hard shadow that the tracker will sometimes follow instead of your leg). Failing that, drop to 120 fps, which is usually enough for everything except impact-frame measurement, and gives the sensor twice the light per frame. Last resort indoors: one flicker-free daylight-balanced LED panel aimed at your front side from around 45°, which is a £60 to £90 purchase and the only piece of lighting kit worth owning for this.
Contrast against the background is the other thing nobody mentions. Dark trousers against a dark hitting net is the worst case for a pose model: it will lose your trail knee, and once it loses the knee, the pelvis rotation and the “weight shift” numbers derived from it become fiction. Light trousers, or a light towel pinned to the net behind your legs, fixes more analysis errors than any camera upgrade.
What each tool actually reads correctly
| Tool | Trust it for | Ignore or verify |
|---|---|---|
| Hudl Technique, V1 Golf (free tiers) | Frame-by-frame positions, manual lines and angles, tempo by frame count, side-by-side comparison over weeks | Any auto-generated “score”; anything expressed in degrees of pelvis or thorax rotation |
| Onform | Capture quality (auto-trim, 240 fps handling), voice notes, sharing clips to a coach | Same as above: it’s a capture and comms tool, not a measurement engine |
| Sportsbox 3DGolf | Pelvis sway, thrust and lift trends, hand path depth, sequencing. The depth axis is its whole reason to exist | Absolute values as ground truth. Treat it as highly repeatable rather than certified, and compare your number to your number, not to a tour benchmark |
| Rapsodo MLM2PRO (Impact Vision) | Club and ball data paired to a 240 fps clip of the same shot. Attack angle and club path from the radar, not from the video | Its video framing, which it chooses for you and which is not a proper DTL view |
| Garmin Approach R10 + Garmin Golf | Ball speed, launch, spin estimate, and video attached to a shot for context | Club path and face numbers at the margins; and the video is whatever your phone was doing, so the rules above still apply |
| Toptracer Range (UK bays) | Carry, dispersion, launch and descent on real ball flight, which video cannot give you at all | Anything about your body |
| HackMotion | Lead wrist flexion/extension through the swing, to the degree. This is the one measurement video is genuinely bad at | Nothing much, but it tells you nothing about plane or pelvis |
The pattern is worth stating plainly. 2D apps read anything happening in the plane of the camera and guess at anything happening toward or away from it. Single-camera 3D engines genuinely recover depth and are the right tool for early extension and hand path, with the caveat that their absolute scale drifts with framing. Radar and camera launch monitors measure the club and ball, not you, and pairing their numbers to a properly framed video is where the real diagnostic power sits.
Feeding a swing to a general AI chat model
Uploading a clip to a general-purpose assistant and asking what’s wrong is increasingly common, and it fails for a reason that has nothing to do with golf knowledge. Chat models sample video down to a handful of still frames:
clip: 4.30 s at 240 fps = 1,032 frames
typical sampling: ~1 frame / second = 4 frames
frames landed on: 0.0 s address
1.0 s waggle
2.0 s P3 (lead arm parallel, backswing)
3.0 s post-impact, arms extending
downswing window: 2.58 s to 2.83 s (0.25 s, 60 frames)
frames sampled inside that window: 0
The model never sees the downswing. It will still answer, confidently, based on your address position and your finish. The fix is to do the sampling yourself: scrub to the frames you care about (address, P4 at the top, P6 with the shaft parallel to the ground on the way down, impact, P7.5 just after), export those five or six as stills, and ask about those. You get an answer about the positions you chose instead of an answer about your waggle.
Worked example: an “over the top” that wasn’t
A 14-handicap, filming with the phone leaning against the bag at the right-hand edge of the mat. Measured afterwards: 8 ft 6 in behind the ball, 3 ft 4 in inside the target line, phone about 4 ft 2 in off the ground on the bag’s side pocket, recorded at 1080p 60 fps.
App output: shaft across the line at the top, transition steep, “over the top”. Ball flight said something else, a gentle right-to-left curve that started right of target, which is not a pull-hook shape.
Refilmed with a £22 tripod set on the target line itself, 9 ft back, lens at 2 ft 9 in, 240 fps, 1x lens. Same swing, same club, same session, seven minutes later. New reading: shaft slightly laid off at the top, delivery shallow, and the Toptracer numbers in the bay confirmed a club path of +2.1° with a face 1.4° closed to it. The original diagnosis was 24° of camera error wearing a coaching hat. Practising an anti-over-the-top drill for six weeks off that footage would have made the actual push-draw worse.
Worked example: indoor 7-iron in February
Net, mat, garage, overhead LED strip on a domestic 50 Hz supply, dark jeans, phone at 240 fps 1080p. Sportsbox rejected two of five clips outright and produced pelvis numbers on the other three that varied by 2.8 inches of sway between swings that felt identical.
Changes made, in this order: swapped to light chinos, pinned a white towel across the net behind the legs, dropped to 120 fps, added one 100W flicker-free LED panel at 45° to the front-left. Five more swings. Sway spread across the five came down to 0.6 inches, which is inside the range where you can actually tell whether a drill is working.
Nothing about the swing changed between those two sets. The 2.8 inch spread was the tracker losing the trail leg against the net in half the frames.
Check the file before you trust the analysis
Thirty seconds with ffprobe settles arguments about what you actually recorded:
$ ffprobe -v error -select_streams v:0 \
-show_entries stream=width,height,r_frame_rate,nb_frames \
-show_entries format=duration \
-of default=noprint_wrappers=1 IMG_4471.MOV
width=1920
height=1080
r_frame_rate=240/1
nb_frames=1032
duration=4.300000
1,032 frames over 4.3 seconds is a real 240 fps, and 1920x1080 confirms the phone didn’t quietly drop to 720p to sustain the frame rate (several Android handsets do exactly that above 120 fps, so check yours rather than trusting the spec sheet).
The failure case looks like this:
r_frame_rate=30/1
nb_frames=129
duration=4.300000
Thirty fps with a swing that plays back in slow motion means the slowdown has been baked in during export. The visual detail survives, but every timestamp in the file is now wrong by a factor of eight, so tempo ratios, time-to-impact and any velocity the app computes are nonsense. Share slow-motion clips by AirDrop or direct file copy, not through a messaging app, and re-check with ffprobe the first time you use a new route.
Turning readings into practice you can actually do
A number is only useful if it has a drill attached and a way to tell whether the drill worked.
Early extension, from down-the-line video. Draw a vertical line touching your trail hip at address. Check the same line at P6. Club golfers commonly show 2 to 4 inches of pelvis movement toward the ball by then. Drill: alignment stick in the ground just outside the trail hip, or a chair back, 20 balls with a 7-iron at 60% effort, filming every fifth swing. Target: keep contact with the reference, and get the measured drift under an inch. This is the one metric where Sportsbox earns its subscription, because thrust is a depth movement and 2D face-on video is blind to it.
Casting, from down-the-line video plus launch monitor. At P6, compare hand position to clubhead position, then cross-check with attack angle. A 7-iron off a mat wants attack angle somewhere around -3° to -5° with low point 2 to 4 inches ahead of the ball. If your video shows the clubhead overtaking the hands and your monitor shows -0.5°, those two agree and you have a real problem to work on. If the video looks like casting and the monitor says -4.2°, believe the monitor and re-check your camera height.
Tempo, by counting frames. The 3:1 ratio is easy to audit yourself. At 240 fps, a 0.80 second backswing is 192 frames and the matching downswing is 64. Count from the first frame of takeaway to the last frame before the club changes direction, then from there to impact. Most mid-handicappers come in nearer 2.3:1, with the downswing too long rather than the backswing too short. Drill: metronome at 76 bpm, three beats back, one beat down, 30 balls with a wedge.
Lead wrist, face on plus a sensor. Video will show you roughly whether the lead wrist is cupped at the top. It will not give you a number you can practise against, because the wrist is small and often occluded by the grip. HackMotion does give you that number, and if wrist condition is your actual issue, that £250-ish sensor beats any camera upgrade.
A 30 minute practice block that uses all of this: 5 minutes filming a baseline (three swings face on, three down the line, same club, tripod in marked positions), 20 minutes on one drill with the phone still running, 5 minutes filming the same baseline again. Compare the two baselines that evening, not during the session. Judging your own footage between shots is how a decent range session turns into an hour of fiddling.
A filing system that makes six weeks of video worth something
Consistency of setup is what lets you compare across weeks, so record the setup along with the swing. Mark tripod positions on your mat or use a permanent reference at the range (bay number, tee mat corner). Name files so you can find them: 2026-09-30_7i_DTL_240fps_9ft_hand-height_bayC.mov is ugly and takes four seconds to type and will still make sense in March.
Film the same club, same view, same distance, once a fortnight. Four clips per session, not forty. Comparing September’s baseline to November’s tells you whether the work is landing; comparing Tuesday to Thursday tells you about the weather. If you’re picking mounts and tripods that make repeatable positions realistic rather than aspirational, the swing filming kit page covers what actually fits in a bag alongside 14 clubs.
Next time you’re at the range, do this before you hit a ball: put the tripod on the target line (use two alignment sticks, one down the line, one pointing at the camera), set 240 fps at 1x, film three 7-irons, and run one clip through ffprobe when you get home. If the frame rate and resolution come back as what you thought you shot, you’ve got a baseline worth measuring against for the rest of the winter.
In this section
The supporting pages under this subject.