AI Golfer
§2 Section 2 of 6 2,739 words · 12 min

AI Swing Analysis Apps, Tested on the Same Swing

Most comparisons of swing apps are really comparisons of marketing pages. Someone downloads five apps, films five different swings on five different days, and reports which interface they liked. That tells you nothing about whether the numbers are real.

So we did the opposite. One golfer (WHS index 11.4), one 7-iron, one tripod position marked on the mat with gaffer tape, and one afternoon. Every app got the same video files. Where an app produced a number, we asked a simpler question than “is this insightful?” We asked: if I film the same swing again five minutes later, does the app give me the same number back? That single test does more to separate the best golf swing analyser app from the rest than any feature list.

The rig, the swings and the reference data

Capture was two phones on tripods. Down-the-line: iPhone 15 Pro, 1080p at 240fps, lens centre at 1.02 m (hand height at address), 2.6 m from the ball, positioned on the toe line extended. Face-on: iPhone 13, 1080p at 120fps, 2.4 m away at sternum height. Both tripod feet were taped to the mat so we could return to the exact position after deliberately moving them. Conditions: outdoor bay, dry, bright overcast, roughly 11am in late September.

Three swing types were recorded:

  • Swing A: normal 7-iron. Five repetitions, filmed as five separate clips.
  • Swing B: the same golfer standing two inches closer to the ball with the handle deliberately an inch higher at address, which reliably produces more early extension and a steeper shaft. One rep.
  • Swing C: swing A again, thirty minutes later, after the tripods had been moved and returned to the tape.

Reference data came from a Rapsodo MLM2PRO for club path, face angle and delivery numbers, and a HackMotion Plus for lead-wrist angles. Neither is a lab. A marker-based system like GEARS is the actual reference standard and costs more than a decent used car, so the honest position is that Rapsodo and HackMotion are independent measurements rather than true ones. When a video app disagrees with both of them at once, the video app is usually the one that is wrong.

Swing A averaged: club speed 84.3 mph, ball speed 111.4 mph, smash 1.32, launch 18.9°, spin 6,780 rpm, carry 152 yards, club path +1.8° (in-to-out), face to path −0.9°. HackMotion had the lead wrist at 24° extended at the top and 11° extended at impact.

The physics your phone cannot get around

Before any app is to blame, some of this is arithmetic. A 7-iron head at 84 mph is travelling 37.5 m/s. At 30fps, the clubhead moves 1.25 metres between consecutive frames. There is no impact frame. There is a frame before impact and a frame after it, and whatever the app labels “impact” is a guess sitting somewhere in a 1.25 m window.

At 240fps that window shrinks to 15.6 cm, which is about 9° of shaft rotation about the hands. So the best case on a current iPhone is that your measured shaft lean at impact carries roughly ±4.5° of unavoidable error before you account for anything else. If an app tells you your shaft lean went from 6.2° to 7.9° after a lesson, it has told you nothing.

Rolling shutter compounds it. The sensor reads out top to bottom rather than all at once, so a shaft sweeping through the frame is recorded at slightly different moments along its length and renders as a curve. At 240fps the readout is under about 4 ms, which still smears the clubhead by roughly 15 cm relative to the grip. Any app that claims to auto-detect “shaft plane at P6” from a phone clip is fitting a line to a banana.

Then there is the 2D-to-3D problem. Phone apps overwhelmingly run a pose model (MediaPipe’s 33-landmark BlazePose, or Apple’s Vision body-pose request, which returns 19 joints) on a single camera. Neither returns depth. “Hip turn 45°” from a face-on video is an inference from how the pelvis landmarks foreshorten, not a measurement. Sportsbox is the notable exception in the consumer tier because it runs a monocular 3D model trained specifically on golf, and it earns genuinely different behaviour as a result. It is also why Sportsbox is fussy about camera placement in a way Hudl Technique never needs to be.

Higher frame rate is not free, either. At 240fps the exposure per frame is 4 ms at most, and under UK cloud that forces ISO up and brings noise with it. Noisy dark frames degrade the pose model. In practice, 120fps in good light beats 240fps in poor light for any app doing automatic keypoint detection. Save 240fps for when the sun is genuinely out, or when you only care about eyeballing positions rather than reading numbers.

What each app returned

Sportsbox 3D Golf was the only app that produced a body-motion dataset worth arguing with. From the face-on clip it returned pelvis and chest sway, thrust, lift, bend, side bend and turn, plus hand depth and hand height, at address, top, impact and finish. Trimmed export from Swing A, rep 1:

