Introducing FreeFlyer® 7.4

November 29, 2018

FreeFlyer 7.4 Feature Highlights

FreeFlyer® 7.4 is packed with over 160 new features; here are just a few of the powerful changes you can find in this release:

  • Organize and optimize your scripting with new Structs, object removal in Lists, and built-in garbage collection
  • Generate SPICE SPK ephemerides for interplanetary analysis
  • Use DSN/3-Way Doppler tracking data support in FreeFlyer Orbit Determination
  • Experience FreeFlyer Output Visualizations on the Linux platform
  • Specify the timing precision mode of a RuntimeApiEngine class and interact with TimeSpan objects via the Runtime API

RuntimeApiEngine in FreeFlyer 7.4

FreeFlyer 7.4 Feature Specifications

FreeFlyer Visualizations on Linux

  • Mission Plans executed on Linux either through the command line or the runtime API can now generate output visualizations.
  • ViewWindow, GridWindow, ConsoleWindow, DataTableWindow, and WatchWindow output objects are all supported in this initial implementation of output support on Linux.
  • All Viewpoint types are supported.


New features in FreeFlyer Scripting

  • FreeFlyer script now allows users to define Structs, which are collections of related FreeFlyer objects. Unlike Lists, Structs can contain many objects of different types.
  • FreeFlyer Structs are designed to allow users to easily import and export JSON-formatted data.
  • The number of elements in a List or Formation can now be increased or decreased at any time. In previous versions of FreeFlyer, users were not allowed to remove objects from Lists.
  • FreeFlyer script now provides a reference assignment operator.
  • Behind the scenes, FreeFlyer now has a garbage collector for cleaning up memory for objects that are no longer being used.
  • The “step” keyword is no longer necessary in the syntax for For loops. The default “step” increment is 1.
  • The “then” keyword is no longer necessary in the syntax for If statements.


New features for Interplanetary Analysis

  • FreeFlyer now supports writing of SPICE ephemerides (SPK files in the .bsp format).
  • Users can now easily change the propagator and orbital elements of CelestialObjects.
  • The CelestialObject.SetPropagatorType() method can be used to set the propagator to TwoBody, SpiceEphemeris, or reset to the default DE propagator.
  • The CelestialObject.SetCartesianState() and CelestialObject.SetKeplerianState() methods can be used to easily set a planet or moon’s orbital state in any of FreeFlyer’s built-in reference frames.
  • This allows users to “downgrade” the fidelity of the FreeFlyer solar system model, making it much easier to model idealized trajectories for early mission design (e.g. Hohmann transfers, CRTBP dynamics).
  • Added new reference frames for analysis beyond Earth orbit:
    • Moon Frames:
      • Added support for velocity vector conversions in the Moon Fixed (Principal Axis Rotating, or PA) frame.
      • Moon PA – Inertial at J2000 frame.
      • Moon PA – Inertial at Epoch frame.
      • Moon Mean Earth Rotating (or Moon ME) frame.
      • Moon ME – Inertial at J2000 frame.
      • Moon ME – Inertial at Epoch frame.
    • Generic CelestialObject Frames:
      • Body Fixed frame.
      • Inertial Equatorial J2000 frame.
      • Inertial Equatorial At Epoch frame.
      • These new frames are supported by the PositionConvert, VelocityConvert, and PositionVelocityConvert functions, as well as methods like Spacecraft.SetKeplerianState() and CelestialObject.GetCartesianStateAtEpoch().
    • Added new Spacecraft properties:
      • C3 (characteristic energy).
      • Hyperbolic Excess Velocity.


DSN/3-Way Doppler Tracking Data Support

  • Added support for processing 3-way ground-based tracking data where the transmitting and receiving stations are different.
  • Improved and added additional support for processing Deep Space Network (DSN) data, including native processing of Trk 2-34 formatted data files, frequency ramping management, and range disambiguation.


Runtime API Improvements

  • The timing precision mode of a RuntimeApiEngine class can now be specified in the constructor for the engine.
  • TimeSpan objects are now a natively supported expression type that can be moved between an instance of FreeFlyer and an external application using the runtime API.


Miscellaneous Improvements

  • The play and pause buttons on the main FreeFlyer GUI have been combined for ease of use.
  • Useful new properties and methods:
    • Added methods to easily set or get a Spacecraft’s Keplerian or Cartesian state in any built-in reference frame (e.g. Spacecraft.SetKeplerianState(), Spacecraft.GetCartesianState()).
    • Added GroundStation.InShadow() method and Spacecraft.SubSatellitePointInShadow() method.
    • Added Sensor.AttitudeMatrix and Sensor.ObscurationAttitudeMatrix properties to access the direction cosine matrix representing the sensor’s orientation.
    • The SetFullCovariance method has been added to all OD estimators to support assigning the full covariance directly.
  • Visualization enhancements:
    • The ViewWindow.MouseInteractionEnabled property has been added to disable Viewpoint manipulation for a particular ViewWindow.
    • Added properties for PointGroup.PointOpacity and PointGroup.PointSize to control the display of PointGroups.
    • Added GraphicsOverlay.Shapes[i].PointWidth property to control the display of GraphicsOverlay points.
  • Scripting language enhancements:
    • Added support CoordinateSystems with the literal matrix operator. The syntax [CoordinateSystem] can now be used to return a literal matrix..
    • Whitespace is now allowed before and after description comment slashes (///).
  • Added method versions of various commands:
    • Object.Save() can now be used in place of the Save command.
    • Object.Restore() can now be used in place of the Restore command.
    • Ephemeris.GenerateEphemeris() and Ephemeris.AddVectorData() can now be used in place of the Put command.
    • Console.Write() method can now be used in place of the Report command.
  • Enhanced user support:
    • The UserInterface, FileInterface, FileProperties, and StringTokenizer objects are all now available in the Engineer license tier.
    • 90 minutes of introductory FreeFlyer Fundamentals Training now available on YouTube.
> View FreeFlyer Blog