Start Here
One codebase. Four graphics APIs. Six platforms. VertexNova is a C++17/20 rendering engine that runs on Vulkan, Metal, OpenGL, OpenGL ES 3.0, and WebGPU (future) — from a single shader source. No magic, no black boxes. Just clean, readable code that teaches you how it works.
Run something in 5 minutes
1. Clone
git clone --recursive https://github.com/vertexnova/vnetestbed.git
2. Build
cd vnetestbed
./scripts/build_macos.sh -t Debug # builds Metal, Vulkan, OpenGL on macOS
Or build_linux.sh, build_windows.sh for other platforms.
3. Run
cd build/Debug/build-*/bin
./04_DemoCube
On macOS, Metal is the default backend. Use --backend vulkan or --backend opengl to switch. A window opens. A cube renders.
First-time setup
New to VertexNova? Set up your machine first: Dev Environment Setup (Linux, Windows, macOS). Then Build & Run for platform scripts, iOS, visionOS, Web.
What makes this different?
- Write once, run everywhere — Same C++ and GLSL across Metal, Vulkan, OpenGL, OpenGL ES 3.0, WebGPU (future)
- Built to learn — Transparent architecture. Every layer is readable and documented
- 22+ demos — Triangle → PBR → deferred → compute. Each proves one concept
Where to go next
| If you want to… | Go here |
|---|---|
| Learn step by step | Learn by Building — window → shaders → passes → presentation |
| See what it can do | CrossGL Demos — screenshots, videos, backend badges |
| Understand the design | Overview — architecture, platforms, shader strategy |
| Check status & roadmap | Roadmap — what works, what's next |
| Read common questions | FAQ — why VertexNova, vs engines, vision |