Message Boards Message Boards

Calculus of the perfectly centered break of a perfectly aligned pool ball rack

Posted 10 years ago

This is it. The perfectly centered billiards break. Behold:

enter image description here


This break was computed in Mathematica using a numerical differential equations model. Here are a few details of the model:

  • All balls are assumed to be perfectly elastic and almost perfectly rigid.
  • Each ball has a mass of 1 unit and a radius of 1 unit.
  • The cue ball has a initial speed of 10 units/sec.
  • The force between two balls is given by the formula $$F \;=\; \begin{cases}0 & \text{if }d \geq 2, \\ 10^{11}(2-d)^{3/2} & \text{if }d < 2, \end{cases}$$ where $d$ is the distance between the centers of the balls. Note that the balls overlap if and only if $d < 2$. The power of $3/2$ was suggested by Yoav Kallus on Math Overflow, because it follows Hertz's theory of non-adhesive elastic contact.

The initial speed of the cue ball is immaterial -- slowing down the cue ball is the same as slowing down time. The force constant $10^{11}$ has no real effect as long as it's large enough, although it does change the speed at which the initial collision takes place.

The Collision

For this model, the entire collision takes place in the first 0.2 milliseconds, and none of the balls overlap by more than 0.025% of their radius during the collision. (These figures are model dependent -- real billiard balls may collide faster or slower than this.)

The following animation shows the forces between the balls during the collision, with the force proportional to the area of each yellow circle. Note that the balls themselves hardly move at all during the collision, although they do accelerate quite a bit.

enter image description here

The Trajectories

The following picture shows the trajectories of the billiard balls after the collision.

enter image description here

After the collision, some of the balls are travelling considerably faster than others. The following table shows the magnitude and direction of the velocity of each ball, where $0^\circ$ indicates straight up.

$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|} \hline \text{ball} & \text{cue} & 1 & 2,3 & 4,6 & 5 & 7,10 & 8,9 & 11,15 & 12,14 & 13 \\ \hline \text{angle} & 0^\circ & 0^\circ & 40.1^\circ & 43.9^\circ & 0^\circ & 82.1^\circ & 161.8^\circ & 150^\circ & 178.2^\circ & 180^\circ \\ \hline \text{speed} & 1.79 & 1.20 & 1.57 & 1.42 & 0.12 & 1.31 & 0.25 & 5.60 & 2.57 & 2.63 \\ \hline \end{array} $

For comparison, remember that the initial speed of the cue ball was 10 units/sec. Thus, balls 11 and 15 (the back corner balls) shoot out at more than half the speed of the original cue ball, whereas ball 5 slowly rolls upwards at less than 2% of the speed of the original cue ball.

By the way, if you add up the sum of the squares of the speeds of the balls, you get 100, since kinetic energy is conserved.

Linear and Quadratic Responses

The results of this model are dependent on the power of $3/2$ in the force law -- other force laws give other breaks. For example, we could try making the force a linear function of the overlap distance (in analogy with springs and Hooke's law), or we could try making the force proportional to the square of the overlap distance. The results are noticeably different

enter image description here enter image description here

Stiff Response

Glenn the Udderboat points out that "stiff" balls might be best approximated by a force response involving a higher power of the distance (although this isn't the usual definition of "stiffness"). Unfortunately, the calculation time in Mathematica becomes longer when the power is increased, presumably because it needs to use a smaller time step to be sufficiently accurate.

Here is a simulation involving a reasonably "stiff" force law $$F \;=\; \begin{cases}0 & \text{if }d \geq 2, \\ 10^{54}(2-d)^{10} & \text{if }d<2. \end{cases}$$

enter image description here

As you can see, the result is very similar to my first thought:

The two balls in the back corners shoot away along rays parallel to the two sides of the triangle. Here is a picture showing the forces, with each force vector emanating from the point of contact.

enter image description here

This seems like good evidence that above 1st-thought behavior is indeed the limiting behavior in the case where the stiffness goes to infinity. As you might expect, most of the energy in this case is transferred very quickly at the beginning of the collision. Almost all of the energy has moves to the back corner balls in the first 0.02 milliseconds. Here is an animation of the forces:

enter image description here

After that, the corner balls and the cue ball shoot out, and the remaining balls continue to collide gently for the next millisecond or so.

While the simplicity of this behavior is appealing, I would guess that "real" billard balls do not have such a stiff force response. Of the models listed here, the intial Hertz-based model is probably the most accurate. Qualitatively, it certainly seems the closest to an "actual" break.

Full Code

I wrote this post originally for Math Stack Exchange.

11 Replies

Why are there no attachments anymore? Jim, your Bard webpage also seems to have disappeared. Do you still have a copy of this notebook/Manipulate? I'd love to play with and add to it!

POSTED BY: Peter Barendse

Or anyone has the notebook of BilliardHertz.nb from Professor Jim Belk? It is appreciated that someone can share the 2014 code once again!

Even if it is a Mathematica 8.0 version is fine! As I have kept a Mathematica 8.0 in an old computer, I can run the Mathematica 8.0 code robustly!


The code is available again in the main post. Thanks to Dr. James Belk for providing it.

POSTED BY: Ahmed Elbanna

Your article is very informative. As a billiards player I wonder what the best technique to break the rack in order to sink a ball, thus remaining the shooter. I'm assuming your analysis does not include horizontal rotation (english) of the cue ball as it hit the head ball of the rack. Also, can you evaluate a break from the rail at the first diamond as many players shot from this position. Is it the best position to sink at least one ball (not the cue ball)?

POSTED BY: Chuck Fingerman

Given how many youngsters play pool, this could certainly be something that may give teachers a few ideas for an illustration that gets students to pay attention. It has a lot of 'real-world' relevance for them, I think it's fair to say :)

POSTED BY: Richard Asher
Posted 9 years ago

Cool, excellent work !

Suddenly, I come up with one interesting question for billiards. As Vitaliy shows the full range of billiard table, is that possible to calculate the possibility, that all balls fall into holes just by one-shot-break. Possible or not possible, for 15 balls, can it be proved or verified by mathematics.

I mean, itÂ’s just from perfect physical and theoretical prospective. It will be very hard for human and need high precision, not for practice. I don't know, if any professional player has ever done before, or any recording for this very rare things.

Maybe, A further question, how many balls (those balls consist of an initial triangular billiard) can be done by one-shot-all-fall.

Anyway, I think the current model can be use to analisys bowling ball as well. Bowling game is simple than billiard, no bounce and no trajectory.

POSTED BY: Frederick Wu

This is now is very popular - a top thread - on reddit physics with 97% upvoted > 300 points (currently):

POSTED BY: Sam Carrettie

This comment on the reddit thread:

Assuming the two corner balls don't bounce back and interfere, it looks like this break would sink two of the balls in the side pockets on an 8 foot table:

links to the nice simulation below.

enter image description here

POSTED BY: Vitaliy Kaurov

This is beautiful.

Which version of mathematica are you using? I tried your notebook in M10.0.2 and it threw errors and the manipulate didn't work as your animated gif shows that it does.

$System is "Mac OS X x86 (64-bit)"

POSTED BY: W. Craig Carter

I attached corrected for V9+ notebook to this post.

I think Jim is using earlier versions. To make this work in V9+ the function NDSolve should have corrected method specification

NDSolve[..., Method -> {"DiscontinuityProcessing" -> False}]

and it is better for Manipulate to have SaveDefinitions -> True.

POSTED BY: Vitaliy Kaurov

looks like the attachment here disappeared

POSTED BY: Peter Barendse
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract