Orbits is a simple space dynamics calculator that computes spacecraft trajectories through the Solar, Jovian or Saturnian Systems. There is a standalone executable for MS Windows, other platforms (Linux or Mac) need to have Perl/Tk installed

This code computes the trajectory of a spacecraft through the Solar, Jovian or Saturnian Systems. The user chooses the departure date, the departure and destination planets, the initial ΔV of the spacecraft relative to the departure planet, and α, the angle of the ΔV vector with respect to the direction of motion of the planet.
The program first finds the resulting initial velocity ΣV of the spacecraft by adding ΔV to the velocity vector of the planet. The angle of this resulting 'absolute' (i.e. relative to the Sun) velocity with respect to the motion of the planet is β. The relative velocity vector is shown in the figure in green, the absolute velocity vector is in cyan.
The complete orbit in which the spacecraft evolves is displayed in dark grey. It is computed from Kepler's laws, thus it is a conic, i.e. either an ellipse (e<1), a parabola (e=1), or a hyperbola (e>1), where e is the eccentricity of the conic (displayed in frame 'Results'). The closest point of the orbit to the Sun is the perihelion, also displayed with the results.
The actual trajectory of the spacecraft is a portion of the complete orbit, extending from the departure planet to the destination orbit. The code returns the time of the trip from the initial planet to the intersection point of the trajectory with the orbit of the destination planet.
Finally, the difference between the velocity vector of the destination orbit and that of the spacecraft at the intersection is computed. This is the amount of ΔV that the spacecraft must provide to slow and match the velocity of the destination planet. The final velocity is that required to be in the same orbit as the planet. The user/astrogator has to make the intersection coincide with the position of the planet.
There are in fact two intersection points. In most cases of a trip from an inner planet to an outer planet, only one point is relevant. For a trip from an outer planet to an inner planets, both points are acceptable destinations, thus two travel times are computed. The two trajectories are displayed in white and light grey.
The departure planet and orbit are in blue, the destination ones are in red. The position of the planets at start of the trip are displayed as black discs. Their positions at the end of the trip are shown as coloured discs. When two solutions are possible, they are in light and dark colours, corresponding to the white and light-grey trajectories, respectively.
The code is fed with two input files. orbits.dat contains the characteristics of the planetary orbits and some asteroids. It can easily be edited to add other objects. The second file, config.dat, is a general configuration file which allows some customisation of the program (colours, km/s instead of mps, etc.).
Finally, the Sun is surrounded by a 'hot region', where the spacecraft would overheat, thus which is not supposed to be crossed. It is displayed as a yellow gradient. An alert pops up when a trajectory crosses this region, as well when a trajectory hits the central body. When the 'auto-astrogation' is used, it is understood that these regions will not be crossed whatsoever.
MS Windows users who do not wish to install Perl can download the standalone executable: orbits2.2.2_win32.zip. Just unzip it and run orbits.exe. Note that this version is slower to start than the pure Perl version, though it should run as fast. md5sum = ee3a8612a6ac8fed832d1b02f81ee3d2.
For the rest of us, first
install Perl/Tk
(should already be on most Linux systems), and install the following modules using at the command line:
cpan -i Tk::FireButton Tk::ChooseDate ex::override
Then download orbits2.2.3.zip. Unzip it (it creates its own directory) and simply run orbits.pl. md5sum = 81bd6fee8c5e05bbdf924ac5486b332f.
Guaranteed virus-free, please comment and report bugs!
Note: The ChooseDate.pm module contains a bug which has never been fixed. This does not matter for us because orbits overrides the bugged function since version 2.2.2. However, fixing the bug is very easy, you can find explanations there.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.