Three-Body Choreographies, Explained

After reading this you will be able to launch three equal stars onto the figure-eight orbit, understand the Newtonian equations that hold it together, and recognise the moment a tiny nudge tips the dance into chaos.

What a choreography is, and the figure-eight

Three point masses pull on each other by gravity. For two bodies the motion is a solved problem: ellipses, forever. Add a third body and the general motion has no closed-form solution. The paths wander, and almost every starting condition ends with one body flung away while the other two pair off.

Hidden inside that chaos are a few exact periodic solutions. The most beautiful is the figure-eight. Three equal stars chase each other around a single closed curve shaped like an 8, evenly spaced in time. Star A is a third of a period ahead of star B, which is a third ahead of star C. Every body traces the same track. Nobody is ever ejected. It repeats exactly.

Cristopher Moore found it numerically in 1993. Alain Chenciner and Richard Montgomery proved it exists and is a genuine periodic orbit in 2000. This tool integrates the same equations and starts the bodies on that orbit and several relatives, then lets you perturb them.

A choreography is a periodic n-body orbit where every body follows the same closed curve, equally staggered in time. The figure-eight is the simplest known example for three equal masses, and the most robust against small perturbations.

When this model helps, and when it lies

Use this tool to build intuition about three things: how gravity couples several bodies, what a periodic orbit looks like, and how sensitively chaotic systems depend on initial conditions. The figure-eight is a clean laboratory because it is exactly periodic, so any drift you see is either a perturbation you added or numerical error you can measure.

Do not read it as astrophysics. Real triple-star systems almost never sit on a choreography, because the orbits are measure-zero: they occupy zero volume in the space of all possible starts. A random triple, or one jostled by a passing star, will not find the figure-eight and will not stay on it. Real systems also have unequal masses, tidal forces, and relativistic corrections that this Newtonian point-mass model ignores.

Treat the choreographies as mathematical objects of startling order, not as typical outcomes. The generic outcome is scattering, and the tool shows you that too the moment you nudge the launch.

The equations of motion

Each body i feels a force from the other two. Newton's law of gravitation gives the acceleration of body i as a sum over the other bodies j:

\ddot{\mathbf{r}}_i = G \sum_{j \ne i} m_j \frac{\mathbf{r}_j - \mathbf{r}_i}{\lVert \mathbf{r}_j - \mathbf{r}_i \rVert^{3}}

Here \mathbf{r}_i is the position vector of body i, \ddot{\mathbf{r}}_i is its acceleration, m_j is the mass of body j, and G is the gravitational constant. The term \mathbf{r}_j - \mathbf{r}_i points from i toward j, and dividing by the cube of the distance makes the pull fall off as one over distance squared once the vector is normalised.

For the choreographies here all masses are equal, so set m_1 = m_2 = m_3 = 1 and G = 1. This is a choice of units, not a claim about grams. Two quantities stay fixed while the bodies move. The total energy

E = \frac{1}{2}\sum_i m_i \lVert \dot{\mathbf{r}}_i \rVert^{2} - G \sum_{i \lt j} \frac{m_i m_j}{\lVert \mathbf{r}_i - \mathbf{r}_j \rVert}

combines kinetic energy (the first sum, over speeds) and gravitational potential energy (the second, over each pair). The total angular momentum \mathbf{L} = \sum_i m_i\, \mathbf{r}_i \times \dot{\mathbf{r}}_i is also conserved. A good integrator keeps both nearly constant, which is what stops a delicate loop from spiralling apart through numerical drift.

Worked example: reproducing the figure-eight

The demo starts three unit masses on the standard figure-eight. The initial data, in the units above, are the values from Chenciner and Montgomery, widely tabulated as follows. Body 3 sits at the origin moving fast; bodies 1 and 2 sit opposite each other moving the other way.

Initial positions and velocities for the figure-eight, equal masses, G = 1.
Bodyxyvxvy
10.9700-0.24310.46610.4324
2-0.97000.24310.46610.4324
30.00000.0000-0.9322-0.8647

Checking the conserved quantities by hand

  1. Total momentum in x: 0.4661 + 0.4661 - 0.9322 = 0. In y: 0.4324 + 0.4324 - 0.8647 = 0.0001, zero to rounding. The centre of mass stays put, as it should.
  2. Kinetic energy of body 1: \tfrac{1}{2}(0.4661^{2} + 0.4324^{2}) = \tfrac{1}{2}(0.2173 + 0.1870) = 0.2021. Body 2 matches by symmetry, also 0.2021.
  3. Kinetic energy of body 3: \tfrac{1}{2}(0.9322^{2} + 0.8647^{2}) = \tfrac{1}{2}(0.8690 + 0.7477) = 0.8084. Total kinetic energy is 0.2021 + 0.2021 + 0.8084 = 1.2126.
  4. Pair distances: bodies 1 and 2 are 2 \times \sqrt{0.9700^{2} + 0.2431^{2}} = 2 \times 1.000 = 2.000 apart. Body 3 is 1.000 from each of 1 and 2 by the same root.
  5. Potential energy: -(1/2.000 + 1/1.000 + 1/1.000) = -(0.5 + 1 + 1) = -2.5.
  6. Total energy: E = 1.2126 - 2.5 = -1.287. It is negative, which means the system is bound: no body has enough speed to escape. As the simulation runs, this number should hold near -1.287 loop after loop.

