# FreeFlyer

FreeFlyer is a commercial off-the-shelf software application for satellite mission analysis, design, and operations. Its architecture revolves around 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, and LP-165 gravity potential models; atmospheric density models like Jacchia-Roberts, Harris-Priester, and NRL-MSIS; the International Reference Ionosphere model; and the International Geomagnetic Reference Field magnetic field model.

## Background

FreeFlyer is owned and developed by a.i. solutions, Inc. and 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 two tiers of rising functionality.
| Engineer | Mission |
| The Engineer tier includes: Scripting language and IDE 2D and 3D visualizations with customizable layouts Multiple spacecraft and hardware modeling including sensors, antennas, tanks, thrusters, and solar arrays Coverage analysis including sensors, antennas, ground stations, and other spacecraft Impulsive and finite maneuver modeling, including targeting system Spacecraft attitude modeling including attitude matrix, quaternions, Euler angles, RA/DEC, spin rates, and attitude history files Sensor and antenna modeling, including custom patterns and obscuration masking Maneuver modeling, including finite burns and support for chemical and electrical (low-thrust) propulsion systems Coverage analysis, including visibility and access calculations Added coordinate system types including custom/user-defined systems MATLAB Interface Automation of flight dynamics tasks Monte Carlo analysis Collision Avoidance/Conjunction Analysis Formation Flying Mission Plan performance profiling | The Mission tier includes all Engineer functionality, as well as: TCP/IP socket and SQL database interface Orbit determination and error analysis Estimation in Cartesian or Equinoctial element sets Batch Least Squares Extended Kalman Filter Unscented Kalman Filter Square Root Information Filter Generic optimization capability for multivariable optimization of user-defined objective functions using SNOPT, IPOPT, and other optimization software Generation of NORAD Two-Line Element states from ephemeris or observational data Access to the FreeFlyer Runtime API from C, C#, Python, or Java Ability to include custom objects and force models via C# extensions: COM objects Customizable user interface Generic ASCII/binary file read/write Automatic e-mail notification Terrain modeling |

## FreeFlyer scripting

FreeFlyer contains an object-oriented scripting language and an accompanying integrated development environment.
Below is a basic FreeFlyer script that creates and displays a spacecraft: