Spectra is a C++23 Vulkan 1.4 graphics research workspace for OpenUSD scenes and optional live simulation Providers.
One .usd, .usda, or .usdc scene is consumed by an interactive rasterizer and a spectral wavefront path tracer.
The Windows build includes the editor, while the same executable also supports headless rendering on Windows and Linux.
Standard DCC scenes are read directly through OpenUSD. The Spectra USD Profile preserves the renderer's extended feature
set during round trips, and the Blender 5.1+ extension in integrations/blender/spectra_usd
provides profile-aware import and export. Unsupported USD features fail explicitly instead of being approximated.
| Cornell Box | Geometry Mapping Garden | Lighting Pavilion |
|---|---|---|
![]() |
![]() |
![]() |
| Material Atelier | PBRT Book | Volume Chambers |
![]() |
![]() |
![]() |
- CMake 4.4
- C++23 compiler with standard-library module support
- Vulkan SDK 1.4 + Slang
CMake fetches the remaining dependencies, including OpenUSD, OpenVDB, and NanoVDB. Building the optional Spectra SDK and CUDA Providers additionally requires CUDA Toolkit 13 on Windows.
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallelThe main executable target is spectra. SPECTRA_BUILD_UI defaults to ON on Windows and OFF elsewhere.
The optional Provider SDK is documented in sdk/GUIDE.md.
Build the Linux headless image locally with Docker:
docker build -t spectra .Tagged releases publish ghcr.io/xayah-graphics/spectra:latest. Rendering inside the container still requires access to
a compatible host Vulkan device.
Render a scene headlessly with either renderer:
spectra /path/to/scene.usda --renderer rasterizer
spectra /path/to/scene.usda --renderer pathtracerOpen a scene in the editor:
spectra /path/to/scene.usda --guiDynamic projects keep the base USD scene DCC-portable. Spectra automatically composes an optional sibling
scene.physica.usda layer and loads matching *.spectra-provider.dll Providers from the scene directory.






