# ange-yaghi/engine-sim

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ange-yaghi-engine-sim).**

9,420 stars · 893 forks · C++ · MIT

## Links

- GitHub: https://github.com/ange-yaghi/engine-sim
- Homepage: http://engine-sim.parts/
- awesome-repositories: https://awesome-repositories.com/repository/ange-yaghi-engine-sim.md

## Topics

`engine` `simulation`

## Description

This is an interactive combustion engine simulator that models internal combustion engine mechanics and generates realistic real-time audio output. The simulation computes torque, RPM, and throttle response from user-defined engine components and parameters, with keyboard controls for ignition, starter, throttle, clutch, gears, and simulation speed.

The engine behavior is modeled by assembling reusable mechanical parts like cylinders, crankshafts, and exhausts with adjustable parameters, using a custom node-graph scripting language that defines engine components as interconnected nodes. Audio is generated in real time by processing engine parameters through a directed graph of nodes that compute torque, RPM, and sound, while a virtual dynamometer measures horsepower and torque by holding the engine at a target RPM against a simulated load.

Engines are loaded from external configuration files by specifying a path and node name, allowing modular swapping of engine definitions. The diagnostic error reporting system checks script parsing and execution for argument mismatches, undefined references, and syntax errors to aid debugging.

## Tags

### Part of an Awesome List

- [Combustion Engine Simulators](https://awesome-repositories.com/f/awesome-lists/devtools/simulation-and-modeling/combustion-engine-simulators.md) — Models internal combustion engine mechanics with configurable components for torque, RPM, and throttle response.
- [Mechanical Dynamics Simulators](https://awesome-repositories.com/f/awesome-lists/ai/physics-simulation/mechanical-dynamics-simulators.md) — Computes engine response by simulating throttle, load, and inertia dynamics in real time.

### Development Tools & Productivity

- [Vehicle Simulation Controls](https://awesome-repositories.com/f/development-tools-productivity/keyboard-interaction-controls/vehicle-simulation-controls.md) — Controls ignition, starter, throttle, clutch, gears, and simulation speed using keyboard inputs.
- [Engine Definition Importers](https://awesome-repositories.com/f/development-tools-productivity/project-imports/external-file-importers/configuration-file-importers/engine-definition-importers.md) — Imports engine files by path and activates them by node name in the main configuration. ([source](https://github.com/ange-yaghi/engine-sim/wiki/How-to-change-engines))

### Graphics & Multimedia

- [Directed Audio Graph Architectures](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-plugin-architectures/directed-audio-graph-architectures.md) — Generates audio by processing engine parameters through a directed graph of nodes.
- [Engine Component Configurations](https://awesome-repositories.com/f/graphics-multimedia/mechanical-3d-modeling/engine-component-configurations.md) — Computes torque, RPM, and throttle response from user-defined engine components and parameters.
- [Engine Sound Synthesizers](https://awesome-repositories.com/f/graphics-multimedia/real-time-audio-scripting/engine-sound-synthesizers.md) — Generates lifelike engine sounds dynamically based on mechanical parameters and operating conditions.
- [Engine Sound Synthesizers](https://awesome-repositories.com/f/graphics-multimedia/sound-parameter-modulation/engine-sound-synthesizers.md) — Generates realistic internal combustion engine audio in real time from configurable mechanical parameters.
- [Custom Scripting Languages](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/node-graph-engines/custom-scripting-languages.md) — Defines engine components as interconnected nodes via a custom scripting language.

### Scientific & Mathematical Computing

- [Engine Response Calculators](https://awesome-repositories.com/f/scientific-mathematical-computing/engine-response-calculators.md) — Computes torque, RPM, and throttle response from configurable mechanical components. ([source](https://github.com/ange-yaghi/engine-sim/wiki))
- [Engine Performance Testers](https://awesome-repositories.com/f/scientific-mathematical-computing/engine-performance-testers.md) — Holds an engine at a target RPM on a virtual dynamometer and displays measured power and torque. ([source](https://cdn.jsdelivr.net/gh/ange-yaghi/engine-sim@master/README.md))
- [Virtual Dynamometers](https://awesome-repositories.com/f/scientific-mathematical-computing/virtual-dynamometers.md) — Measures horsepower and torque by holding an engine at a target RPM against a simulated load.

### Software Engineering & Architecture

- [Combustion Engine Simulators](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/simulation-engines/combustion-engine-simulators.md) — Models internal combustion engine mechanics and generates realistic real-time audio output.
- [Audio Synthesis Modules](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/simulation-engines/combustion-engine-simulators/audio-synthesis-modules.md) — Generate realistic internal combustion engine sounds in real time based on mechanical parameters and operating conditions. ([source](https://cdn.jsdelivr.net/gh/ange-yaghi/engine-sim@master/README.md))
- [Vehicle Dynamics Simulators](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/simulation-engines/vehicle-dynamics-simulators.md) — Models throttle, load, and RPM dynamics to produce lifelike engine behavior and drivability feel. ([source](https://cdn.jsdelivr.net/gh/ange-yaghi/engine-sim@master/README.md))
- [Mechanical Part Assemblies](https://awesome-repositories.com/f/software-engineering-architecture/reusable-component-architectures/mechanical-part-assemblies.md) — Models engine behavior by assembling reusable mechanical parts with adjustable parameters.

### User Interface & Experience

- [Keyboard-Driven Interactions](https://awesome-repositories.com/f/user-interface-experience/interactive-ui-elements/keyboard-driven-interactions.md) — Controls engine simulation variables like throttle, clutch, and gears via keyboard input.

### DevOps & Infrastructure

- [Engine Definition Loaders](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading/engine-definition-loaders.md) — Loads engine definitions from external files by path and node name for modular swapping.
- [Engine Dynamometer Simulators](https://awesome-repositories.com/f/devops-infrastructure/virtual-hardware-interfaces/virtual-hardware-simulators/engine-dynamometer-simulators.md) — Measures horsepower and torque by holding an engine at a target RPM on a simulated test stand.

### System Administration & Monitoring

- [Script Parsing Diagnostics](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/diagnostic-error-reporting/script-parsing-diagnostics.md) — Reports argument mismatches, undefined references, and syntax errors in engine configuration scripts.

### Testing & Quality Assurance

- [Engine Dynamometer Measurements](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-diagnostics/performance-measurement/engine-dynamometer-measurements.md) — Measures horsepower and torque output by holding an engine at a target RPM on a virtual dynamometer.