position  pelvis_turn  chest_turn  pelvis_sway  pelvis_thrust  chest_bend
address        0.0°        0.0°        0.0 in        0.0 in       32.4°
top           43.1°       86.4°        2.1 in       -0.4 in       28.9°
impact        38.7°       31.2°        0.6 in        2.6 in       21.0°

The 2.6 inches of pelvis thrust toward the ball between address and impact is the early extension, and chest bend losing 11.4° is the same story told from the top down. That matches what the coach’s eye sees on the video, and it matches the golfer’s miss pattern (blocks and the occasional hook when the hands save it).

V1 Golf remains the most useful pure video tool of the group. The auto-trace and the split-screen against its pro library are fast, the frame-by-frame scrubbing is clean, and the line and angle tools do what you tell them. What V1 does not do is measure your body in three dimensions, and it does not pretend otherwise. Its “AI” is mostly auto-detection of swing start, top and impact, plus tracing. On our clips it found the top within one frame every time at 240fps and mislabelled impact by two to four frames on three of five reps, which is exactly the 15 cm problem described above.

Onform is built for coach-to-pupil workflow rather than measurement: auto-capture from a tripod, voiceover, drawing, comparison, and a feed your coach can comment on. As an analysis engine it is close to V1. As a way to get a real human to look at your swing between lessons it is better than either.

Swing Profile auto-detects swings out of a long continuous recording, which is the single most underrated feature in this category. Film a whole range basket in one take, and it chops out 40 swings and lines them up. Its tracing is good. Its numeric output is thin, and its pro-comparison library is smaller than V1’s.

The GPT-wrapper category is where this got ugly. These are the App Store listings promising instant AI coaching from an uploaded clip. We put the identical file through one of them three times in fifteen minutes. First response: “classic over-the-top move, the club is coming across the ball.” Second: “early extension through impact is costing you consistency.” Third: “you’re casting the club from the top, losing lag.” The Rapsodo had club path at +1.8° in-to-out on that swing, so “over the top” is not a nuanced disagreement, it is wrong. HackMotion had the lead wrist going from 24° extended to 11° extended through the downswing, which is the opposite of casting. Only the second answer was right, and it was right the way a horoscope is right: early extension is present in a large majority of amateur swings, so guessing it pays.

Five swings, one tripod: the repeatability test

This is the test that decides whether you can track progress. Five reps of the same swing, same tripod position, same clothing, run through Sportsbox:

MetricS1S2S3S4S5Spread
Pelvis turn at top43.1°41.8°44.6°42.2°43.9°2.8°
Chest turn at top86.4°84.1°88.9°85.0°87.2°4.8°
Pelvis sway at top2.1 in1.9 in2.4 in2.0 in2.2 in0.5 in
Pelvis thrust at impact2.6 in2.9 in2.4 in3.1 in2.7 in0.7 in
Hand depth at top11.4 in11.1 in11.9 in11.2 in11.6 in0.8 in

Part of that spread is you: no golfer repeats a swing to a tenth of a degree. Part of it is the model. You cannot separate them without a lab, and for practical purposes you do not need to. What matters is the combined figure, because that is your noise floor. Pelvis thrust has a noise floor of about 0.7 inches on this setup, so a change of 0.4 inches after a week of drills is not evidence of anything.

Uploading the identical file twice returned identical numbers, which confirms the model is deterministic. All of the spread above comes from re-filming, not from the app being moody.

Swing B, the deliberately steep and crowded version, gave pelvis thrust at impact of 4.1 inches against a baseline mean of 2.74. That is a 1.36-inch change against a 0.7-inch noise floor, so the app detected a real, intentional change. That is the pass mark. An app that cannot distinguish a deliberately induced fault from its own noise cannot help you.

Move the tripod, change the diagnosis

We then broke the setup on purpose, re-filming Swing A with one variable altered each time:

Change from baselinePelvis turn at topPelvis thrust at impact
Baseline (1.02 m, 2.6 m, on toe line)43.1°2.6 in
Camera 40 cm further back43.4°2.7 in
Camera raised to 1.30 m39.2°3.4 in
Camera 30 cm inside the toe line41.0°2.2 in
Baseline, loose waterproof jacket37.5°3.3 in

Distance barely matters. Height matters a great deal: raising the phone 28 cm shifted pelvis turn by 3.9° and thrust by 0.8 inches, both larger than the noise floor, which means a lazy tripod setup will manufacture a fault that is not there. The jacket result is the one nobody warns you about. Pose models infer the pelvis partly from silhouette, and a flapping waterproof cost 5.6° of pelvis turn, which is bigger than any real change you will make in a month of practice.

