English 한글

EasyPutt · User Guide

EasyPutt 로고

Glance at the green — EasyPutt tells you the exact line

An ARKit-based golf putting range finder. Sweep the camera across the ground between ball and hole to collect a field of surface normals, then run a real rolling-physics simulation to work out which direction and how hard to hit.

iOS · LiDAR required Real device only

Quick start

One measurement is three moves: capture, scan, capture.

  1. Capture the ballLine up the center reticle (a "+" that turns green, yellow, or blue depending on ground-tracking quality) on the ball and tap the + button. Terrain scanning starts the moment you do.
  2. Scan between ball and holeSweep the camera slowly across the ground between ball and hole. The 3×3 grid at the center of the screen keeps collecting the position and surface normal at each point it points to. Pinch to resize the grid.
  3. Capture the holeLine up the reticle on the hole and tap + again — scanning stops and both solvers run at once. Results usually land within about a tenth of a second.
  4. Read the resultCheck the result card up top and the trajectory lines in AR. Tap the card to collapse it to one line; tap again to expand.
  5. ResetWhen you're done, reset clears the ball/hole positions, the computed result, all terrain data, and every AR marker so you can start fresh.
Pinch near the top-right corner to bring up a zoom slider (1.0×–3.0×), and tap the camera icon to save the current AR view to Photos.

Reading the results

What each line on the result card means.

