KessPy is a Python wrapper for Kessler.rs built with PyO3. The primary motivation behind this project is to offer a Python library for executing orbital debris simulations with high accuracy and performance while ensuring seamless integration with other Python libraries.
The project is fully open source and is available on GitHub.
Key design goals
- Accurate: KessPy harnesses the accuracy and performance of Kessler.rs to compute the initial conditions of in-orbit fragmentation events.
- Efficient: By using PyO3, a Rust-to-Python binding tool, KessPy delivers Rust's performance alongside Python's ease of use, enabling users to conduct orbital debris simulations quickly and effortlessly.
- Interoperable: KessPy is designed to work seamlessly with popular Python libraries for scientific computing, such as NumPy and SciPy, facilitating integration into existing workflows.
- Open source: As an open-source project, KessPy encourages users to contribute to and enhance the codebase.
About KessPy
KessPy's development was driven by the need to create a high-performance simulation tool compatible with other Python libraries commonly employed in the aerospace industry. By providing a Python interface to Kessler.rs, users can benefit from Rust's performance without leaving the familiar Python ecosystem.
Furthermore, KessPy offers a straightforward and user-friendly interface for carrying out complex orbital debris simulations. Users can effortlessly define the initial conditions of a fragmentation event, specify simulation parameters, and run the simulation. The results can be visualized using Python libraries such as Matplotlib or displayed using tools like Jupyter notebooks.
KessPy is designed to be accessible and intuitive for a wide range of users, including those who may not have experience with Rust or low-level programming languages. Consequently, I have aimed to make the library as intuitive and easy to use as possible while preserving the performance and accuracy of Kessler.rs.
What's next?
KessPy is currently in the early stages of development. I am actively working on adding more features and enhancing the documentation. To contribute to the project, please visit the GitHub repository, open an issue, or submit a pull request.