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.