Rattleback (Celtic Stone)

Spontaneous spin reversal through inertia asymmetry

rigid body angular momentum gyroscopic coupling

The rattleback (also called a Celtic stone or celt) spontaneously reverses its spin direction when placed on a flat surface and given an initial spin in the wrong direction — without any apparent external cause.

Physics

The reversal is driven by a gyroscopic coupling between the spin mode and the rocking (pitch/roll) modes, created when the body’s principal inertia axes are tilted relative to its geometric axes.

Geometry

The simulated body is a solid ellipsoid with semi-axes:

  • $a = 0.12$ m (long axis)
  • $b = 0.06$ m (wide axis)
  • $c = 0.03$ m (vertical axis)

The body origin is placed at $z = c$ so the stone rests tangent to the ground plane at $t = 0$.

Inertia

Diagonal principal moments for a uniform solid ellipsoid of mass $m = 0.5$ kg:

\[I_x = \frac{m(b^2+c^2)}{5} = 4.50 \times 10^{-4}~\text{kg·m}^2\] \[I_y = \frac{m(a^2+c^2)}{5} = 1.53 \times 10^{-3}~\text{kg·m}^2\] \[I_z = \frac{m(a^2+b^2)}{5} = 1.80 \times 10^{-3}~\text{kg·m}^2\]

Asymmetry

The inertia principal frame is rotated $\alpha = 20°$ about body $z$ relative to the geometric axes, introducing an off-diagonal body-frame coupling:

\[I_{xy} = \frac{I_y - I_x}{2}\sin(2\alpha) \approx 3.47 \times 10^{-4}~\text{kg·m}^2\]

This $I_{xy}$ term causes a spin about $z$ to generate a gyroscopic torque in the $x$–$y$ plane, which excites rocking. The rocking in turn torques the spin toward zero and then past it — reversing the direction.

MJCF Model

The inertia tilt is set in rattleback.xml with a single attribute:

<inertial pos="0 0 0" mass="0.5"
          diaginertia="4.5e-4 1.53e-3 1.8e-3"
          euler="0 0 20"/>

euler="0 0 20" rotates the principal-axes frame 20° about $z$ relative to the body frame, creating the $I_{xy}$ coupling without altering the ellipsoid shape. The axis cylinders attached to the body (red = $x$, green = $y$, blue = $z$) visualize the geometric frame rotating with the stone.

Initial Conditions

A pure vertical spin ($\omega_z \ne 0$, all other rates zero) is an exact equilibrium: the $I_{xy}$ coupling drives spin into roll/pitch only when angular momentum already has a transverse component. A perfectly upright initial state would spin indefinitely without reversal. The small seed roll rate $\omega_x = 2\ \text{rad/s}$ (SEED_ROCK in the script) plays the role of the inevitable imperfection when placing a real stone on a surface, allowing the gyroscopic instability to grow.

Running the Simulation

cd rattleback
python rattleback_sim.py

Outputs written to the same directory:

File Contents
rattleback_sim.mp4 Rendered 3-D video (1280 × 720, 60 fps)
rattleback_states.png Six-panel state plots

See Setup & Installation for environment and dependency instructions.

Live Simulation

Downloading MuJoCo WASM (~10 MB)…

Rattleback (Celtic Stone) state plots
State variable plots