| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
 |  | |||
EnSim is an open-source desktop application and Python package for liquid-rocket propulsion analysis and six-degree-of-freedom flight simulation. It is intended for preliminary design, reproducible trade studies and engineering education.
The interface uses SI units. Long-running engine, flight and uncertainty jobs run outside the GUI event loop. Project files remain local; the application does not require a network connection.
EnSim distinguishes verification from validation:
See validation, model limitations and theory before using results in a design decision. EnSim is not a certification, range-safety or hardware-release tool.
Self-contained downloads that do not require a separate Python installation are available on the GitHub Releases page:
Each desktop file has a matching .sha256 checksum. The current Windows and macOS builds are not code-signed, so the operating system may ask for explicit confirmation before the first launch.
Python 3.10 or newer is required.
python -m pip install ensim
ensimFor a source checkout:
git clone https://github.com/SpaceEngineerSS/EnSim.git
cd EnSim
python -m venv .venv
python -m pip install -e ".[dev,docs]"
python -m pytest
python main.pyThe command ensim --test performs a short installation and coupled-physics smoke test. It is not a substitute for the complete pytest suite.
from ensim.core.chemistry import CombustionProblem
from ensim.core.propulsion import NozzleConditions, calculate_performance
from ensim.utils.nasa_parser import load_default_database
database = load_default_database()
problem = CombustionProblem(database)
problem.add_fuel("H2", moles=2.0, temperature=298.15)
problem.add_oxidizer("O2", moles=1.0, temperature=298.15)
equilibrium = problem.solve(pressure=6.89e6)
nozzle = NozzleConditions(
area_ratio=40.0,
chamber_pressure=6.89e6,
ambient_pressure=0.0,
)
performance = calculate_performance(
T_chamber=equilibrium.temperature,
P_chamber=nozzle.chamber_pressure,
gamma=equilibrium.gamma,
mean_molecular_weight=equilibrium.mean_molecular_weight,
nozzle=nozzle,
)
print(equilibrium.temperature, performance.isp)mean_molecular_weight is expressed in g/mol; pressures are Pa and temperatures are K.
python -m ruff check src tests
python -m pytest
python -m build
python -m twine check dist/*Bug reports and scientific challenges are welcome through the issue tracker. A scientific issue should include units, full input data, the reference source and enough information to reproduce the comparison.
EnSim is released under the MIT License. Citation metadata is available in CITATION.cff.
| Back | FazBrowse Home | New Git URL |