101
$\begingroup$

I used to be familiar with the various choices out there for orbital mechanics simulation software. Alas, those days are gone. What are the choices today, preferably sorted by platform?

This question and others on this site might benefit from their use in making answers more visual.

Please note that list questions such as this are typically discouraged on SE sites. An exception was made in this case due to its obvious utility and relevance.

$\endgroup$
  • $\begingroup$ Two questions: 1) Which of these software packages (if any) can perform trajectory analysis for deep-space probes, including calculating gravity assists? 2) For those of you familiar with NASA's Copernicus trajectory analysis package, how do these compare? $\endgroup$ – Jerard Puckett Feb 4 '14 at 19:27
  • 17
    $\begingroup$ Kerbal Space Program :) $\endgroup$ – MadTux Oct 17 '14 at 12:23
  • 1
    $\begingroup$ Consider finding NEMO: bima.astro.umd.edu/nemo $\endgroup$ – barrycarter Dec 29 '14 at 23:58
  • 1
    $\begingroup$ Not a simulator but more of a toy, n-body in 2-D: nowykurier.com/toys/gravity/gravity.html. Really fun to play around with. $\endgroup$ – iceman Jul 6 '15 at 13:10

11 Answers 11

54
$\begingroup$

To add to @Erik's list:

  • GMAT — Cross platform, Free. NASA open source product.

  • FreeFlyer — PC, commercial. Probably AGI's biggest competitor.

  • The Java Astrodynamics Toolkit — Cross platform, free. Another open source product, more of a software library than a full-fledged simulation environment.

  • Orbit designer — Android, free. Not even close to the same ballpark of these other packages, but might be a fun way to play around with different orbits. Edit: I actually just downloaded this and I'm absolutely hooked. Highly recommended. (Caveat: I'm a nerd for things like this, and it may in fact be a rather boring app for most people).

