FreeFlyer

FreeFlyer is a commercial off-the-shelf software application for satellite mission analysis, design and operations. FreeFlyer's architecture centers on its native scripting language, known as FreeForm Script. As a mission planning tool, it encompasses several capabilities, including precise orbit modeling, 2D and 3D visualization, sensor modeling, maneuver modeling, maneuver estimation, plotting, orbit determination, tracking data simulation, and space environment modeling.
FreeFlyer implements standard astrodynamics models such as the JGM-2, EGM-96, LP-165 gravity potential models; the Jacchia-Roberts, Harris-Priester, and NRL-MSIS atmospheric density models; the International Reference Ionosphere model; and the International Geomagnetic Reference Field magnetic field model.
Background.
a.i. solutions, Inc. is the owner and developer of FreeFlyer which has been in use since 1997. FreeFlyer is utilized by NASA, NOAA, and the USAF for space mission operations, mission assurance, and analysis support.
Operational and analysis support.
FreeFlyer has been used to support many spacecraft missions, for mission planning analysis, operational analysis, or both. Specific mission examples include the International Space Station (ISS), the JSpOC Mission System, the Earth Observing System, Solar Dynamics Observatory (SDO), and Magnetospheric Multiscale Mission (MMS).
FreeFlyer has also been successfully used to conduct analysis in both the high-performance computing (HPC) and service-oriented architecture (SOA) environments.
Software tiers.
FreeFlyer is one stand-alone product with no added modules, though it does have two tiers of rising functionality.
FreeFlyer scripting.
The FreeFlyer Engineer and Mission tiers contain an integrated scripting language and development environment. The scripting language is an object-oriented script with objects and commands. Objects include properties and methods.
An example of FreeFlyer scripting is this:
 // Create a spacecraft object
 Spacecraft sc1;
 // Propagate and view the spacecraft for two days
 While (sc1.ElapsedTime < TIMESPAN(2 days));
 Step sc1;
 View sc1;
 End;