move the mouse: aim — the guide line shows the first ball the cue will reach hold / release: charge the power meter and shoot C: continuous collision detection on/off (the green/red bar, top left) B: fire a full-power break without charging T: head-on tunnelling test: one ball, break speed, dead straight R: re-rack While aiming you get a ghost ball at the point of contact, a yellow arrow for where the object ball will set off (along the line of centres) and a pale one for where the cue ball will go (along the tangent) — which is the whole geometry of a cut shot, drawn from the same quadratic the physics uses. Top-left of the rail: the CCD telltale, then amber ticks for contacts that happen strictly inside the current frame, then a running total. Below them, in red, contacts the resolver had to handle from an already-overlapped state and the ones it could not handle at all. With CCD on the two red bars never appear.
Pool with continuous collision detection: every contact is found by solving the time-of-impact quadratic, not by stepping forward and checking for overlap. WHY THAT MATTERS, MEASURED. Discrete detection only works while a ball moves less than its own diameter per frame - below 4r/dt, which here is 960 px/s. A break is about 1400 px/s. On the same break: CCD resolved 71 contacts with none late and none refused; whole-frame stepping found 46, missed 6 outright, resolved 13 while the balls were already interpenetrated, and REFUSED 4 - because once two balls overlap past their centres the line of centres flips and the pair reads as separating. There is a deterministic test on the T key: a straight head-on shot. With CCD the cue ends left and the object ball right, which is the only physical outcome. With discrete stepping they end up swapped - the cue passes through. Contacts are resolved earliest-event-first with a re-search after each one, since resolving one collision can create an earlier one. Cushions are linear, pockets use the same quadratic against a 15px circle. The aiming guide draws the ghost ball, the line of centres and the tangent. HONEST LIMITATIONS: no spin or English, friction is applied once per frame rather than integrated, no pocket jaws, and no 8-ball or 9-ball rule set - it is a physics sandbox with a full rack. All original - code, art and sound. See Inside is open.