Celerity is a flexible, modular engine built from the ground up in C++. Now in its third major iteration, it’s designed to serve as both a powerful development platform and a practical content creation environment. Whether you’re building a real-time visualization, a full game, or a simulation, Celerity offers the tools and extensibility to get you there.
-
Modular & Generic Design: Celerity is built as a truly generic engine. You can use as much or as little of the system as needed in your own applications via a clean, well-structured API.
-
Extensible via Plug-ins: Easily extend functionality by writing custom plug-ins—for example, to support proprietary file formats or add new runtime object behaviors.
-
Embedded JavaScript: Access object properties, handle input, play sounds, respond to events... all using JavaScript.
-
Dual Architecture for Development & Content Creation: The platform is split into two main parts:
- A generic host application, suitable for embedding or launching projects
- A fully-featured scene editor for creating and modifying game and simulation content
- A generic host application, suitable for embedding or launching projects
-
Robust Rendering & Simulation Framework: Built on OpenGL with a custom wrapper layer, Celerity includes tooling that generates rich, versioned wrapper code (with inline documentation) to simplify development and maximize compatibility.
To start developing, download the latest SDK release and install it wherever you prefer. The environment variable CELERITY_SDK will be created or updated to reflect the root install path automatically.
All the sub-systems of Celerity are made available through the c3::System interface. Create one like this:
#include <C3.h>
void your_code()
{
c3::System *psys = c3::System::Create();
// access all Celerity systems through psys
psys->Release();
}
To build Celerity from source:
-
Open the Celerity.sln solution file in Visual Studio.
-
Build the Bootstrap (Debug) target.
-
The initial build generates the OpenGL wrapper code, which will automatically download OpenGL headers, parse them, and adds comments for all functions. A CRC is calculated from the headers and configuration options, preventing unnecessary regeneration on subsequent builds. Note: the initial bootstrap process can be slow due to downloads, so switching to Debug or Release afterward is recommended.
Pull requests are welcome! Contributions that improve flexibility, compatibility, performance, or ease of use are encouraged.
Images:
Video Links:
______________________________________________
To see some of the things Celerity has been used to create, check out this promotional video from my old company, Inventoractive: https://www.youtube.com/watch?v=mlXiiIEqRsw