Python Based Analysis of Rendezvous, Proximity, Operation, and Docking Maneuvers (PyRPOD)

This code simulates jet firing histories, vehicle dynamics, and plume impingement interactions to study RPOD (Rendezvous, Proximity Operations, and Docking) maneuvers relevant to active space-station operations.
The objective is to enable rapid analysis of early vehicle designs to assess compliance with competing mission requirements and to explore design spaces for iteration toward an optimal design. Ideally, this tool aims to increase operational safety and decrease design costs of active space-station operation. The project features parameterized simulation cases, fuel efficiency calculations, plume-surface interaction modeling, and automated transformations between STL and VTK formats to support flexible data visualization.
PyRPOD utilizies scientific libraries such as NumPy, SciPy, Matplotlib, and SymPy, with outputs in STL and VTK formats suitable for visualization in ParaView. Modular testing and validation cases ensures accuracy code resiliency for future developments. The target audience for this code is researchers and engineers in aerospace engineering and computational modeling.
case/: Contains specific case configurations, results, and model transformations.data/: Stores raw data files used across cases, including flight plans, STL models, and test definitions.pyrpod/: Python modules for running and managing simulations (main source code).tests/: Unit, integration, and verification tests for the project.validation/: Validation and Verification Tests of physical models used.requirements.txt: Lists project dependencies for environment setup.
-
Clone the repository:
git clone https://github.com/plume-kit/PyRPOD
-
Install dependencies:
pip install -r requirements.txt
-
Run all test cases.
python -m pytest
It is recomended to use
python -m pytestrather than the barepytestcommand. This guarantees thepythonyou're currently using (venv, conda env, etc.) runs the tests, avoidingModuleNotFoundErrors that show up if a system-widepytest(e.g. installed viaapt) ends up on yourPATHinstead of the one in the environment where you ranpip install -r requirements.txt. -
Run a subset of test cases using markers (auto-tagged by category and subsystem).
python -m pytest -m unit # unit tests only python -m pytest -m integration # integration tests only python -m pytest -m verification # verification tests only python -m pytest -m rpod # a specific subsystem (mdao, mission, plume, rpod) python -m pytest tests/rpod # or just point pytest at a directory/file directly