To start at the end, I suggest you first take a look at the choreography galleries. They showcase the diversity of choreographies that are known so far; they also showcase computer-assisted proof techniques, because each orbit shown has been proven to exist using my system.

The galleries are contained in dropdown boxes below the main screen. They are initially hidden; you can click the down-arrow button on the top-right of each box to open it. You may then click on any of the thumbnail images to see an animation of the depicted choreography. Clicking an orbit also loads some explanatory text, showing the name of the orbit (if it has one), the person who found the orbit, the number of planets, and the symmetry group it exhibits (a mathematical property of the orbit).

The first two galleries contain choreographies from the academic literature prior to my work, and the remainder show choreographies found using my programs. Most of them were found by other users using this web application. Go ahead and look at a few! Which one is your favorite?

A few remarks about the simulation

You may notice that in the introduction I talk about stars, on the gravity page I talk about bodies, and in the Choreographer I talk about planets. It is all the same! The inconsistency is just sloppiness on my part; there is no mathematical difference intended.

In the animation, one of the planets is colored blue while the others are colored red. The planets are all symmetric - each does the same thing - but I found the coloration useful for tracking what happens when two planets have a close approach. There are also colored trails behind each planet. The trails are just a visual affectation; I have trouble deciding if I like them or not, so I included a checkbox to turn them off or on.

Also, I should fess up about something; when you are looking at an animation, you are not actually seeing a live simulation of the motion of planets. Instead the program is just following a precomputed curve; the dots stay on the curve, and they repeat it perfectly each time, just because that is what I told the computer to do. In theory it is true that if you set up the planets perfectly, they would trace out the curve perfectly - that is what it means to be a choreography! However, if you try to simulate the physics, things will typically fall apart quickly. That is because most choreographies are unstable; an unstable choreography is like a celestial house of cards.

Drawing your first choreography

After getting inspired by the galleries, it is high time to find a choreography yourself. If you read the introduction, then you know that the circle is the simplest choreography. So that is a good place to start!

You first need to go back to the starting screen; if you are looking at an animation, you need to click the "Start over" button. You should now be looking at a box with "Draw here!" written inside; for the rest of this tutorial, I am going to refer to that box as the canvas. The canvas is where the magic happens.

Beside the canvas, there is a dropdown control for the number of planets as well as a "Symmetry group" field. The defaults are for 3 planets and the "C(3,1/1)" symmetry group. We will talk about symmetry groups later; for now just leave it as-is. You can also leave the number of planets at 3 for now.

A sloppy drawing of a circle

Now comes the fun part: just use your mouse (or your finger, if you are on a touchscreen device) to draw a circle in the canvas! A crude, sloppy sketch will do; it does not need to be very good at all. This example sketch, for example, worked fine.

When you have drawn something vaguely like a circle, click the "Load" and then "Go" buttons. Some math will happen, and the sketch you drew should morph into a smooth circle. (Note: if you are on a modern-ish computer with a modern-ish browser, the morphing may well be too fast to see.) If something goes wrong and it does not quickly turn into a circle, then you can "Start over" and try again.

When the computer decides it is done (that is, it has "converged"), it declares "Possible solution!" and switches over to showing an animation in the canvas (just like the animations of orbits in the gallery). You have found a choreography!


After you find a choreography, an "Upload it" button appears. This gives you the option of sending me what you have found; if someone finds the world's coolest choreography, then I want to know about it! If you upload something, then when they have a moment my servers will get to work analyzing your choreography in more detail. Not every orbit this program finds is real; there are especially problems when two planets get really close, because collisions confuse things. If it does appear to be real, though, then the computer will try to prove existence. And if that works, then your choreography could make it into the gallery!

For fun you can (optionally) tell me your name and (optionally) give your orbit a name before you upload. If what you found is real and seems to be new, then I will typically use the name you give it the gallery! I have a special place in my heart for well-named orbits, so if you do find something great, go ahead and give it a great name.

If you are following this tutorial in order, then you are currently looking at a circle and thinking about uploading it. You can hold off on uploading for the moment, though; I promise you I have seen a circle before!

The figure-eight

A sloppy drawing of a figure eight

After rediscovering the circle, you might try to rediscover the figure-eight. This is easy; just click "Start over" and sketch a figure-eight in the canvas! Again, it does not have to be very good at all. This example was good enough. Draw something vaguely like this and, again, click the "Load" and "Go" buttons. Voilà!

Call for orbits

Some mad scribblings

Now that you have the basic procedure down, you can go to town! Choreographies with 3 planets have been pretty well explored, so it might be more fun to change the number of planets. Another piece of advice: do not be too conservative with your drawings. This little scribble, for example, found a pretty nifty 6-planet choreography.

If you are having trouble getting your orbits to converge, you might peek ahead at the tips below.

Symmetry groups

Some choreographies have symmetries: for example, the figure-eight is the same as its mirror image if you flip it over either its longest or shortest axis. When we found the figure-eight orbit above, that symmetry just arose on its own; we did not tell the computer that we wanted a symmetric choreography. Explicitly asking for symmetry, though, is a very powerful technique for finding super cool choreographies. That is what the "Symmetry group" option lets you do.

If you go to the starting (drawing) screen, then beside the canvas, and below the number-of-planets dropdown, there is a "Symmetry group" field. It should currently say "C(N,1/1)", where N is the number of planets you have. This secretly means "no extra symmetry" and so it is the most general option; we do not force any symmetry to happen, but it can occur on its own if it wants to.

If you click the symmetry group label (it is in bold), then you will get a selection popup. You first choose the type of symmetry you want - you can always choose rotational or reflectional symmetry, and if the number of planets is odd then there are also three exceptional options (mathematical oddities). For rotational or reflectional symmetry, there are two parameters to choose. Roughly speaking, the first controls "how much" symmetry, and the second controls, for example, the difference between drawing a pentagon and a pentagram.

The selection popup also shows an example of what a curve with the chosen symmetry group might look like. Instead of reading about the options, I think it is probably simpler to just look at these pictures.

Once you choose the symmetry group you want, just click "Done" (or click outside the popup) to go back to the program. Go ahead and draw whatever you want in the canvas. When you click "Load" the computer will force your drawing to have the symmetry you chose; it might look a lot different if you did not start with something close to symmetric. Now just "Go" and see what happens!

In case you are wondering, the symmetry group labels follow an article by James Montaldi and Katrina Steckles. This fine paper analyzed all of the possible symmetry groups that could arise for choreographies.

Tips and tricks

Here are a few semi-secret features that are useful for professional choreographers.

  • Sometimes things can get stuck while the program is converging (the part after you click "Go" and before it declares victory). This especially happens if there are a lot of tangles in the curve. You can help it along using nudging. Take a look below the "Pause" button; there is a "Tip" ending with the word "nudge" in bold. You can click on that word to shake the orbit up a bit. If you want more nudging, you can just hold the button. To get out of a bad tangle it can be useful to really lean on it.
  • The orbit might grow out of the canvas or shrink to a tiny part of the canvas while it converges. You can double-click on the canvas to reset the view appropriately.
  • Sometimes - especially when you have imposed a big symmetry group - the program finds something that looks pretty good, but it refuses to declare victory. Peek at the readout below the canvas, and in particular the |∇S| number. The program is trying to drive this number down to zero. If it seems to have plateaued, then you may need to increase the FFT length. This is a parameter that determines how accurate the numerical calculations inside the program are; a longer FFT slows the program down but makes things more accurate. The current length is also shown, in bold, in the readout below the canvas. You can increase the length by clicking on it. In some cases it may help to increase it a couple of times.