Project 1 · TIGP Basic Skills for Experimentalists, 2026
An 8-hole browser golf game where every hole breaks a different rule of physics instead of just adding another hazard. You still aim, pull back, and putt — but the wind gusts mid-flight, one green has almost no friction, one hole hides a gravity well, and one flips your controls without warning. Each hole names the rule it's bending on an actual scorecard stamp.
The baseline layer common to all of them: every wall bounce applies a randomized restitution and a few degrees of angular jitter, so no rebound is ever perfectly predictable — the fairway itself has noise.
A wind vector re-rolls every ~2.5s and pushes the ball mid-flight — line up for the gust you saw, not the one you'll get.
Prevailing GustFriction drops to near zero across the whole green. You stop the ball by banking off the back wall, not by rolling it out.
Frictionless ClauseA sand pit sits directly on the straight line to the cup, decelerating the ball hard enough to strand it mid-fairway.
Quicksand ClauseAn inverse-square gravity well bends your putt on approach — and swallows the ball outright if you drift too close to its center.
Gravitational ExemptionThree teleporter pads each send you to a random one of the other two — sometimes forward, sometimes straight back where you came from.
Nonlocal ReliefThe hole itself orbits its marked position in a slow circle, so the target you aimed at has usually moved by the time the ball arrives.
Mobile Pin PlacementControls are mirrored left-to-right for this hole only. A second, bolder aim line shows the shot you're actually about to take.
Inverted JurisdictionGusting wind, a frictionless patch, and a drifting cup, stacked on the same hole. Everything you learned, at once.
All Clauses ApplyA single HTML file, canvas 2D, no physics engine or dependency — the whole simulation is under 500 lines of vanilla JavaScript, stepped on requestAnimationFrame.
v *= e^(−k·dt), with k read from whatever zone the ball is over — grass, sand (k≈6.5), or ice (k≈0.07).1/d² of the distance, capped so it stays controllable outside the capture radius and inescapable inside it.