Skip to main content

EnSim - Professional Rocket Engine & Flight Simulation Platform

Project description

EnSim Logo

EnSim

๐Ÿš€ Professional Rocket Engine & Flight Simulation Platform

CI Status PyPI Version License: MIT Python 3.10+ NASA CEA Validated

Features โ€ข Quick Start โ€ข Documentation โ€ข Validation โ€ข Contributing


Overview

EnSim is an open-source desktop application for rocket propulsion analysis and flight simulation. It combines NASA-validated thermochemical equilibrium calculations with full 6-DOF trajectory simulation, all within a modern, user-friendly interface.

Whether you're a student learning rocket science, a researcher exploring propulsion concepts, or an engineer performing preliminary design analysis, EnSim provides the tools you need.

EnSim Interface

โœจ Features

๐Ÿ”ฌ Thermochemical Analysis

  • NASA CEA Methodology: Gordon-McBride equilibrium solver with Gibbs free energy minimization
  • Comprehensive Species Database: 35+ species including Hโ‚‚, Oโ‚‚, CHโ‚„, RP-1, Nโ‚‚Oโ‚„, UDMH, MMH
  • High-Temperature Dissociation: Full accounting for H, O, OH, NO, and other radicals
  • Validated Accuracy: <2% error vs NASA CEA reference data

๐Ÿš€ Performance Calculations

  • Chamber Temperature: Adiabatic flame temperature with dissociation
  • Characteristic Velocity (C)*: Key measure of combustion efficiency
  • Specific Impulse (Isp): Both vacuum and sea-level values
  • Thrust Coefficient (Cf): With nozzle divergence corrections

๐ŸŽฏ 6-DOF Flight Simulation

  • Full Rigid Body Dynamics: Quaternion-based orientation (no gimbal lock)
  • Adaptive Integration: RK45 Dormand-Prince with automatic step sizing
  • Aerodynamic Models: Configurable drag and stability derivatives
  • Dense Output: Cubic Hermite interpolation for smooth trajectories

๐ŸŽฒ Monte Carlo Analysis

  • Landing Dispersion: CEP and 3-sigma confidence ellipses
  • Performance Variability: Statistical analysis of Isp, thrust, burn time
  • Parallel Processing: Multi-core execution for thousands of runs
  • Visualization: Scatter plots, histograms, and probability contours

๐ŸŽจ Modern User Interface

  • Mission Control Aesthetic: SpaceX-inspired dark theme with neon accents
  • Real-time KPI Dashboard: Live display of key performance metrics
  • Interactive 3D Visualization: PyVista-powered nozzle and trajectory display
  • Professional Exports: CSV data, Markdown reports, STL/OBJ/PLY 3D models

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.10 or higher
  • pip package manager

Installation

Option 1: Install from PyPI (Recommended)

pip install ensim

Option 2: Install from Source

# Clone the repository
git clone https://github.com/SpaceEngineerSS/EnSim.git
cd EnSim

# Create virtual environment (recommended)
python -m venv venv

# Activate virtual environment
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

Running EnSim

# Launch the GUI application
python main.py

# Run with validation tests
python main.py --test

First Simulation

  1. Select Propellants: Choose fuel (e.g., Hโ‚‚) and oxidizer (e.g., Oโ‚‚)
  2. Set Conditions: Enter O/F ratio, chamber pressure, expansion ratio
  3. Run Simulation: Click "RUN SIMULATION" to calculate performance
  4. Analyze Results: View KPIs, graphs, and 3D nozzle visualization

๐Ÿ“– Documentation

Document Description
ARCHITECTURE.md System design and physics overview
docs/THEORY.md Mathematical formulation and equations
docs/VALIDATION.md NASA CEA comparison results
CONTRIBUTING.md Contribution guidelines
CHANGELOG.md Version history

โœ… Validation

EnSim is rigorously validated against NASA CEA, the industry standard for rocket propulsion analysis.

Validation Summary

Propellant Combination T_chamber Error Isp Error Status
LOX/LHโ‚‚ 1.76% 1.41% โœ… Pass
LOX/CHโ‚„ 0.48% 1.07% โœ… Pass
LOX/RP-1 0.49% 0.86% โœ… Pass
Nโ‚‚Oโ‚„/UDMH 0.56% 0.85% โœ… Pass

Overall Accuracy: Average error <1% across all validated cases

See VALIDATION.md for detailed comparison data.

๐Ÿ—๏ธ Architecture

