2011 Oct 09

Orbits is a planets and spacecraft simulator I built using parts found around the home. It is a software project I developed as a test bed to sharpen my C++ skills and learn new programming techniques. It started with a library of C++ objects, space and body, where I apply Scott Meyers' Effective C++ 'preferences' as much as possible. Initially I used SWIG to wrap my objects in Tcl to let me script missions and used Tk as a simple GUI. Later I used Qt to create an OpenGL version and used XML to describe the initial conditions of my N-body simulation. I am currently working on wrapping my C++ library in python to allow easy access to the orbital element vectors so I can plot things like how the angular momentum is changing during the gravitational assists or what the orbits around Lagrange points look like when centered on their point of view.

I am still working on my understanding of how to embeded QuickTime and Flash in html, so this may not work with your browser. At this time, I have had some success with Safari and FireFox using QuickTime.

This is a QuickTime example of four space craft in geosynchronous orbit. All bodies are specified in the xml file. The point of view is controlled by the keyboard and direction of view by the mouse using the same convention as in World of Warcraft.

This is a QuickTime example of four space craft. Blue and green are in geosynchronous orbits. Red and orange started at the same altitude, but have almost enough energy to make it to the moon, a.k.a. Trans Lunar Injection (TLI). Red is close enough to get a gravitational assist that throws it out of the earth-moon system. Apollo 12's third stage is known to wander like this.

This is a variation of the previous example, only this time orange has been given more than enough energy to cross the lunar orbit. The display starts just before the moon starts perturbing the orbits of the red and orange space craft.

-lrm