Skip to content

πŸš€ Professional rocket engine simulation & 6-DOF flight analysis platform. NASA CEA validated thermochemistry, real-time performance calculations, Monte Carlo dispersion analysis.

License

Notifications You must be signed in to change notification settings

SpaceEngineerSS/EnSim

Repository files navigation

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

About

πŸš€ Professional rocket engine simulation & 6-DOF flight analysis platform. NASA CEA validated thermochemistry, real-time performance calculations, Monte Carlo dispersion analysis.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published