Skip to main content
← Back to articles

The Secret is in the Dirt: Building SwingReview

Golf should be the easiest game there is. There's no opposing team, no clock, and the ball just sits there — one of the few targets in sport considerate enough to hold still and wait for you. So it’s a real achievement that I can stand over it, with all the time in the world, and still send it flying into the trees. And yet I keep coming back, chasing the rare strike that comes off the face so clean I know where it’s going without looking.

Compounding the misery of golf is the YouTube-industrial complex, which operates on the delusional premise that a lifelong struggle with physics can be solved by a three-minute video and a $200 piece of molded plastic. But if the secret to a great swing could be bought off Amazon, golf wouldn't be worth playing. The only real solution is the one nobody wants to hear: find a coach and commit to the slow, agonizing process of learning. Hence the famous quote from golf legend Ben Hogan: "The secret is in the dirt."

Most golfers, myself included, have spent too much time on the range "scraping and hitting," hoping that sheer volume will eventually cure a lack of ability. I did this for years, only to find out that motor learning research has shown that kind of practice to be a waste of time. The secret isn't more swings, it's more intentional ones: stop, consider what happened, and form a plan before swinging again.

The problem is that making slow-motion recordings of a golf swing with the native camera app is a clunky, irritating process that kills your flow. To fix that, I made SwingReview. It’s an iOS app that automatically records my swing so I can focus on the motion I'm trying to change.

SwingReview Screenshots

Detecting a golf swing turned out to be tricky. A professional's swing is a blur of violent efficiency, while mine looks like a raccoon fighting its way out of a trash can. I initially tried using simple heuristics to detect a swing, like where a golfer's hands were relative to the rest of their body, but this resulted in many false positives.

Out of curiosity, I set the frontier models loose on this problem. But it turns out these models are a bit like a golfer who has spent their whole life on a driving range: they've been overfitted for the benchmarks, and can't generalize to problems they've never seen before. Opus 4.8 steered me toward something called 'pose motion energy.' The sophisticated term, likely lifted from a research paper, made me think it was close to an answer. But a million tokens later, this turned out to be a dead end too.

For a few more days, I attacked the problem scrape-and-hit style, thinking that if I just made a larger dataset or deposited more tokens in the prompt slot-machine, a solution would reveal itself. But when the breakthrough finally came, it wasn't from a bigger dataset or a more sophisticated approach. I was testing a few hypotheses for why Apple's built-in CreateML action classifiers couldn't generalize to my swing when I realized that they were much more sensitive to swing tempo than I expected. In the end, a hundred or so swings augmented to different speeds was all I needed to train a well-behaved classifier.

Classifier Training Run Graph

After the action classifier was reliably detecting swings, OpenCode and Qwen3.6-27B made quick work of the rest, churning out SwiftUI components and the Next.js marketing site in hours instead of days. SwingReview is not yet where I want it to be — the auto-trimming model still can't handle edge cases like a pump drill where the golfer reverses motion in the downswing — but it works well enough for my needs.

Which I found out a few weeks later when I was back at the range, feeding the mosquitos on a humid Shanghai afternoon. On maybe my hundredth attempt this month, I heard a sound foreign to me. A crisp click, followed by the whistling of a perfectly compressed golf ball piercing through the air. I scurried over to my phone to check the replay, and there it was: my impact position, finally matching what my coaches had prescribed for five years.

Impact Position Comparison

Hogan was talking about golf, but he was right about more than that. The hype around GenAI runs on the same delusion as golf YouTube: that there’s a shortcut for everything. There isn’t — the secret is still in the dirt.

SwingReview is available on iOS, if you've got a swing you're tired of arguing with.