3-cushion simulator

Ball layout gallery

Calculating the predicted path…

Aim127.54°
Power50
Cue elevation5.5°
Tip position

Changes only the tip position · power and elevation stay

Center tip
Playback and game settings / control help

Cue elevation is how far the butt of the cue is raised. 0° is level, and it is set separately from the tip position. Jump shots and strong massé are not supported.

A top tip position is for follow, bottom for draw, and left or right for sidespin. Ball speed ≈ 4.32 m/s · initial squirt 0.00°.

With no sidespin, aim from departure line 6 at first cushion 3, around the lower-left corner. Long → short → long → red → yellow. This differs from the one-cushion (start+target)/2 example.

Half (mirror) system

With no sidespin, aim from departure line 6 at first cushion 3, around the lower-left corner. Long → short → long → red → yellow. This differs from the one-cushion (start+target)/2 example.

After the default shot scores, change the tip and power to compare paths.

See the system numbers and when they apply →
Table and cue calibration

Defaults are reference model values, not measurements of a real table or cue.

3 tips = half the ball radius (15.375 mm). Tip positions with a miscue risk can't be selected. Zooming doesn't change the balls' physical size.

Drag the balls into place, drag an empty spot to aim, set the tip position and power, then shoot. Paths come from a physics model that covers rolling and sliding friction, spin–cushion interaction and ball-to-ball friction (Han 2005 cushion model, Alciatore collision and cue strike).

Drag a ball to move it; drag an empty spot to aim. The yellow ring marks the cue ball you're about to play.

The gray wooden band is the frame (white dots = frame points, corners included); the blue band inside it is the rail (cushion rubber), and the bright line is the rail point reference.

The player view follows the cue direction, tip position and ball positions. The gold circle is where the cue ball first makes contact; zoom with the mouse wheel or the + − buttons.

white ball00 innings
yellow ball00 innings