cloudcroft disc golf
Two Cloudcroft disc golf courses, 27 holes, on one live map with a scorecard that works from the parking lot over LTE
The problem
27 holes across two courses at 8,676 feet, with 40 to 80+ feet of elevation swing per hole on the Community course. Until the ground survey lands, pins are geocoded course anchors only.
Who did what
- Bryan Chasko: map, 3D walkthrough and scorecard API
- Ray Haller: built both courses, cutting the Community course out of the hillside over six and a half months; the subject of the map, not a code contributor
Real and simulated
Real: The live map, 3D walkthrough and cloud scorecard run on AWS today. Elevation comes from USGS 3DEP 1-meter data, imagery from NAIP 2022, trails from OpenStreetMap.
Simulated or not yet done: Per-hole tee and basket pins are not surveyed yet; the map shows geocoded course anchors and published distances, with no fabricated pins. The 360-degree ground photos, the demo video and the Android AR app are still to come.
Two public courses at 8,676 feet in the Sacramento Mountains, mapped and put on an explorable map. Three live artifacts below: a 2D map, the Cloud-Cam walkthrough, and the open dataset with its recipe. This page is the entry point for our Weekend Challenge: Map it hackathon project.
the 2D map

What you can do:
- switch between Esri topo and satellite bases from Amazon Location Service
- toggle the trail overlay and the NAIP 2022 imagery overlay
- read hole-by-hole pars and distances, then click a hole row to fly to it
- tap the find-me button to place yourself on the course
- start a round and tap in scores hole by hole; totals sync through a Rust API into DynamoDB, and it works from the parking lot over LTE
- course anchors are geocoded now; per-hole tee and basket pins land with the ground survey
the Cloud-Cam walk

What you can do:
- orbit the whole village on 1-meter terrain
- drop to eye level and walk with WASD
- stand at the Tiki tee, where the 360-degree ground photos will play
- enter VR on a headset browser
- see both course pins, trail ribbons, and illustrative forest (the canopy survey is still to come)
the dataset and recipe

What you get:
- four open sources, each verified covering Cloudcroft before use
- no personal or sensitive data anywhere in the pipeline
- the full recipe: open-data ingest, the CDK stack, the Rust lambdas, and the five steps to map your own course
- code stays private; the pattern is public
USGS 3DEP 1-meter DEM
Project NM_SouthEast_2018. One 248 MB tile covers both courses. Sampled anchor elevations match the National Map point service to 0.1 ft — the elevation source of record for plays-like distances.
USGS NAIP 2022 60 cm imagery
One tile covers both courses, located via the state quarter-quad index. Cropped to a course window for the satellite overlay toggle and draped over the 3D terrain.
OpenStreetMap trails
Live bbox extract: 46 paths plus 26 footways with real trail names, including the hike and bike trail players share with pedestrians. The S3-native Daylight parquet path was attempted and rejected on measurement (no spatial partitioning); same underlying data, bbox-native API, 20 seconds.
ground GPS (in progress)
Every tee pad and basket pinned on foot with averaged phone GPS plus compass bearings. Until those land, the map shows geocoded course anchors and published distances — no fabricated pins. Survey guide is written; the visit is next.
the courses
- Byron Ligon Memorial Tiki DGC: 9 holes, par 27, 901 feet of all-putter golf under aspen and doug fir at the west end of Zenith Park. Redesigned May 2025. Watch for pedestrians on the hike and bike trail.
- Cloudcroft Community DGC: 18 holes, par 63, a wooded mountain track near the old baseball field with 40 to 80+ feet of elevation swing per hole. Opened 2019, rated 4.6 stars from 500+ reviews, and the reason many players make the drive up the mountain.
Both were built by Ray Haller, who cut the Community course out of the hillside by hand over six and a half months. Read the full story in the Cloudcroft Reader.
how it maps to the judging criteria
Written plainly so AI and human judges can check each one.
technical innovation and originality
A real mountain sport dataset — 27 holes across two courses — fused from four open sources onto one map: 1 m elevation for plays-like physics, trail graph for pedestrian safety, aerial imagery for canopy truth, and ground GPS for pins. The 3D walkthrough renders the same dataset as a Babylon.js diorama with orbit, walk, pano-viewpoint, and WebXR modes.
craft and execution
Shipped live on AWS behind CloudFront: Location Service tiles and geocoding, Cognito guest auth shared by web and Android, Rust ARM64 lambdas for plays-like math and scorecards over DynamoDB. Verified in headless Chromium against the live URLs — tiles render, nine hole rows, full scorecard click-path, zero failed requests — plus two blind visual-critic rounds on the walkthrough with published evidence.
usefulness and impact
Players get distances, elevation-aware plays-like yardage, trail crossings, and a scorecard that follows them up the mountain. Course builders get the reusable pattern: the how-this-works writeup documents every ingest script, the CDK stack, and the five steps to map any course the same way.
creativity and storytelling
Two courses hand-built by Ray Haller, who cut the Community track out of a hillside with a chainsaw over six and a half months — now the second-ranked course in New Mexico. The map and the demo video tell that story hole by hole, from the 39-foot Tiki opener to the 80-foot elevation swings on Community.
aws services used and why
| service | role | why this one |
|---|---|---|
| Amazon Location Service | topo + imagery maps, place index, geofence collection, player tracker, route calculator | one managed home for every spatial primitive the app needs; geofences trigger hole arrival on-site |
| Amazon S3 | dataset prefix (DEM grid, NAIP window, trails GeoJSON) and static hosting | open-data tiles stage next to derived JSON; same bucket serves the bundle |
| AWS Lambda (Rust, ARM64) | plays-like distance + scorecard API behind an HTTP API | sub-100 ms math at pennies per round; musl-static for provided.al2023 |
| Amazon DynamoDB | scorecard rounds, on-demand with point-in-time recovery | schemaless rounds, zero ops, survives the phone in a pocket |
| Amazon Cognito | guest identity pool with one scoped role | no logins on the course; the same role serves web and the Android app |
| AWS CDK (TypeScript) | the whole stack as code | one deploy recreates everything; stable L1s where the L2 is still alpha |
hackathon entry checklist
- Live map, publicly reachable on AWS: bryanchasko.com/cloudcroft-disc-golf/app/
- 3D walkthrough with VR toggle: bryanchasko.com/cloudcroft-disc-golf/app/walk.html
- Written project: this page, plus the Builder Center project post (publishes with the demo video)
- Demo video under 3 minutes: pending, recorded after the ground visit.
- Code: private repo; the reusable pattern is the how-this-works writeup
status
Day-one build. Course anchors are geocoded, elevation comes from the USGS 3DEP 1-meter DEM, trails from OpenStreetMap, imagery from NAIP 2022. Per-hole tee and basket pins land with the ground survey — then the AR overlays, plays-like distances, and per-hole geofences switch on. The Android AR app replays the already-verified guest-auth calls and is the stretch goal after submission.