
Try it in your browser
Start with the WebGPU path tracer: it loads the FlightHelmet glTF model and progressively accumulates samples. Adjust the camera orbit, sample target, bounce count and lighting to see the renderer respond. On WebGPU, traversal uses a software BVH in compute shaders.
The example gallery offers separate WebGPU and WebGL 2 launch buttons. For a lighter WebGL 2 example, try the textured cube. Optional capabilities vary by backend: the WebGL 2 path-tracer entry runs a reduced fallback, rather than the WebGPU path-tracing implementation. The cover image above was rendered with the native Vulkan backend.
What I built
VRI provides an explicit rendering API with command buffers, descriptor sets and synchronization. Applications can query optional capabilities and receive diagnostics from VRI and the native backend.
The C ABI is paired with a header-only C++23 wrapper. Shaders are authored in Slang and compiled for each target. Backends cover Vulkan, Direct3D 12, Metal, WebGPU, OpenGL, OpenGL ES and WebGL 2; feature availability varies by backend. Software Vulkan implementations can also run the Vulkan path without a hardware GPU.
Lazy-100 uses VRI. VRI-Framework supplies reusable higher-level rendering capabilities, while the current libvultra development branch builds directly on VRI.
The repository’s capability matrix records native, emulated, planned and unavailable features.