Touch: drag anywhere to pull back and aim, release to putt; the guide shows the ball's path to its first bounce; tap the icons to pause, re-tee, mute or toggle music; tap to advance between holes · Keyboard: Left/Right arrows (or A/D) to aim, Up/Down (or W/S) for power; Space or Enter to putt; R to re-tee; P or Esc to pause; M to mute; N or Space to continue. Mouse: drag to aim, release to putt.
About:
A top-down mini-golf game in the spirit of the 2000s Flash classics, made in-house for Leetdom. The course winds through the ruins of a great stopped machine: a mossy felt green laid over brass gearwork, weathered stone walls, and mechanisms that still turn on their own clock. You putt by dragging back from the ball like a slingshot and letting go; a dotted guide traces the ball's path up to its first bounce so you can plan a bank shot.
The nine holes teach before they test. First Light is a gentle funnel to learn the pull. The Elbow has no straight line to the cup, so you bank off a wall to turn the corner. Threadneedle is a narrow gate where soft and straight beats hard and wild. Dunes drags the ball down through sand. The Moat costs you a stroke and sends the ball back if you miss the bridge. Clockwork puts a turning brass arm across the lane, so you wait for the gap. Kickers flings the ball off an arrow pad and up between two glowing bumpers. The Gate adds a shutter that opens and closes on a rhythm and a stone block that slides across. Ruinworks, the par four finale, stacks a spinner, sand, water, a bumper and a central ruin into one hole and asks for your birdie.
The physics run on a fixed 240 Hz step, so the same putt always plays out the same way, and the mechanisms move as a pure function of the clock. Water resets you with a one-stroke penalty, sand saps your roll, bumpers kick back harder than they hit, and the cup will only hold a ball that arrives slow enough — hit it too hard and you lip out. There is a per-hole scorecard, a round total against par, a one-to-three-star medal, and your best round is saved on the device.
Drag anywhere to aim and release to putt; tap to advance. Everything in it, the art and every sound, is drawn and synthesised in code, with no image or audio files at all.
Credits:
Made by Leetdom, 2026. Written for Leetdom, and it lives here.
Phone check: 2026-10-03: built and tested by the remake build agent for assignment #59. The physics live in sim.js and the course in holes.js, both of which run unchanged under node. Node gate (scratch/test-sim.js): the same putt replays bit-for-bit (determinism holds across irregular frame times via the fixed 240 Hz accumulator); a 2592-shot sweep across all nine holes never lets the ball tunnel a wall, escape the board, or fail to come to rest; and a greedy solver clears every hole at or under par (course par 28, solver total 10). In the browser via playwright-core + CDP: real touch on a 390x844 portrait phone (title, tap Tee Off, drag-to-aim-and-release putts the ball with strokes read back from the page 0->1, the ball moves then settles or sinks), a hidden tab pauses the game and P resumes it, an 844x390 landscape resize keeps play running, and a full debug round reaches Round Complete with Play Again restarting at hole 1; a run with localStorage throwing still loads and plays; a 1280x800 desktop plays with keyboard aim + Space to putt, a mouse drag to putt, and R to re-tee. Zero console errors and zero external network requests across all of it (scratch/browser-test.js, 18/18 pass). Audio rendered offline through the game's own buildGraph/buildVoices code (scratch/audio-measure.js, 30 s at 48 kHz): full-mix peak -2.1 dBFS and SFX-only peak -1.9 dBFS (the limiter holds it under -1 with many sounds stacked), the ambient pad sits 12.5 dB (RMS) under the effects, the scheduled-silent tail measures -240 dBFS so silence between sounds is true digital silence with no noise floor, and energy above 6 kHz is ~22 dB below the mix with no single looped droning voice. All art is drawn procedurally on canvas and every sound is synthesised with WebAudio; there are no image or audio asset files, no dependencies, and no network use.
Rate this game:
One vote per game each month.
Play next:
Drip DropAim a brass watering spout, let a single dewdrop fall through a night greenhouse of glass buds, and open every orange bloom before your ten drops run out. Five gardeners, 34 boards, 16 challenges.
Curve CourtA first-person neon court. Bend the ball through depth with spin, wrong-foot an authored ladder of rivals, and smash the target plates on the back wall.
Hamster HeistSteer Tuffet the hamster through seven rooms of a cosy house, eat every sunflower seed, and stay out of reach of four house cats who each hunt in their own way. Grab a chilli and the tables turn.
Hungry VineSwipe to steer a glowing vine through a moonlit garden. Eat dew, grow longer, and never bite your own tail.