Practical consequence: if you are going to track anything, tape or chalk the tripod position, note the height in centimetres, and film in a fitted top. Then your comparisons mean something.

Which numbers you can act on

Grouping everything by whether the number survives its own noise floor:

Trustworthy on a phone. Pelvis and chest sway and thrust in inches, measured as change from address to impact. Tempo ratio, if measured at high frame rate. Head position change. Hand depth at the top. Address posture, filmed properly. These are large, slow, low-frequency movements, and pose models handle them.

Trustworthy with caveats. Pelvis and chest turn in degrees. Directionally sound, worth about ±3° and ±5° respectively, so use them to confirm a big restriction rather than to chase 5° of extra turn.

Not trustworthy from video. Shaft lean at impact, dynamic loft, club path, face angle, attack angle, and anything described as “lag angle at impact.” Get those from a launch monitor or a wrist sensor.

Tempo deserves its own note because the maths is so clean. Our golfer’s backswing ran 0.75 s and downswing 0.258 s, giving 2.91:1. Counted in frames at 240fps that is 180 and 62, and a one-frame error moves the ratio by about 0.05. At 30fps the same swing is 22.5 and 7.7 frames, and depending on rounding you get anywhere between 22/8 = 2.75 and 23/7 = 3.29. Half a point of tempo ratio, conjured from nothing but frame quantisation. Any tempo feature running on 30fps footage should be ignored.

What we actually practised

Three things came out of this session, and none of them came from the AI text.

Early extension of 2.6 inches at impact, confirmed by chest bend losing 11.4° and by the miss pattern, is the priority. The drill is a chair or an alignment stick butt against the backside, hitting half-speed 8-irons, refilmed once a week from the taped tripod position. Target: get mean pelvis thrust under 1.8 inches across five reps, which clears the noise floor by a comfortable margin.

Secondly, the chest turn of 86.4° against pelvis turn of 43.1° is fine. There was a temptation, reading the app’s “increase your shoulder turn” prompt, to chase more. The separation is already 43°, and adding rotation would have been busywork.

Lead-wrist work came third, and it came from HackMotion rather than any video app. Going from 24° extended at the top to 11° at impact is a reasonable pattern; the issue is that rep-to-rep it ranged from 7° to 18° at impact, and that variation lines up with the face-to-path scatter on the Rapsodo. Video could not have found that, at any frame rate.

Free tiers, paid tiers, and what the money buys

There is a real question of whether any of this needs a subscription, and for a lot of golfers the answer is no. A free app that scrubs frame by frame at 240fps, plus a taped tripod position and a bit of discipline, gets you most of the way. We have written up where the free options genuinely hold up and where they quietly stop at /free-swing-analysis-apps/, including which ones will strip your slow-motion footage back to 30fps on import, which is the most common way people ruin good video without realising.

Roughly, at the time of writing: Hudl Technique is free. V1 Golf is free with a paid tier around £10 a month. Onform is free for the golfer and paid for the coach. Swing Profile sits in single figures monthly. Sportsbox 3D Golf runs in the region of £15 to £20 a month on an annual plan. HackMotion hardware starts around £249 and runs to about £429 for the Pro tier. A Garmin Approach R10 is roughly £479 and a Rapsodo MLM2PRO around £599 to £699, with Rapsodo’s fuller feature set behind a further annual subscription.

The ranking that falls out of the testing is straightforward. If you want measurement, Sportsbox is the only consumer video product returning body numbers that clear their own noise floor, and it is the closest thing to a best golf swing analyser app for someone tracking a specific body-motion change. If you want to see your swing clearly and compare it to something, V1 or Swing Profile do that for a fraction of the cost. If you want club delivery numbers, no video app of any price will give them to you, and £479 on a launch monitor beats £200 a year on an app that guesses.

The capture protocol worth copying

DOWN-THE-LINE
  height:   hand height at address (measure once, write it down)
  distance: 2.5-3.0 m from ball
  position: on the toe line extended, phone parallel to target line
FACE-ON
  height:   sternum
  distance: 2.2-2.6 m, square to the golfer
BOTH
  fps:      120 in cloud, 240 in sun; never 30
  frame:    full body plus club head at the top, plus 20 cm headroom
  clothing: fitted top, tucked; no waterproofs if you want numbers
  marking:  tape the tripod feet, photograph the setup once
  reps:     5 swings minimum, compare means and spreads, never singles

Next range session, film five swings, note the mean and the spread of one metric you care about, and write both numbers down. In three weeks, film five more from the same tape marks. If the means have moved further than the spreads, something has actually changed, and you will be one of very few club golfers who can prove it.

In this section

The supporting pages under this subject.