According to Greek mythology, Cassandra was a Trojan priestess simultaneously blessed with the gift of providence and cursed with the fact that no one was to believe her. It is then fitting that a simple simulation that attempts to model such a complex setting carries her name. This Cassandra, however, wants to break free from her curse.
Currently written for enhanced readability, Cassandra allows from plug-and-play options to full customization to the deepest level.
Eventually, Cassandra will foresee all TVC powered flights, even those which are not mentioned to her. Until then, there's much to do.
- Versatile creation of complex rockets
- Clean code enhanced for readability
- Multiple numerical integration methods (and extremely easy to incorporate new ones)
- Flight computer software loop cycle time decoupled from the simulation's timestep
Cassandra is part of the Hermes Project, an initiative whose goal is to create open-source reliable model rockets. There is so much to do besides coding: CAD design, Data analytics, Graphic design. If you want to know more and/or feel like you could help in any way, come say hi!
For now, until we get Cassandra on PyPi, do:
pip3 install git+https://github.com/Popeyef5/Cassandra.git --upgrade
A simple "hello_rocket" example:
from cassandra.rockets import SimpleRocket
from cassandra.simulation import Simulation
SIM_TIME = 5
SIM_TIMESTEP = 0.01
rocket = SimpleRocket()
simulation = Simulation(rocket)
simulation.run(SIM_TIME, SIM_TIMESTEP)
simulation.animate()
To get a sample animation right away:
python examples/hello_world.py
UI in development. In the meantime, here's a low FPS gif for you:
Although there is plenty to do and everything is welcome, if you want to contribute but don't know how to, here are a couple of ideas that would come in handy (in no particular order):
A logo is always nice :)On the works!- Tests (pretty please?)
- GitHub actions
- Improve UI
- Improve animation
- Add aerodynamics (tough!)
- Add support for hybrid/liquid motors
- ThreeJS based animation
- Add common rocket components as subcasses with preset attributes
- Support for RASP (.eng) and RockSim (.rse) formats