Skip to main content

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 stepLearn by Building — window → shaders → passes → presentation
See what it can doCrossGL Demos — screenshots, videos, backend badges
Understand the designOverview — architecture, platforms, shader strategy
Check status & roadmapRoadmap — what works, what's next
Read common questionsFAQ — why VertexNova, vs engines, vision

Ready?

Learn by Building → · Demos → · GitHub →