Download: current version 0.1.13
There are a few options:
NEW: There is now a
Getting Started guide for
Warning: This is still a very early release, so there
are undoubtedly various problems in the install process
and/or directions, particularly for windows users.
Please contact me if you have any difficulties.
Planets: An orbital simulator
Planets is a simple interactive program for playing with
simulations of planetary systems, released under the GPL. It runs on
Linux and Windows, and could doubtless be ported to your favorite
flavor of Unix.
Planets was originally designed for kids, in particular, for my
then 4-year old nephew who is fascinated by astronomy. The user
interface is aimed at being simple enough that a fairly young kid can
get some joy out of it. But the adults who have used it have found it
to be pretty fun as well.
Exchange galaxies! Communicate with other planets users! Click
for a forum where you can leave notes and post galaxies for
others to use and play with. The galaxies are stored in the
"uni.*" files in your ".planets" directory. They're just
simple text files you can cut and paste for the posts.
The code is not bug-free, and Planets is missing some significant
features. But it's pretty stable and is a fun toy to play with. If
you do download it, please drop me an email and tell me about your
experience with it.
Read the Getting Started guide for
planets to get a sense of how planets works.
Requirements (for compiling)
- Saving and loading of universes
- Infinite undo (erase last action) and goback (return to point in
time just after last action). This allows for undoing mistakes and
replaying interesting configurations.
- Traces of planet trajectories
- Two ways of dealing with planet collisions:
- merges, where the colliding planets are merged into one planet, and
- bounces, where the colliding planets are bounced off
each other elastically. This itself comes in two varieties:
- force bouncing, where the force between planets
is made repulsive at close quarters.
- true bouncing, where simple pool-table physics
calculations are made to determine when planets collide, and
compute the appropriate bounce from said collision.
- kidmode, a mode where the focus is (mostly) locked on the
application, and interesting changes are initiated by merely banging
on the keyboard. This mode is aimed at 1-5 year olds.
- Center-of-mass following: it is possible to follow the center of
mass of a subset of the planets. Thus, if you have a sun-moon-planet
system, you can have the view automatically track the moon-planet
- Can display kinetic, potential and total energy of the system.
- Both the gravitational constant and the gravitational exponent can
- There is a simple control panel that makes it possible to see and
change the simulation options.
- Zooming, panning, and centering on the center of mass
Known limitations or bugs
- A working installation of
ocaml 3.08 or later.
- Tcl/Tk version 8.3
- A recent installation of
Cygwin, if you're running on
Features I'd like to see (I'm not saying I'll add them myself...)
- Force-bouncing does not work for all values of the gravitational
constant or for different gravitational exponents.
- When using true bouncing, random planets may be placed so that
they overlap, which allows the planets to get arbitrarily close, and
leads to planetary motions that expose the poorness of the underlying
- A better kidmode that gives more control.
- Better simulation techniques
- 3D planetary systems, preferably done portably (using LablGl?) and
with a decent interface for adding planets and changing the point of view.
- Better installation instructions, in particular vis-a-vis Tcl/Tk
- Port to MacOS X.
- Faster traces. The current traces get quite slow when the trace length
- A port to GTK? This will have to wait until GTK is well ported
and supported under windows.