Skip to content

VertexNova

A modular C++20 game and graphics engine, layered from the operating system and GPU drivers to the application.

C++ Standard Platforms License

Website · vnerhi WebGPU samples

Public libraries sit around a private RHI and renderer.

Architecture

VertexNova game engine architecture: stacked layers from operating system and GPU drivers to the application

Orange is private (vnerhi, vnegfx). Dotted is future work (vneanim, vneai, vnexr).

Showcase

Silent 1080p reel of vnegfx samples on iOS (Metal) and desktop.
vnerhi WebGPU samples. Phase 0 results: CrossGL demos. Site: learnvertexnova.com.

Watch vertexnova-showcase.mp4 (44s)

Volume DVR Volume slicer A-buffer OIT

Point sprites MSDF text

Explore the public stack

vnerhi (RHI) and vnegfx (renderer) are private. The modules around them are public and follow the same C++20 / CMake layout.

Layer Repository Role
Visualization vnescene Cameras, lights, and GPU-friendly scene state
Visualization vneinteraction Camera manipulators and controllers
Visualization vneio Mesh, image, volume, font and video
Visualization vneshaderc Offline GLSL to SPIR-V / MSL / WGSL
Platform vnewindow Native windows (Win32, Cocoa, X11, Wayland, UIKit, Android, Web)
Platform vneevents Keyboard, mouse, touch, and window events
Core vnemath Vectors, matrices, geometry, graphics clip-space helpers
Core vnelogging Synchronous and asynchronous logging
Core vneutils CLI parsing and shared helpers
Core vnecommon Platform detection, macros, non-copyable bases

Why it is structured this way

  • Single-purpose libraries — scene, I/O, windowing, math, and logging can be learned and tested on their own.
  • GPU backends behind an RHI — application code does not talk to Vulkan, Metal, or WebGPU directly.
  • Independent CI — each repository configures, builds, and tests with the same CMake pattern.

Build a public library

git clone --recursive https://github.com/vertexnova/<repo>.git
cd <repo>
cmake -S . -B build -DBUILD_TESTS=ON
cmake --build build -j
ctest --test-dir build

See each repository README for module-specific options, samples, and integration notes.

Design documents

Platform and component requirements (code-first, with test/sample evidence):

vnedd — VertexNova Engine Design Documents

Two tiers: high-level system requirements and per-library component specs.

Status

VertexNova is an educational and experimental project with a long-term goal. Testing meets a high standard. The stack is POC-ready, not production-ready.

Contributing

Contributions are welcome once the public API and contribution workflow are finalized.
For now, please open an issue to discuss proposals, bugs, or feature requests.

License

See individual repositories for license information. Most use Apache License 2.0.

Pinned Loading

  1. vnetemplate vnetemplate Public template

    Minimal VertexNova-standard C++ template.

    Shell 1

  2. vnelogging vnelogging Public

    Vertexnova Logging (vnelogging) is a lightweight, thread-safe logging library designed for high-performance C++ applications.

    C++ 2

  3. vneevents vneevents Public

    A lightweight, thread-safe event system for games and interactive applications

    C++ 1

  4. vnemath vnemath Public

    A high-performance, cross-platform C++ math library for game engines and 3D applications

    C++ 1

  5. vnetestbed vnetestbed Public

    Integration tests for vertexnova libraries

    C++ 1

Repositories

Showing 10 of 23 repositories

Top languages

Loading…

Most used topics

Loading…