Watch the trails after one full period. All three should have painted the same 8. If the energy readout drifts by more than a small fraction of a percent over many loops, the step size is too large.

Reading the orbit and its trails

The single shared curve is the signature of a choreography. In the figure-eight the crossing point at the centre is where a body passes through the origin at high speed while the other two straddle it. The moments of closest approach happen there, which is why body 3 in the table starts fastest: it is near a pass.

A clean run is periodic with period roughly T \approx 6.32 in these units. After one T each body returns to where the next one started. After three periods every body is back to its own start. If you plot the distance between bodies 1 and 2 against time on a stable orbit, you get a smooth repeating wave.

On the figure-eight the pair distance oscillates smoothly between about 0.68 and 2.0 and repeats every 6.32 time units. On a chaotic run the wave loses its regular shape within a few loops.

Perturbing into chaos

Now change one number. Add 0.001 to the x-velocity of body 3 and leave everything else alone. For a few loops the orbit looks like the figure-eight. Then it does not. The separation between the true orbit and the perturbed one grows roughly exponentially:

\delta(t) \approx \delta_0\, e^{\lambda t}

Here \delta_0 is the initial perturbation, \delta(t) is the gap at time t, and \lambda is the largest Lyapunov exponent, a positive number that measures how fast nearby orbits pull apart. If \lambda \approx 0.5 per time unit and \delta_0 = 0.001, then the gap reaches order one when e^{0.5 t} \approx 1000, that is t \approx \ln(1000)/0.5 = 13.8, a little over two periods. After that the orbits are unrelated and one body is usually ejected.

Do not conclude that the figure-eight is unstable in every direction. It is one of the more robust choreographies, and some perturbations decay while others grow. The point is that generic perturbations grow. Because they occupy almost all of the possible nudges, you will find chaos almost every time you push at random.

On the exact figure-eight the three bodies trace one shared 8 forever and the pair distance repeats every 6.32 time units. Add a velocity perturbation of size 0.001 and the orbit holds for about two loops before diverging; at 0.01 it breaks within one loop and a body is ejected. The larger the nudge, the sooner order dissolves.

Common mistakes

The first mistake is blaming the integrator when a run falls apart. Check the energy first. If E holds near its start value and the orbit still breaks up, the breakup is real physics from a perturbation, not numerical error. If E drifts steadily, shorten the step.

The second mistake is expecting the figure-eight from rough initial data. The orbit needs its exact starting values. Round 0.4661 down to 0.47 and you have already added a perturbation of 0.004, enough to break the orbit inside a few loops.

The third mistake is confusing a choreography with a stable equilibrium. There is no fixed point here. The bodies never stop moving. Stability means the shape of the orbit persists, not that anything comes to rest.

To feel the sensitivity, run the same perturbation twice with different step sizes. If both diverge at nearly the same time, the divergence is physical. If they diverge at very different times, your step size is doing the perturbing, and you should make it smaller.

Related tools

Chaos and order sit side by side across these toys. The Lorenz Attractor shows the same exponential sensitivity in three equations rather than three bodies. The Magnetic Pendulum Fractal colours the plane by final state and turns sensitivity into a fractal image. The Logistic Map Bifurcation shows one parameter breaking order into chaos step by step.

For pure periodic curves without the chaos, the looping tracks of the Spirograph are a close visual cousin of a choreography, and the Fourier Epicycles tool builds any closed curve from rotating circles. For order emerging from simple rules, try Conway's Game of Life.

Frequently asked questions

Why does the three-body problem have no formula?

Poincaré showed in the 1880s that no set of enough conserved quantities exists to solve the general three-body motion in closed form. The equations are deterministic and you can integrate them numerically to any accuracy, but there is no algebraic expression giving position as a function of time for arbitrary starts.

Is the figure-eight found in real space?

No confirmed real triple-star system sits on the figure-eight. It requires three nearly equal masses with exactly tuned velocities, and such a configuration is astronomically unlikely to arise and survive. It is a proven mathematical solution, not a common astrophysical one.

How many choreographies are there?

Hundreds of periodic three-body orbits have been found numerically, many by Šuvakov and Dmitrašinović in 2013 and later work. Most are far less stable than the figure-eight, so they need very precise starts to hold together at all.

What keeps the simulation from drifting apart?

A symplectic integrator, which respects the geometric structure of Hamiltonian mechanics. Instead of letting energy leak away step by step, it keeps E oscillating in a tight band around its true value, near -1.287 for the demo, over thousands of steps.

What does a positive Lyapunov exponent mean here?

It means two orbits that start a distance \delta_0 apart grow apart like \delta_0 e^{\lambda t}. A tiny rounding difference of 0.001 becomes order one in a couple of periods, which is why long-term prediction of a perturbed three-body system is impossible in practice.