Skip to content
/ cascade Public

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

License

Notifications You must be signed in to change notification settings

esa/cascade

Repository files navigation

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

Install conda env:

conda env create -f cascade_devel.yml
conda activate cascade_devel

Compile:

mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DBoost_NO_BOOST_CMAKE=ON -DPython3_EXECUTABLE=$CONDA_PREFIX/bin/python -DCASCADE_INSTALL_LIBDIR=lib -DCASCADE_BUILD_PYTHON_BINDINGS=yes -DCMAKE_BUILD_TYPE=Debug
make install