Skip to content
SnookerSim: Snooker With Physics You Can Measure

SnookerSim: Snooker With Physics You Can Measure

A 3D snooker table you can just walk up to and play. Side spin curls the cue ball off the cushion, deep screw draws it back, and a cage-and-jaw view shows exactly why your ball rattled out. Physics in plain TypeScript, no off-the-shelf engine. Shareable positions, MP4 capture, real recorded sound.

Details

Published

What it is

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.

How it’s made

Technology
WebGLTypeScript
Framework & Tool
Three.js
Technique
Physics
Domain
Game