ion Engine
Modular, Extensible 3D Application Engine


ionEngine is an open source 3D application framework created by Ian Dunn.

It is modular and generic, designed for use in both game engines and scientific data visualization

The primary goal of ionEngine is to improve the DX (Developer Experience) of writing graphics programs, from small education examples to full production game engines.

See below to learn more.


ionEngine is built using C++14 (C++17 coming soon!) and modern OpenGL practices for simple and direct cross-system compatibility and optimal performance. It provides features through a large number of optional modules so that only the necessary components need to be included in a project.

Features included in ionEngine or additional modules are:

  • Component-entity based scene graph which is renderer-agnostic to maximimze extendability

  • Forward and deferred lighting systems implemented using OpenGL

  • Bloom, SSAO, depth-of-field, and other post-processing effects

  • Volumetric utilities such as a shader-based raycast volume renderer and marching cubes implementation

  • GUI elements provided by dear imgui

  • Windowing and input using GLFW

Learn More

The best place to learn more about how the engine works and how to get started, see the documentation:


To learn more about the current status of the engine and what is to come, see the release schedule:

Release Schedule


The source code for this project is avaiable from both BitBucket and GitHub, depending on whether you'd prefer to use mercurial or git.

BitBucket GitHub