Nova3D
| Nova3D | |
|---|---|
| Website | https://nova3d.openeggbert.com | https://libnova3d.com |
| Programming language | C++ |
| C++ standard | C++20 |
| Licence | MIT |
| Based on | Urho3D / U3D (MIT, © 2008–2022 the Urho3D project) |
| Graphics backend | CNA (SDL 3 / OpenGL / OpenGL ES) |
Nova3D is a modified version of Urho3D — a cross-platform, open-source, MIT-licensed 3D game engine. Nova3D reuses Urho3D source code directly (math, containers, scene graph, resource system, and more), and replaces Urho3D's native OpenGL/Direct3D backends with CNA — a C++ reimplementation of the XNA 4.0 API built on SDL 3.
The public C++ API uses namespace Urho3D. Game code written against Urho3D is intended to compile against Nova3D with minimal changes.
Architecture
Game code
↓
Nova3D public API (namespace Urho3D, include/Urho3D/)
↓
Nova3D scene, resource, renderer, UI, physics
— adapted from Urho3D source —
↓
IGraphicsBackend (CnaGraphicsAdapter)
↓
CNA — C++ XNA 4.0 backend (SDL3 / OpenGL / OpenGL ES)
Public API overview
| Header | Class | Description |
|---|---|---|
Urho3D/Context.h |
Urho3D::Context |
Subsystem registry and event dispatcher |
Urho3D/Engine.h |
Urho3D::Engine |
Main loop and engine lifetime |
Urho3D/Application.h |
Urho3D::Application |
Base class for user applications |
Urho3D/Scene/Scene.h |
Urho3D::Scene |
Root of the scene graph |
Urho3D/Scene/Node.h |
Urho3D::Node |
Scene-graph node with transform hierarchy |
Urho3D/Graphics/Camera.h |
Urho3D::Camera |
Camera component |
Urho3D/Graphics/StaticModel.h |
Urho3D::StaticModel |
Static mesh component |
Urho3D/Graphics/Light.h |
Urho3D::Light |
Light component |
Urho3D/Resource/ResourceCache.h |
Urho3D::ResourceCache |
Resource loading and caching |
Platforms
Through CNA and SDL 3: Windows, Linux, MacOS, Android, Web (Emscripten).
Build
cmake -S . -B cmake-build-debug -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON
ninja -C cmake-build-debug
Attribution
Nova3D directly reuses Urho3D MIT-licensed source for: math, containers, IO, scene graph, resource system, graphics components. All adapted files carry the original Urho3D copyright notice plus the Nova3D contributor notice.
Copyright (c) 2008–2022 the Urho3D project. Copyright (c) 2024–2026 Robert Vokac and the Nova3D contributors.