Project 1 · TIGP Basic Skills for Experimentalists, 2026

Unfair Golf

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.

Unfair Golf gameplay: a golf ball on a striped fairway, aim line drawn, wind indicator in the corner, scorecard stamp reading a hole's broken rule.

Eight holes, eight ways to cheat

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.

HOLE 1 · PAR 2

The Breeze

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 Gust
HOLE 2 · PAR 3

Glass Fairway

Friction drops to near zero across the whole green. You stop the ball by banking off the back wall, not by rolling it out.

Frictionless Clause
HOLE 3 · PAR 3

The Bunker Trap

A sand pit sits directly on the straight line to the cup, decelerating the ball hard enough to strand it mid-fairway.

Quicksand Clause
HOLE 4 · PAR 3

The Void

An inverse-square gravity well bends your putt on approach — and swallows the ball outright if you drift too close to its center.

Gravitational Exemption
HOLE 5 · PAR 4

Triple Warp

Three teleporter pads each send you to a random one of the other two — sometimes forward, sometimes straight back where you came from.

Nonlocal Relief
HOLE 6 · PAR 3

Runaway Cup

The 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 Placement
HOLE 7 · PAR 2

Looking Glass

Controls are mirrored left-to-right for this hole only. A second, bolder aim line shows the shot you're actually about to take.

Inverted Jurisdiction
HOLE 8 · PAR 5

The Full Rig

Gusting wind, a frictionless patch, and a drifting cup, stacked on the same hole. Everything you learned, at once.

All Clauses Apply

How it's built

A single HTML file, canvas 2D, no physics engine or dependency — the whole simulation is under 500 lines of vanilla JavaScript, stepped on requestAnimationFrame.

Rolling
Velocity decays exponentially each frame, v *= e^(−k·dt), with k read from whatever zone the ball is over — grass, sand (k≈6.5), or ice (k≈0.07).
Bouncing
Each wall is a line segment; the ball reflects about the segment's normal at the closest point, with a randomized restitution (0.35–0.88) and a few degrees of jitter added to every bounce.
The Void
Acceleration toward the well scales as 1/d² of the distance, capped so it stays controllable outside the capture radius and inescapable inside it.
Sinking a putt
Capture requires both proximity to the cup and a low enough speed — arrive too fast and it's a lip-out, not a hole.
Scoring
Strokes per hole are tallied against par; a hazard costs the stroke you just played plus a one-stroke penalty, same as a real water hazard.