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

๐Ÿ“ธ Screenshots

Click to expand screenshots

Results & Graphs

Results Tab

Engine Analysis (Thermal & Cooling)

Engine Tab

Vehicle Configuration (Multi-Stage)

Vehicle Tab

3D Nozzle Visualization

3D Visualization

Advanced Engineering

Advanced Tab

โœจ 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

๐Ÿ”ง Advanced Engineering Tools

  • Multi-Stage Vehicles: Full staging simulation with preset rockets (Falcon 9, Saturn V)
  • Regenerative Cooling: Bartz correlation thermal analysis with channel design
  • Trajectory Optimization: Nozzle expansion ratio and stage mass allocation
  • Materials Database: 10 aerospace materials with thermal properties
  • 17 Propellant Presets: Ready-to-use fuel/oxidizer combinations

๐ŸŽจ Modern User Interface

  • Mission Control Aesthetic: SpaceX-inspired dark theme with cyan/green neon accents
  • Real-time KPI Dashboard: Live display of key performance metrics
  • Interactive 3D Visualization: PyVista-powered nozzle and trajectory display
  • SI/Imperial Units: One-click unit system toggle
  • 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-2.0.0.tar.gz (219.6 kB view details)

Uploaded Source

Built Distribution

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

ensim-2.0.0-py3-none-any.whl (249.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ensim-2.0.0.tar.gz
Algorithm Hash digest
SHA256 10541962549c630a145f64d4438a32d026e53c3bb3bd229e0c9456d3527c7bb6
MD5 5cbb5ca9bae5483c696b1492bdca5727
BLAKE2b-256 7c32106bfadbb8348246dc82b9417d27c0d44fd0b40bd85477ebaeaa301d45ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for ensim-2.0.0.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-2.0.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for ensim-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4131d97c398df4cb223f5fbafeb4a0180ebffceb6052add860a0a701a1893495
MD5 f3d1c37b9bc686f5f35f67641099f05b
BLAKE2b-256 9d4b8c1b183af24c1a56811260ba22777a83dbbf84c212a4a902edb43ade070a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ensim-2.0.0-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