This simulation numerically integrates Euler’s torque-free rigid-body equations for a rectangular “book” (Lx = 2.6, Ly = 1.6, Lz = 0.42) whose three principal moments of inertia I₁<I₂<I₃ are computed directly from those dimensions. Each animation frame, the body-frame angular velocity ω is advanced through 8 substeps of a 4th-order Runge–Kutta (RK4) solver, and the orientation quaternion is updated every substep via q̇ = ½q⊗(0,ω) and renormalised. Spinning about the middle axis ① seeds a small perturbation on the other two components; because I₂ sits between I₁ and I₃, that axis is an unstable saddle point where the energy ellipsoid and momentum sphere intersect, so the wobble grows and the body periodically flips end-over-end. Angular momentum L = Iω and rotational energy E = ½Iω² are recomputed live to confirm both stay constant throughout.
A rigid rectangular body with three unequal principal moments of inertia (I₁<I₂<I₃) tumbling in real time. Spin it about the long, middle, or flat axis and see whether it holds steady or spontaneously flips end-over-end, exactly as Euler’s equations predict for torque-free rotation.
Pick a spin axis with the ①②③ buttons, then adjust the spin rate ω, the initial wobble percentage, and the playback speed. Press Reset to reseed the perturbation, Pause to freeze the motion, and drag inside the 3D view to orbit the camera around the tumbling body.
Cosmonaut Vladimir Dzhanibekov noticed the same instability in 1985 aboard the Salyut 7 space station, when a spinning wing-nut floated free of a bolt and kept flipping end-over-end — astronauts on Earth call the same phenomenon the tennis racket effect.
The body’s three principal moments of inertia satisfy I₁<I₂<I₃. Rotation about the axis of smallest (I₁) or largest (I₃) inertia is a stable equilibrium of Euler’s equations, but rotation about the intermediate axis (I₂) is a saddle point where the conserved energy ellipsoid and angular-momentum sphere cross. Any tiny wobble on that axis grows instead of staying bounded, so the body tumbles end-over-end, briefly re-aligns, then flips again.
The body-frame angular velocity is advanced with a 4th-order Runge–Kutta (RK4) solver split into 8 substeps per animation frame, and the orientation quaternion is updated each substep via q̇ = ½q⊗(0,ω) and renormalised. A high-order integrator keeps angular momentum L and rotational energy E nearly constant over long runs, so the flips you see are a real feature of Euler’s equations rather than numerical drift.
The red, green, and blue arrows are the body’s three principal axes (long, middle, flat) and rotate rigidly with it. The gold arrow is the angular momentum vector L, computed as L = Iω in the body frame and rotated into world coordinates; because no external torque acts on the body, L stays fixed in direction in the world frame throughout the simulation, exactly as conservation of angular momentum requires.
Spinning exactly about the middle axis with zero perturbation is a genuine but unstable equilibrium of Euler’s equations, so in a perfect world it would spin forever without flipping. The wobble slider adds a small angular-velocity component on the other two axes to seed that instability deliberately — a larger wobble makes the growing perturbation reach a full flip sooner and produces more frequent flips over the same time window.
The body is modelled as a uniform rectangular cuboid with side lengths Lx = 2.6, Ly = 1.6, and Lz = 0.42 and unit mass. Each principal moment of inertia uses the standard cuboid formula, e.g. I₁ = (m/12)(Ly²+Lz²) about the long x-axis, with the other two from the remaining pairs of side lengths. Because Lx is largest and Lz smallest, the long axis ends up with the smallest moment of inertia and the flat axis the largest — which is exactly what makes the middle axis the unstable one.