This all started out as a little programming exercise, in which I tried to build a simple program to solve the famous 3-body gravity problem using Newtonian mechanics.
That is, after inputting the initial positions and velocities of 3 objects, along with their masses, the program predicts their subsequent motion using numerical methods.
However, I gradually gained interest in the underlying physics and decided to add more features to the program: incorporating electromagnetism, replacing Newtonian mechanics with special relativistic mechanics, and generalising the simulation to N bodies.
OK, I need to emphasise what the program isn’t.
This is not a software for fancy animated simulation. In fact, it doesn’t even display any graphs. This is a command-line styled program, and you guessed it – everything is displayed in numbers.
In addition, I don’t have the intention nor ability (both in terms of maths and programming skills) to incorporate general relativity to the simulator. Instead, it uses an approximation known as “Gravito-electromagnetism” that works well within the weak field limit (more on that below). Forget this program if you want to do black hole simulation.
Fine. Where can I download the 3body simulator?
It is free for personal / commercial / academic / whatever use. Just don’t blame me if the program gives inaccurate (or totally wrong) calculation results!
So, how accurate is 3body simulator?
You can refer to the PDF manual bundled with the executable for details. The table below gives you an idea on when the program tends to give reasonable predictions:

*For instance, if 2 objects are travelling at high speeds in a certain reference frame, but their relative speeds from each other is low, then the program can give reasonable predictions. This is because there is always another reference frame in which both of them are slow moving. The mathematical model for gravity used in 3body simulator is Lorentz-invariant, and is able to handle this situation. However, if the relative speed between the 2 objects is high, the program cannot give accurate predictions, since general relativity is needed for such situation.
I hope you enjoy my program and find it fun to explore the underlying physics!
Report bug / feature suggestions: mail@3body.hk
Leave a Reply