Gravity Engine 2
Contents
Gravity Engine 2¶
Gravity Engine 2 is a Unity asset that provides gravitation simulation and orbital mechanics.
Gravity Engine 2 provides a complete toolkit for your space game physics.
create and configure orbits with editor and in-scene views
support for manual maneuvers, Hohmann and Lambert transfers
propagators for KEPLER, SGP4, ephemeris and PKEPLER motion
ability to use multiple evolution engines (no singletons!) in a scene
optional use of the Unity job system to offload physics calculations
clear separation between gravitational computation and the display of objects, optional multiple displays
simple, focused API
clear separation of world, physics and display scales
support for patched conic evolution
ability to build ALL of the solar system (planets, moons and small objects) in a sensible hierarchical model
rocket launch with ascent steering
circular three body evolution (cis-lunar etc.) with ability to import halo orbits from JPL
There are “quick tour” videos for the sample folders:
What’s New in 7.0¶
There are two new features in release 7.0:
PLANET_SURFACE
propagator inGECore
with support inGSBody
Methods to monitor and copy patches (as well as significant patch bug fixes)
There are also important internal bug fixes in GECore
around the use of patches
that change propagation type. For example an SGP4 satellite that uses a Hohmann transfer
requires a patch of type KEPLER
to match the orbit computed by the transfer. It can then
return to SGP4 propagation after the transfer completes.
Code has also been added to create a patch in the case of orbit decay for SGP4 propagation. This allows the final position to be “held” and a reverse-time slider to rewind time from the decayed position.
PLANET_SURFACE
¶
The idea of the PLANET_SURFACE
propagator is to locate a body on a planet surface
(using the radius from the planet’s optional physicsal info) and to evolve the body in a way
that corresponds to th eplanets rotation rate. This is useful for creating ground stations
or lauch sites that are present in GECore
and allows e.g. line of sight computations
etc. to be done with values retrieved from GECore
.
Patch Additions*¶
GECore
has new methods:
public PatchData PatchDataForIdAtTime(int id, double tWorld)
public List<PatchData> PatchesForId(int id)
public void PatchesCopyFrom(int toBodyId, int fromBodyId, double fromWorldTime)