Balls Rolling on a Sphere

Initializing live version
Download to Desktop

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram Player or other Wolfram Language products.

Balls of the same size roll on the surface of a sphere.


There are up to three orbits (at right angles to each other) and up to three balls in each orbit.

How big can the balls be without touching each other, and how should one set the delays in order to avoid any collision?


Contributed by: Karl Scherer (March 2011)
Open content licensed under CC BY-NC-SA



Move the time slider to rotate the balls around the center sphere.

The radius of the center sphere is 2.

The radii of the balls are 1 at the start, but can be changed (between 0.1 and 3) with the slider. Note that the apparent size of the center sphere will change when the slider is moved, because the plot range is adjusted automatically.

Slider "delay 1" controls the difference (in degrees) between the purple and the yellow ball.

Slider "delay 2" controls the difference (in degrees) between the red and the yellow ball.

Balls on the same orbit are always equidistant. If you select two balls per orbit, they are 180 degrees apart. If you select three balls per orbit, they are 120 degrees apart.

You can separately switch off the display of the center sphere or the display of the three black circles.

Collision test:

The distances between all visible balls are permanently recalculated by the system while the time slider is moved.

The smallest distance between any two balls is indicated on the left. If only one orbit is selected, the number is set to 1. This number should always be greater than or equal to zero. If it is negative, a collision has occurred, and the central sphere will turn black.

The collision test can be switched off with the "test collision" checkbox.

Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.