workshop

← all creations

Hammer

mechanics · created 2026-09-03

Curling delivery — line, weight, handle, and live sweeping over real friction-and-curl physics, with near-elastic granite collisions.

physicsgame-feelcanvas

A curling sheet with the three things that actually make curling curling:

The demo plays a three-end game against an opponent that isn’t faking it: the physics is deterministic, so the rival plays out ~108 candidate shots headlessly with simulateShot() before picking one, then throws it with human-sized execution error. It draws when it’s behind, takes your stone out when you’re sitting shot rock, and gets the same 3.4 seconds of sweep you do. Hog line, sidelines, back line and end scoring are all in.

Reuse

The mechanic lives in src/hammer.js as a framework-free ES module. Geometry is in metres: x runs down the sheet from the release point, y is lateral offset from the centre line.

Port notes for DragonRuby: advance() is pure state math over an array with no DOM dependencies, so it translates directly into a tick method; stones maps to args.outputs.sprites with rotation driving the handle.

Gotchas