Open source golf infrastructure

Golf tech, in the open.

The maps, distances and course data that golf software runs on sit behind licences and logins. We build the open versions instead — and the apps that prove what they are good for. Everything is public, forkable and free to mirror.

two projects·public repos·no account, no key·data stays under ODbL

Project 01 · shipping

OSM Course Mapper

Turn a course you know into accurate OpenStreetMap geometry, one hole at a time — without learning what a way is or what golf=bunker means.

Golf courses are among the worst-mapped common features in OpenStreetMap: thousands have a boundary and nothing inside it. The people who could fix that are golfers who know one course intimately, and they are exactly the people existing editors turn away.

So this tool asks golf questions instead. Pick a course, see what OpenStreetMap already holds, draw the line each hole plays — and get back proposed polygons for the green, tees, bunkers, water and fairway, segmented from public-domain aerial imagery and checked against the course's own scorecard.

Scope US courses
Confirmed by a human
Imagery NAIPpublic domain
Data licence ODbL 1.0
quickstart
npm ci
npm run dev            # http://localhost:5173

# feature detection is optional — the app runs
# browser-direct against public APIs with no key
Nothing here writes to OpenStreetMap yet

The upload path is deliberately not built. Contributor decisions — confirmed and rejected, with geometry and imagery provenance — persist server-side, so the record accumulates while the write path stays deferred.

OSM Course Mapper reviewing hole 1: aerial imagery with a drawn playing line beside a review rail showing per-tee yardages

Reviewing hole 1 · the drawn line measures 553 yd along OpenStreetMap's geometry against 484 yd on the card — the tool says so instead of picking one.

Approach

Principles the code holds to

These are not aspirations. They are enforced in the code and pinned by tests.

A machine proposal is never drawn as settled

Proposals render amber and dashed, deliberately outside the palette used for what a human confirmed. There is no batch confirm anywhere in the app — that is what keeps this a mapping assistant rather than a bot import.

Detection is an offer, never a gate

Proposals, "nothing here", a timeout and an outright failure are four different states the interface states plainly. All four leave the hole mappable by hand.

Nothing is invented

A course with no boundary comes back absent rather than with a shape drawn for it. A hole that cannot be confidently identified draws no geometry at all — the wrong hole is worse than no hole.

Identification refuses rather than guesses

A single bounding box can return seven golf courses, so a course is adopted only on a confident name match. The same rule runs per hole: par sequence first, course name second, nothing third.

Project 02 · next

A caddie you never look down at.

The mapper exists so this can. Next we are building a golf app for the Even Realities G2 smart glasses, reading the same open course geometry anyone else can pull.

Front, middle and back on the lens while you stand over the ball. No wrist, no phone, no subscription to a course database somebody else owns. Design is underway — the repo opens with the first commit.

Follow the build
What it needs from the open data
Green front, centre and back
green polygon
Carry to clear the bunker
hazard polygons
Where the hole turns
playing line
Par and yardage per tee
scorecard

Every one of those comes out of the mapper. Map a course you play and the glasses know it — for everyone, not just us.

Contribute

Built by people who count their own putts

You do not need to write code to help. Map the course you know best — the tool asks you golf questions and files the geometry for you. If you do write code, the detection service, the geometry module and the review flow all have room.

Browse the repository

Map a course

Pick a US course you play, draw eighteen lines, confirm what the imagery found. An evening's work leaves a course mapped for good.

Take a rough edge

Two are written down: the Overpass query strains on dense clubs against an eight-second budget, and detection quality varies with what the imagery happened to see.

Mirror or fork it

Nothing here depends on us staying interested. The data lands in OpenStreetMap; the code is yours to run.