EasyPutt result card example — actual distance 2.46m, flat-adjusted 0.29m, aim description and Boundary A/B (grass background)
1 2 3 4
  1. ⬇️ The arrows stretch long toward the holeLong fall-line arrows pointing toward the hole mean a fairly steep downhill here.
  2. 📏📐 Actual 2.46m, flat-adjusted 0.29mThe slope is so strong that roughly a tenth of the actual distance's effort (about what a flat 0.29m putt takes) is enough to reach the hole.
  3. 🎯 0.5m spot: 2.2cm right0.5m in front of the ball, aim 2.2cm to the right of the line extended through the hole.
  4. ↕️ Valid range: -1.4cm to +12.7cmAim anywhere in this range off hole center (roughly half a cup's width to the right) and it still goes in at this pace.

Boundary A / Boundary B — the two edges of the left/right aim window that "still goes in if you aim anywhere inside it," given a reasonable stroke strength. Uphill putts tend to widen this window; downhill putts narrow it.

Even when the distance is too far (roughly beyond 12m) or the solver can't find a solution, EasyPutt still shows the actual and flat-adjusted distance, plus a rough uphill/downhill and left/right lean reading derived purely from the scanned terrain (e.g. "⬇️ Downhill (about 2.3°) · ➡️ Right side is lower (about 1.1°)"). The idea is that you never lose your sense of the lie, even without a precise aim angle.

How it's computed: the ball-to-hole line is sampled every 10cm, the terrain normal is looked up at each point, and all the tilt directions are averaged. If the average direction points toward the hole, that's downhill; any sideways component reads as left/right lean. Because this treats the whole ball-to-hole stretch as one flat plane, terrain that alternates uphill and downhill along the way can partly cancel out in the average.

Cup-count convention

"N cups out" is measured from the hole's edge, not its center — a point 5.4cm (hole radius) + N × 10.8cm (hole diameter) away from the hole's center.

Hole (10.8cm dia.) edge 1 cup out 16.2cm from center 2 cups out 27.0cm from center
Cup units count how far outside the hole an aim point is. Within 2cm reads as "center of hole", within the hole's radius as "inside the hole", within radius + one ball width as "outside the hole (1 ball)".

AR overlay legend

What each on-screen marking means.

AR view example — white ball, flag, orange/green solid boundary lines, brown/blue dashed boundaries, blue fall-line arrows (grass background)
1 2 3
Blue arrows — fall lineThe horizontal projection of each terrain sample's normal. The arrow points downhill; its length is proportional to the local slope.
Yellow squares — terrain samplesPoints collected while scanning. Their density shows scan quality.
Orange line — Boundary A (backward+forward)One edge of the aim window's trajectory.
Green line — Boundary B (backward+forward)The opposite edge of the aim window.
Dashed brown — Boundary A (backward-only)The same edge from the faster approximate solver. The closer it sits to the solid line, the more the two solvers agree.
Dashed blue — Boundary B (backward-only)Same as above.
White ball / flagYour captured ball and hole positions, shown at true size.

Reading this screen — left photo

  1. 📏📐 Actual 2.23m, but flat-adjusted is larger: 3.73mFlat-adjusted being larger than actual distance signals an uphill putt — swing with the effort of a flat 3.73m putt.
  2. 🎯 left 4.5 cups out · 0.5m spot: -12.7cm0.5m in front of the ball, aim 12.7cm to the left of the line extended through the hole.
  3. ↕️ Valid range: left 6.0–4.5 cups out (-68.3cm to -55.2cm)Both edges sit to the left, and the window is wide — a typical trait of uphill putts giving more room to aim.

Even before you look at the computed result, the blue arrows alone tell you something about the terrain — parallel to the line means a straight uphill or downhill putt, tilted across it means side-slope (a break factor).

Settings

The sheet opened from the gear button at the bottom.

Settings
Normal Vector Diagnostics
Solver Tuning
Advanced: Solver Comparison
📏 Actual distance: 2.23m
📐 Flat-adjusted: 3.73m
B  F
Elapsed — B+F: 18.3ms / B-only: 9.2ms
[Backward+Forward] Valid direction: Yes
🎯 Left 4.5 cups out · 0.5m spot: -12.7cm
Boundary A: aim left 6.0 cups out (-68.3cm)
Boundary B: aim left 4.5 cups out (-55.2cm)
[Backward-only] Valid direction: Yes
🎯 Left 3.0 cups out · 0.5m spot: -8.4cm
Boundary A: aim left 3.5 cups out (-42.5cm)
Boundary B: aim left 2.5 cups out (-32.9cm)
ItemWhat it does
StimpmeterGreen speed (rolling resistance). Enter a measured stimp distance and the deceleration constant is recalculated immediately.
Show terrain slopeToggles the yellow squares and blue arrow overlay on or off.
Normal vector diagnosticsShows the average normal and tilt, plus a sample list sorted by steepest tilt.
Solver tuning · target overrun distanceDirectly adjusts the target speed at the hole — enough to roll a little past if missed, rather than dying exactly at the cup. The larger this value, the narrower the aim window (Boundary A/B) tends to get — V1 had no equivalent control.
Advanced: solver comparisonShows both solvers' results and timing for the same input, side by side.

How it works

A summary of the technical documentation.

Terrain: a field of normal samples, not a plane fit

Approximating a green as a single plane tends to average away local undulation. EasyPutt instead stores hundreds of raw (position, normal) samples as-is, and at every simulation step looks up the horizontally-nearest sample's normal at the ball's current position.

Physics: a rolling model calibrated to measurement

Two forces act at every step — slope acceleration (gravity projected onto the surface, scaled by the 5/7 rolling-sphere inertia factor), and rolling resistance derived from the stimpmeter value. The hole-out radius is simply the hole's own radius (5.4cm) — the ball falls in whenever its center of mass crosses over open space above the cup.

Solver: backward tracing, then forward re-verification

The main solver traces backward in time from the hole to the ball to build a candidate, then repeatedly corrects it against a forward simulation from the ball. A separate backward-only solver (2–3× faster, an approximation) solves the same problem independently as a cross-check.

Improvements over V1

Based on the codebase of V1, the first version of this app, and a field test on 2026-07-28. These are current observations, not settled conclusions.

V1 user guide screen (the "TingPutt" in the screenshot was its development project name at the time) — dark UI, subscription status

When V1 first shipped, its project name had changed several times during development — TangTong → TingTing/TingPutt → PuttPro — but it reached the App Store under the same name as today: EasyPutt. This version is an upgrade of that same EasyPutt. It reconstructed the entire rectangular area between ball and hole as a tile mesh, and found the aim by brute-force sweeping a speed × direction grid with RK4.

The three biggest differences you'll feel

  1. The scanning step is goneV1 required scanning every tile covering the whole terrain, one at a time, via long-press-and-drag. EasyPutt just needs the ball and hole marked — the corridor you naturally walk between them gets sampled along the way.
  2. Calculation is much fasterSweeping every speed and direction through RK4 gave way to narrowing candidates via backward tracing and verifying forward — solver time dropped to single- or double-digit milliseconds.
  3. More to adjust in settingsThe target overrun distance at the hole can be tuned directly, and new screen zoom and AR-view-to-Photos capture features were added.

Differences observed in the field (8 identical putts, same locations)

  • Subtle slope appears to be picked up more sensitively. On a paved plaza with an average tilt of 1.9–2.9°, V1 added only +0.07–0.22m to the flat-adjusted distance — reading close to flat — while EasyPutt added +0.56–0.71m, detecting the slope. Some of this gap may come from the target overrun distance setting — a lower overrun means a slower target speed, which leaves the ball exposed to the slope longer and produces more break. Try tuning the overrun value in Settings to match the sensitivity you want.
  • Local terrain right along the line seems to carry through to the reading. On a steep dirt path with an 11–13° collapsed slope confined to a strip 0.65–0.9m off the line, EasyPutt read the putt as nearly straight based on samples near the line itself, while V1's plane fit appears to have blended in that side slope and produced a noticeably larger break.
  • Only 1 of the 8 locations — an extreme steep downhill — failed to find a solution.
V1's AR screen — tile mesh and aim window

V1's actual AR screen. The ball-to-hole rectangle is broken into individual tiles, each with its own arrow showing the local slope at that spot. The header text (Left Inside(-1) ~ Right Edge(2)) is the aim window computed that way.

Structural differences

V1

  • Reconstructs the entire ball-hole rectangle as a tile mesh — each tile raycast individually via long-press-and-drag, with retries on failure
  • Brute-force sweeps a speed × direction grid with RK4 — heavy enough to need a loading spinner; gated putts over 1.5m behind a paywall
  • The RK4 search result and the on-screen approximation formula are computed independently and can disagree
  • "Flat-adjusted distance" was implemented three separate times in the code (one path dead), and height correction for diagonal tile crossings was left unimplemented

EasyPutt

  • Lightly collects (position, normal) samples along the corridor you actually walk from ball to hole — the scan is the walk
  • Narrows candidates via backward tracing, then verifies with a forward simulation — both solvers together run in the single- to double-digit milliseconds
  • Aim description, cup count, and cm offset all come from a single pipeline (aimOffsetCentimeters), so the numbers can never disagree with each other
  • Even when distance is too far or no solution is found, a scan-derived uphill/downhill and left/right lean reading is always shown instead
In fairness, V1's tile-mesh approach can in principle offer denser coverage, since it reconstructs the entire area between ball and hole rather than just the corridor someone happened to walk. EasyPutt trades that potential coverage for trusting only what was actually walked and scanned — in exchange, calculation within that path is far lighter and faster. It's a coverage-versus-speed tradeoff, not a strict win in every direction.

Limitations

  • The backward-only solver can be inaccurate or diverge on steep slopes — the backward+forward (solid-line) result is always the one to trust.
  • Beyond roughly 12m between ball and hole, EasyPutt skips precise calculation entirely — that distance is treated as outside this app's realistic putting range.
  • Terrain samples only exist near the path that was actually scanned, so trajectories that stray far from that corridor draw on less representative samples.
  • Requires ARKit camera tracking, so it only runs on a real device.