/cascade

Propagate the evolution of large number of orbiting objects while detecting reliably conjunctions and collisions.

Primary LanguageC++Mozilla Public License 2.0MPL-2.0

cascade

Code Coverage


Logo

n-body simulation for the evolution of orbital environments
Explore the docs »

Report bug · Request feature · Discuss

As the number of artificial satellites orbiting our planet grows, the likelihood of collisions increases, potentially triggering a cascade effect making certain orbits unusable.

cascade is a C++/Python library developed to propagate the evolution of large number of orbiting objects while detecting reliably close encounters and collisions. It is coded in modern C++20 with focus on the efficency of the underlying N-body simulation with collision/conjunction detection. Its development was motivated to help conjunction tracking and collision detection of orbiting space debris populations.

Notable features include:

  • an original collision detection algorithm exploiting high order Taylor expansions.
  • guaranteed detection of all occuring collisions and conjunctions.
  • high precision orbital propagation via Taylor integration.
  • possibility to define custom dynamics.
  • seamless usage of modern SIMD instruction sets (including AVX/AVX2/AVX-512/Neon/VSX).
  • seamless multi-threaded parallelisation.

Installation

Via pip:

$ pip install esa_cascade

Via conda + conda-forge:

$ conda install cascade