$\endgroup$
  • 3
    $\begingroup$ Orbit Designer appears to be delisted from the play market (I changed the link to the developers page but it isn't that helpful)- there are links (of unknown quality) to apk downloads that can be searched for. $\endgroup$ – Lucas W Nov 12 '18 at 18:42
  • 1
    $\begingroup$ Darn it, first you get me all hyped for Orbit designer and now it's gone. I can't even find anything about it; like how made it, or why it's deleted. Does anyone have more information? $\endgroup$ – Herman Nov 16 '18 at 10:40
28
$\begingroup$

Here are the options I'm aware of off the top of my head:

$\endgroup$
  • 13
    $\begingroup$ A bit misleading to call STK free - although there is a free version, it's pretty darn limited in capability. Also, it's "Systems Toolkit", now, for some reason. $\endgroup$ – user29 Jul 23 '13 at 1:17
  • $\begingroup$ @Chris true dat. $\endgroup$ – Erik Jul 23 '13 at 1:23
  • 1
    $\begingroup$ While it is true that the "free" STK is limited, you'd be surprised at what it can do, even for free... I use the free version fairly frequently, matter of fact. It's just the really fun toys cost money, that's all... $\endgroup$ – PearsonArtPhoto Jul 23 '13 at 2:29
  • $\begingroup$ +1 When I follow the link to AGI/STK I get the first impression that this is mainly for guiding military drones (must be a growth market). Is this indeed its main focus or is there a strong space-exporation angle too/instead? (I'm all new to this.) $\endgroup$ – Drux Dec 31 '13 at 19:39
  • 1
    $\begingroup$ Is the free version of AGI/STK available in Russia? When I try to open the URL above (agi.com/products/stk/modules/default.aspx/id/stk-free), I land on a page that says "Due to certain operating restrictions, we are unable to fulfill your request via the website at this time.". I'm wondering whether the URL is wrong, or for legal reasons. $\endgroup$ – DP_ Jan 15 '16 at 5:46
22
$\begingroup$

Apart from these serious software mentioned above there is an interesting game with quite realistic orbital calculations, quite suitable for teaching kids about space: Kerbal space program.

As for AGI non-free version is a lot more powerful.

$\endgroup$
  • 11
    $\begingroup$ I don't have a problem with the link, but aside from the gaming angle, the orbital mechanics model using sphere of influence. It can't handle N-body simulation. Fun, but that's about it. $\endgroup$ – Erik Jul 23 '13 at 9:57
  • 1
    $\begingroup$ An amazing game Kerbal Space Program is, but it falls short on simulation due to gravity simplifications. $\endgroup$ – Sarah Bailey Dec 22 '14 at 19:03
  • 13
    $\begingroup$ Well, it depends on your goals, which OP didn't really get in to. If you want to simulate our solar system's orbital mechanics accurately, true, KSP won't do. If you want to develop an intuition for the generalities of orbital mechanics, it's fantastically good. $\endgroup$ – Russell Borogove Dec 30 '14 at 19:02
  • 2
    $\begingroup$ Yep, this recommendation is very bad. For LLI insertions, KSP does not consider required plane changes, so the total amount of delta-V required is not correct at all. It's just a game, don't use it for anything thing than concept teaching to kids or playing. $\endgroup$ – Ricardo Nov 13 '16 at 10:20
  • 4
    $\begingroup$ New Principia mod for KSP enables n-body physics simulations, enabling Lagrange points, weak stability boundaries, etc. Forewarning, because Kerbin has a much smaller radius than Earth yet has 1g surface gravity (impossibly dense), it won't be realistically accurate without RSS (Real Solar System) mod, and perhaps Realism Overhaul (RO). @Ricardo LLI or TLI? I know for a fact that getting to or returning from any inclined orbit around the Mun always requires me more delta-V. Also keep in mind Mun's inclination is 0, unlike Earth and the Moon. $\endgroup$ – IT Bear Jan 4 '17 at 23:53
15
$\begingroup$

Shameless plug for Tudat (TU Delft Astrodynamics Toolbox)...

If you're looking for something that allows you a lot of freedom to set up and play with simulations, you might want to consider an open-source C++ project I've been working on for the last few years as part of my PhD. Most of the graduate students in my group use it, so a lot of effort has gone into it.

$\endgroup$
  • $\begingroup$ Is there a list of features somewhere? I couldn't find one. $\endgroup$ – user29 Sep 17 '13 at 22:23
  • 2
    $\begingroup$ We're actually in processes of streamlining the documentation, so the feature list is still under construction. You can find a working list of features here: tudat.tudelft.nl/projects/tudat/wiki/Feature_documentation. In addition, the interfaces are documented using Doxygen: tudat.tudelft.nl/projects/tudat/wiki/Doxygen_API_documentation. Lastly, the bundle that can be downloaded, includes two example simulators: one that propagates the orbits of two different satellites around the Earth, and the other that propagates a simplified Galileo constellation. $\endgroup$ – kartikkumar Sep 19 '13 at 8:21
14
$\begingroup$

As far as games/simulations go, I have stumbled upon Orbiter. Seems to have quite a few add-ons and a forum. Unfortunately, works under Windows only.

$\endgroup$
  • $\begingroup$ I agree, Orbiter is a brilliant sim, and with its strong community of modders, some amazing addons are available. $\endgroup$ – InquisitiveInquirer Feb 10 '14 at 20:57
  • $\begingroup$ I haven't tested it extensively, but Orbiter installs and runs quite well on Ubuntu 18.04 Linux under wine-stable version 3.0 $\endgroup$ – Organic Marble Nov 12 '18 at 19:45
11
$\begingroup$

Orekit is the best space mechanics tool I know. Developed in Java (cross-platform), Orekit is a space dynamics open source library, based on Common Apache Math.

Despite the fact it has no visualisation tool so far, the different force model it contains make it a really good choice if your plan is to solve accurate flight dynamics problem.

Orekit includes all available IERS convention for frame definition. It includes orbit propagators of 3 types :
- Analytical (Kepler, Eckstein-Heschler, SDP4/SGP4 with 2006 corrections)
- Numerical (with customizable force models)
- semi-analytical propagation based on Draper Semianalytic Satellite Theory (DSST) with customizable force models.

For information, you'll find on the same address above the Rugged add-on. Rugged is a sensor-to-terrain mapping tool which takes into account Digital Elevation Models (DEM) in its line of sight computation. It is a free software intermediate-level library written in Java and implemented as an add-on for Orekit.

Here are some of the features Orekit provides :

Time

high accuracy absolute dates
time scales (TAI, UTC, UT1, GPS, TT, TCG, TDB, TCB, GMST, GST ...)
transparent handling of leap seconds

Geometry

frames hierarchy supporting fixed and time-dependent (or telemetry-dependent) frames
predefined frames (EME2000/J2000, ICRF, GCRF, ITRF93, ITRF97, ITRF2000, ITRF2005, ITRF2008 and intermediate frames, TOD, MOD, GTOD and TOD frames, Veis, topocentric, tnw and qsw local orbital frames, spacecraft body, Moon, Sun, planets, solar system barycenter, Earth-Moon barycenter)
user extensible (used operationally in real time with a set of about 60 frames on several spacecraft)
transparent handling of IERS Earth Orientation Parameters (for both new CIO-based frames following IERS 2010 conventions and old equinox-based frames)
transparent handling of JPL DE 4xx (405, 406 and more recent) and INPOP ephemerides
transforms including kinematic combination effects
composite transforms reduction and caching for efficiency
extensible central body shapes models (with predefined spherical and ellipsoidic shapes)
cartesian and geodesic coordinates, kinematics

Spacecraft state

Cartesian, Keplerian (including hyperbolic), circular and equinoctial parameters
Two-Line Elements
transparent conversion between all parameters
automatic binding with frames
attitude state and derivative
Jacobians
mass management
user-defined associated state (for example battery status, or higher order derivatives, or anything else)

Propagation

analytical propagation models:
    Kepler
    Eckstein-Heschler
    SDP4/SGP4 with 2006 corrections
numerical propagation with:
    customizable force models:
        central attraction
        gravity models (automatic reading of ICGEM (new Eigen models), SHM (old Eigen models), EGM and GRGS gravity field files formats, even compressed)
        atmospheric drag (DTM2000, Jacchia-Bowman 2006, Harris-Priester and simple exponential models) and Marshall solar Activity Future Estimation
        third body attraction (with data for Sun, Moon and all solar systems planets)
        radiation pressure with eclipses
        solid tides, with or without solid pole tide
        ocean tides, with or without ocean pole tide
        general relativity
        multiple maneuvers
    state of the art ODE integrators (adaptive stepsize with error control, continuous output, switching functions, G-stop, step normalization ...)
    computation of Jacobians with respect to orbital parameters and selected force models parameters
    serialization mechanism to store complete results on persistent storage for later use
semi-analytical propagation based on Draper Semianalytic Satellite Theory (DSST) with customizable force models:
    central body with full gravity model
    third body attraction
    atmospheric drag
    radiation pressure with eclipses
tabulated ephemerides:
    file based
    memory based
    integration based
unified interface above analytical/numerical/semianalytical/tabulated propagators for easy switch from coarse analysis to fine simulation with one line change
all propagators can be used in several different modes:
    slave mode: propagator is driven by calling application
    master mode: propagator drives application callback functions
    ephemeris generation mode: all intermediate results are stored during propagation and provided back to the application which can navigate at will through them, effectively using the propagated orbit as if it was an analytical model, even if it really is a numerically propagated one, which is ideal for search and iterative algorithms
handling of discrete events during integration (models changes, G-stop, simple notifications ...)
predefined discrete events:
    eclipse (both umbra and penumbra)
    ascending and descending node crossing
    apogee and perigee crossing
    alignment with some body in the orbital plane (with customizable threshold angle)
    raising/setting with respect to a ground location (with customizable triggering elevation)
    date
    altitude crossing
    target detection in sensor field of view (circular or dihedral)
    complex geographic zones traversal
    impulse maneuvers occurrence
possibility of slightly shifting events in time (for example to switch from solar pointing mode to something else a few minutes before eclipse entry and reverting to solar pointing mode a few minutes after eclipse exit)

Attitude

extensible attitude evolution models
predefined laws:
    central body related attitude (nadir pointing, center pointing, target pointing, yaw compensation, yaw-steering)
    orbit referenced attitudes (LOF aligned, offset on all axes)
    space referenced attitudes (inertial, celestial body-pointed, spin-stabilized)
    tabulated attitudes

Orbit file handling

loading of SP3-a and SP3-c orbit files
loading of CCSDS orbit data messages

Atmosphere models

tropospheric delay (modified Saastamoinen)
geomagnetic field (WMM, IGRF)

Customizable data loading

loading from local disk
loading from classpath
loading from network (even through internet proxies)
support for zip archives
support from gzip compressed files
plugin mechanism to delegate loading to user defined database or data access library

Localized in several languages

English
French
Galician
German
Greek
Italian
Norwegian
Romanian
Spanish
$\endgroup$
9
$\begingroup$

PyEphem:

PyEphem provides scientific-grade astronomical computations for the Python programming language. Given a date and location on the Earth’s surface, it can compute the positions of the Sun and Moon, of the planets and their moons, and of any asteroids, comets, or earth satellites whose orbital elements the user can provide. Additional functions are provided to compute the angular separation between two objects in the sky, to determine the constellation in which an object lies, and to find the times at which an object rises, transits, and sets on a particular day.

The numerical routines that lie behind PyEphem are those from the wonderful XEphem astronomy application, whose author, Elwood Downey, generously gave permission for us to use them as the basis for PyEphem.

jovian_moon_chart.py

This script prints out where the Jovian moons are around Jupiter for the next few days.

import ephem

moons = ((ephem.Io(), 'i'),
         (ephem.Europa(), 'e'),
         (ephem.Ganymede(), 'g'),
         (ephem.Callisto(), 'c'))

# How to place discrete characters on a line that actually represents
# the real numbers -maxradii to +maxradii.

linelen = 65
maxradii = 30.

def put(line, character, radii):
    if abs(radii) > maxradii:
        return
    offset = radii / maxradii * (linelen - 1) / 2
    i = int(linelen / 2 + offset)
    line[i] = character

interval = ephem.hour * 3
now = ephem.now()
now -= now % interval

t = now
while t < now + 2:
    line = [' '] * linelen
    put(line, 'J', 0)
    for moon, character in moons:
        moon.compute(t)
        put(line, character, moon.x)
    print str(ephem.date(t))[5:], ''.join(line).rstrip()
    t += interval

print 'East is to the right;',
print ', '.join([ '%s = %s' % (c, m.name) for m, c in moons ])
3/2 12:00:00                         g e     J   i                    c
3/2 15:00:00                        ge       J    i                    c
3/2 18:00:00                      g e        J     i                   c
3/2 21:00:00                     g e         J    i                    c
3/3 00:00:00                    g  e         J  i                       c
3/3 03:00:00                   g   e         Ji                         c
3/3 06:00:00                  g    e       i J                          c
3/3 09:00:00                  g     e   i    J                          c
3/3 12:00:00                 g       e i     J                          c
3/3 15:00:00                 g        ie     J                          c
3/3 18:00:00                 g         i e   J                          c
3/3 21:00:00                 g           i e J                          c
3/4 00:00:00                 g             i e                          c
3/4 03:00:00                  g              Jie                        c
3/4 06:00:00                  g              J  ie                      c
3/4 09:00:00                   g             J    ie                   c
East is to the right; i = Io, e = Europa, g = Ganymede, c = Callisto
$\endgroup$
  • 2
    $\begingroup$ PyEphem doesn't compute orbits for hypothetical objects, it only tells you where real existing objects are. $\endgroup$ – barrycarter Dec 30 '14 at 0:01
  • 1
    $\begingroup$ @barrycarter : What prevents a user from entering hypothetical orbital elements? $\endgroup$ – rickhg12hs Dec 30 '14 at 10:58
  • 2
    $\begingroup$ You're right, my mistake! rhodesmill.org/pyephem/quick.html#bodies-with-orbital-elements notes you can create bodies with your own orbital elements. I know pyephem uses DE421 for planetary positions and just assumed it used similar data for planetary satellites. Actually, I knew this wasn't the case, since I've explicitly requested it as a feature for skyfield, pyephem's successor: github.com/brandon-rhodes/python-skyfield/issues/19 $\endgroup$ – barrycarter Dec 30 '14 at 12:34
  • $\begingroup$ @barrycarter Does it really give accurate results, considering the Moon, Sun and zonal harmonics effects? Also, we may consider Jupiter and Venus $\endgroup$ – Leeloo Jul 8 '18 at 21:15
6
$\begingroup$

Here's a few other things out there as well depending on what you're looking for...

WEB

While not a simulator for orbital mechanics, I found this Trajectory Browser from Nasa to be interesting.

More game-like is the LEO launcher app and the launch simulator.

There's the JPL 3d simulator and the Near-Earth-Object Simulator (both web based). There is also a JPL SSD simulator and here's some quick start instructions. Like so:

system

*nix

For *nix (linux, unix) systems there is also the FERMI toolset with an overview here.

Windows-PC

Popular and Free game is orbital simulator in 3-d mentioned by deer hunter.

$\endgroup$
5
$\begingroup$

iTraject might be very useful for learning orbital mechanics. Its numerical solver makes it very flexible. It also uses very precise astronomical algorithms for celestial positions. You can actually set your initial date, predict when your vehicle will be in Moon's SOI with analytical calculations, and make a flyby around the Moon. Moreover, you can get ground station, epoch and keplerian elements parameters with current time.

here a video: http://www.youtube.com/watch?v=msCEdOq5WhI

$\endgroup$
  • 2
    $\begingroup$ Please note that if you are affiliated with the application, you have to state it clearly in the post. Otherwise, thanks for the info. $\endgroup$ – Deer Hunter Dec 8 '13 at 9:08
2
$\begingroup$

You could try Stellarium for locating most celestial objects from the earth frame. AFAIK, it works very well on Linux, and is available for OS X and Windows as well.

$\endgroup$
  • 2
    $\begingroup$ Stellarium doesn't compute orbits for hypothetical objects, it only tells you where real existing objects are. $\endgroup$ – barrycarter Dec 30 '14 at 0:00
0
$\begingroup$

Check out Saber Astronautics' PIGI. https://saberastro.com/

By far the best graphics and great ease of use, awesome for visualizing orbits on all the planets.

Their casual license starts at just $15 a month, so worth looking at. PC and Mac.

https://saberastro.com/products/

$\endgroup$

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.