I create a world having three moons. Since precession cycle is influenced by our moon, how do I calculate the duration of the cycle with three moons?


  • 1
    $\begingroup$ You might ask on Physics for a pointer to the math for this. It’s a real fact-based question, not something that needs a creative solution. $\endgroup$ – JDługosz Nov 23 '17 at 9:26
  • $\begingroup$ Also, astronomy stack might be a good place. There are planets with many moons, so they may have an universal solution for No moons. $\endgroup$ – Mołot Nov 23 '17 at 9:36
  • $\begingroup$ The Wikipedia page on Axial Precession (which is the technical term you need) has some equations lower down. Simplest solution to your problem : Make up an expression like the ones one the lower part of that page - note the typical units - these are small effects. $\endgroup$ – StephenG Nov 24 '17 at 1:08
  • $\begingroup$ @JDługosz Precession for a three-moon world is not 'real' in the sense that no such planet exists, that we know of. Sounds on-topic for worldbuilding. $\endgroup$ – kingledion Nov 24 '17 at 4:48
  • $\begingroup$ I don't mean there is a specific real system you can simply measure. I mean the way precession is calculated is a real fact to look up, not a creative invention. $\endgroup$ – JDługosz Nov 24 '17 at 6:47

You are asking for a solution to the n-body problem (specifically, the 5-body problem: three moons, one planet, and a star that the planet is orbiting). While you may be able to find approximate solutions for some restricted variants of this problem, there is no general-purpose analytic solution for n > 2 (that is, you will not find a simple equation or formula that exactly predicts the behavior of your moons under classical physics).

For astronomically brief periods of time (read: a few centuries or so), it's usually most straightforward to simulate the problem. This essentially consists of repeatedly summing the gravitational influences predicted by Newton's law of gravity for each body and then updating their positions and velocities accordingly (sometimes using more advanced mathematics to make this faster or more efficient). Small rounding errors will gradually build up, so this process becomes less accurate over longer periods of time. That's why it's important to limit the period of the simulation, to take relatively short time steps, and to hold onto as much precision as possible at each step.

In theory, you could do all of the work I just described by hand. In practice, it's an enormous amount of work even for relatively short intervals of time. I therefore do not recommend attempting it. You want some kind of software instead.

Our friends on Physics.SE have compiled a list of N-body simulation software. In particular, they found http://nbody.sourceforge.net, which (after chasing links) eventually leads to something called ChaNGa. So far as I can tell, it is a piece of software developed at the University of Washington for exactly this purpose.

Now the downside: Although ChaNGa does have extensive documentation in its GitHub wiki, it looks massively more complicated than what you actually need. It is not particularly user-friendly and needs to be compiled by hand on your Linux workstation. It also requires input in a very specific file format. Finally, it appears to be optimized for very large n relative to the size of your problem (where n = 5), which may result in needlessly inaccurate output. As a result, I don't think it will be meaningfully useful to anyone who is not a software engineer or serious academic.

Unfortunately, most of the people interested in solving this problem are academics. Many of the problems I listed above also apply to most of the other academic software you are likely to encounter, including most or all of the stuff the Physics.SE crowd found.

Seeing as academia has let us down, I turn instead to the consumer sphere. Universe Sandbox ² is specifically designed to simulate gravity and numerous other physical effects on a small, consumer-friendly scale. It is much more straightforward to set up and provides a more intuitive interface. To my considerable surprise, it also provides nice list of competitor apps in its FAQ:

Are there other programs like Universe Sandbox ²?

TestTubeGames' Gravity Simulator

  • Fling Planets or redefine the formula for gravity in this easy-to-use 2D simulator.

Pixel Gravity

  • Gravity simulator with both a free trial and full version for Windows PCs.
  • Extremely impressive feature list and comprehensive simulator.

Gravity Simulator

  • An n-body simulator similar in concept to Universe Sandbox and capable of scale simulations of our Solar System.
  • Using the rotating frame feature, you can easily study the complex orbital relationship between the various moons of Saturn, or the relationship between Earth's orbit and the horseshoe orbit of 3753 Cruithne, an asteroid often referred to as "Earth's 2nd moon".
  • It also includes some advanced features for recording data that can be graphed in a spreadsheet app.
  • Gravity Simulator is for Windows PCs.


  • A gravity simulator available for both Mac and Windows as a 15 day trial.
  • Uses Newton's Law of Gravitation to run scale simulations of our Solar System.

Milky Way

  • An astrophysical sandbox game in early development.
  • "Incorporates real observational data and accurate theoretical models to predict various phenomena such as planetary impact, spaghettification and gravitational redshift around a black hole."
  • Free demo available for Windows PCs.

The Universe Sandbox folks also wrote a nice blog post going into additional detail about why this problem is difficult and some of the tricks and optimizations they used to work around it.

TL;DR: This is very difficult and error-prone to work out by hand. Use a simulation program like one of the ones I linked above.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.