gitmyhub

engine-sim

C++ ★ 9.4k updated 2y ago

Combustion engine simulator that generates realistic audio.

A real-time C++ simulator that generates realistic engine sounds for custom internal combustion engine configurations, built for audio and feel, not engineering accuracy.

C++CMakeSDL2Boostsetup: easycomplexity 3/5

Engine Simulator is a real-time simulation of internal combustion engines, built primarily to generate realistic engine sounds. You describe an engine configuration, and the simulator plays back what that engine would sound like running at different RPMs, under load, and with different throttle inputs. The project was created for a YouTube video demonstration and is written in C++.

The simulator is not designed as an engineering or scientific tool. It will not give you accurate horsepower figures or help you tune a real engine. Its purpose is audio and the feel of engine response, not precision measurements. The README is clear about this distinction upfront.

For non-developers who just want to try it, the releases page has pre-built Windows installers as a zip file. You unzip it and run the application directly. There is no complex setup. The interface is intentionally minimal: a small set of keyboard shortcuts controls the throttle, gears, clutch, ignition, and starter. You can also enable a dynamometer mode that holds the engine at a target RPM and reads out simulated torque and horsepower. Audio settings like volume and convolution level are adjusted with key-and-scroll combinations.

Developers who want to build from source need Windows, CMake, and a handful of libraries including SDL2 and Boost. The repository also has a community edition that has received newer updates, and the README links there for the most recent releases.

The project was funded through Patreon supporters, who are listed in the README. It has since moved primary development to a separate community-edition repository, and this original repository is maintained mostly for historical reference and existing users. The codebase is described by the author as informal and subject to change, written originally as a demo rather than a polished product.

Where it fits