What Engine Simulator is and why you might install it on Linux
Engine Simulator is a free, open-source software that models how internal combustion engines work. You can build virtual engines, adjust their components, and watch them run in real time. It's useful if you're learning about engine mechanics, experimenting with different designs, or just curious about how engines behave under different conditions.
Linux users can run Engine Simulator through a few different paths. The most straightforward is to download the source code and compile it yourself, or to use a pre-built binary if one exists for your Linux distribution. This guide covers both approaches so you can pick the one that matches your comfort level and your system.
Key Takeaways
- Engine Simulator runs on Linux but requires you to either compile from source code or find a pre-built binary for your distribution.
- You will need a C++ compiler, Git, and several development libraries installed before you can build from source.
- The official GitHub repository contains all the code and build instructions specific to your Linux version.
- If compiling feels unfamiliar, checking your distribution's package manager first may save you time.
Check if your Linux distribution has a pre-built package
Some Linux distributions package Engine Simulator for you, so you can install it the same way you install any other program. Open your package manager and search for "engine-simulator" or "engine_simulator". On Ubuntu or Debian-based systems, you would open the terminal and type apt search engine-simulator. On Fedora, use dnf search engine-simulator. On Arch, use pacman -Ss engine-simulator.
If a package appears in the results, you can install it directly. On Ubuntu or Debian, that would be sudo apt install engine-simulator. If nothing shows up, move to the next section — you will be building from source code instead.
Install the tools and libraries you need to compile
Building Engine Simulator from source requires a C++ compiler, Git (to download the code), and several development libraries. The exact names vary by distribution, but the process is similar everywhere.
On Ubuntu or Debian, open a terminal and run:
sudo apt update sudo apt install build-essential git cmake libglfw3-dev libglew-dev libglm-dev
On Fedora, run:
sudo dnf install gcc-c++ git cmake glfw-devel glew-devel glm-devel
On Arch, run:
sudo pacman -S base-devel git cmake glfw glew glm
These commands install the C++ compiler, Git, CMake (a build tool), and the graphics libraries Engine Simulator needs to display the engine on your screen. The installation may take a few minutes depending on your internet speed and how much is already on your system.
Download the Engine Simulator source code
Once your tools are installed, download the Engine Simulator code from GitHub. Open a terminal, navigate to a folder where you want to keep the code (your home directory works fine), and run:
git clone https://github.com/ange-yaghi/engine-simulator.git
This creates a folder called engine-simulator containing all the source code. Move into that folder by typing:
cd engine-simulator
Git downloads the latest version from the repository. If you want to update it later, you can run git pull from inside that folder to fetch any new changes.
Compile the code and build the application
Now you will create a build folder, configure the build, and compile everything. Still in the engine-simulator folder, run:
mkdir build cd build cmake .. make -j$(nproc)
The first command creates a new folder called build where the compiled files will live. The second moves you into it. The third command, cmake .., reads the build instructions and prepares everything. The fourth, make -j$(nproc), actually compiles the code. The -j$(nproc) part tells it to use all your CPU cores, which speeds things up.
Compilation can take anywhere from a few minutes to 20 minutes depending on your computer's speed. You will see text scrolling past as it works. If you see an error message, it usually means a library is missing — check the error text against the libraries you installed in the earlier step.
Run Engine Simulator
Once compilation finishes, the executable is in your build folder. You can run it by typing:
./engine-simulator
Or, if you are still in the build folder, you might need to type:
./bin/engine-simulator
The exact path depends on how the build was configured. If neither works, look in the build folder for a file without a file extension — that is usually the executable.
The Engine Simulator window should open, showing an empty workspace. You can now start building engines by adding cylinders, pistons, and other components. If you want to run it again later without typing the full path, you can create a shortcut or add the build folder to your system's PATH, but for regular use, running it from the build folder works fine.
Frequently Asked Questions
What if I get an error about a missing library during compilation?
The error message usually names the library. Search your package manager for that name and install it, then run cmake .. and make -j$(nproc) again from the build folder. Common missing libraries are graphics-related — if you see errors about GLFW, GLEW, or GLM, double-check that you installed those packages in the earlier step.
Can I run Engine Simulator on older hardware?
Engine Simulator needs a graphics card that supports OpenGL. Most integrated graphics from the last 10 years will work, but very old systems may struggle. The application will tell you if your graphics card is not supported when you try to run it.
How do I update Engine Simulator to a newer version?
Go back to the engine-simulator folder and run git pull to download the latest code. Then go into the build folder and run cmake .. and make -j$(nproc) again. This recompiles only the parts that changed, so it is faster than the first build.
What if I want to uninstall it?
If you installed it from your package manager, use your package manager to remove it — sudo apt remove engine-simulator on Ubuntu, for example. If you compiled from source, simply delete the engine-simulator folder you created. Nothing else on your system is affected.