EnSim/
โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ core/                 # Physics Engine (Numba JIT)
โ”‚   โ”‚   โ”œโ”€โ”€ chemistry.py         # Gibbs equilibrium solver
โ”‚   โ”‚   โ”œโ”€โ”€ propulsion.py        # Nozzle flow calculations
โ”‚   โ”‚   โ”œโ”€โ”€ flight_6dof.py       # 6-DOF dynamics
โ”‚   โ”‚   โ”œโ”€โ”€ integrators.py       # RK45, Hermite interpolation
โ”‚   โ”‚   โ”œโ”€โ”€ monte_carlo.py       # Dispersion analysis
โ”‚   โ”‚   โ””โ”€โ”€ thermodynamics.py    # NASA polynomial evaluation
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ ui/                   # User Interface (PyQt6)
โ”‚   โ”‚   โ”œโ”€โ”€ windows/             # Main window, dialogs
โ”‚   โ”‚   โ”œโ”€โ”€ widgets/             # Custom widgets
โ”‚   โ”‚   โ””โ”€โ”€ workers.py           # Background threads
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ ๐Ÿ“ utils/                # Utilities
โ”‚       โ”œโ”€โ”€ nasa_parser.py       # Thermo data parser
โ”‚       โ””โ”€โ”€ exporters.py         # Data export functions
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ data/                     # NASA thermodynamic database
โ”œโ”€โ”€ ๐Ÿ“ tests/                    # Test suite (pytest)
โ”œโ”€โ”€ ๐Ÿ“ docs/                     # Documentation
โ””โ”€โ”€ ๐Ÿ“ assets/                   # Icons, stylesheets

๐Ÿ”ง Technology Stack

Component Technology Purpose
GUI PyQt6 Modern cross-platform interface
Numerics NumPy, SciPy Array operations, optimization
Acceleration Numba JIT compilation for 10-100x speedup
3D Visualization PyVista Interactive nozzle/trajectory display
2D Plots Matplotlib Scientific plotting
Testing pytest Unit and validation tests

๐Ÿค Contributing

We welcome contributions from the community! Whether it's:

Development Setup

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run linting
ruff check src/

# Format code
black src/ tests/

๐Ÿ“œ License

This project is licensed under the MIT License - see LICENSE for details.

๐Ÿ™ Acknowledgments

  • NASA Glenn Research Center - Thermodynamic polynomial database
  • Sutton & Biblarz - "Rocket Propulsion Elements" reference
  • The open-source scientific Python community - NumPy, SciPy, Matplotlib

๐Ÿ“š References

  1. Gordon, S. & McBride, B.J. (1994). "Computer Program for Calculation of Complex Chemical Equilibrium Compositions and Applications". NASA Reference Publication 1311.

  2. McBride, B.J., Zehe, M.J., & Gordon, S. (2002). "NASA Glenn Coefficients for Calculating Thermodynamic Properties of Individual Species". NASA/TP-2002-211556.

  3. Sutton, G.P. & Biblarz, O. (2017). "Rocket Propulsion Elements". 9th Edition, Wiley.

  4. Anderson, J.D. (2003). "Modern Compressible Flow". 3rd Edition, McGraw-Hill.


Made with โค๏ธ for the aerospace community

โฌ†๏ธ Back to top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ensim-1.0.2.tar.gz (172.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ensim-1.0.2-py3-none-any.whl (197.1 kB view details)

Uploaded Python 3

File details

Details for the file ensim-1.0.2.tar.gz.

File metadata

  • Download URL: ensim-1.0.2.tar.gz
  • Upload date:
  • Size: 172.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ensim-1.0.2.tar.gz
Algorithm Hash digest
SHA256 36eb2e9327c147c557ce3f16b40d76e26bd8fbed50846505455cbf2a513333a7
MD5 70960faad4c497514ef1bdf374a04a0b
BLAKE2b-256 fcba3f9c80963aa7153c650ba47cf69c032186a9d4db3c82fce54792f1c5ab78

See more details on using hashes here.

Provenance

The following attestation bundles were made for ensim-1.0.2.tar.gz:

Publisher: release.yml on SpaceEngineerSS/EnSim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ensim-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: ensim-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 197.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ensim-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2332534b5c552247f3e1831462f3f9818213ca3c474c283cc40726383289601e
MD5 0e3817f15b42ac13115afe32e27d7eb1
BLAKE2b-256 c4f586be1f48d2536d4c90be1e9546bcdfdbf658ba076b008a74b2c7d0a046da

See more details on using hashes here.

Provenance

The following attestation bundles were made for ensim-1.0.2-py3-none-any.whl:

Publisher: release.yml on SpaceEngineerSS/EnSim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page