A 3D snooker table rendered in the browser with the cue ball spinning off a cushion and a predicted-path line tracing its route toward a pocket.
Snooker is a game of millimeters and bad decisions, and SnookerSim gets both right. Open it and there's no menu wall. You walk up to a green baize table and start whacking balls around, which is how anyone actually learns the game. Put side on the cue ball and watch it curl off the cushion. Pile on deep screw and watch it draw back like it thought better of the whole thing. The sounds are real, recorded off an actual table with a phone, so a clean pot lands with that dry, slightly hollow knock you never get from synthesized clacks.
Under the hood is a custom deterministic physics core in plain TypeScript, no off-the-shelf engine doing the heavy lifting. Every coefficient maps to something you can measure off high-speed video of a real shot. The shot recommender doesn't bluff either: it runs candidate shots through that same physics with multi-shot lookahead and scores what actually happens, not what should. Three.js paints the table, lighting, chalk puffs, and predicted-path lines, while small per-feature modules keep the render loop from wrestling a reconciler. Things worth prodding: any layout encodes straight into the URL, so you can fire a frame at a friend as one link.
- Live Demo: https://snookersim.com
- Author: Anonymous