A practical, OpenUSD-native GPU path tracer with an independent research track, built on a reference path tracer that every faster mode is checked against.
hydra-lotus is a Hydra render delegate for physically based Monte Carlo
rendering: Vulkan first, wavefront path tracing, NEE / MIS, ReSTIR,
temporal reconstruction and denoising, with room for advanced sampling and
spectral research on top. It is built in a fixed order — correctness, then
measurement, then optimization, then research — and keeps a reference path
tracer to check every faster mode against
(roadmap policy,
development strategy).
It owns the renderer: the Hydra-independent core, the Vulkan backend, the
hdLotus Hydra adapter, the integrators, the sampling, reuse and denoising
passes, and the material translation into its own material representation.
It does not own the USD schemas or the material standards it reads —
those are OpenUSD's, MaterialX's and OpenPBR's — or the build and runtime
tooling, which is OpenStrata's.
Raster rendering is hydra-merlin's
role and avatar / toon rendering is
hydra-toon's; neither is a
dependency (integration scope).
OpenUSD / Hydra ─→ hdLotus adapter ─→ LotusScene ─→ GpuScene ─→ Integrator ─→ AOV / denoise / present
(scene extraction, (CPU, (BLAS/TLAS, (reference PT,
dirty tracking, renderer- bindless wavefront PT,
material translate) neutral) tables) ReSTIR)
Hydra is a scene integration layer. The light transport is independent of it, so a headless runner, a benchmark or a test-scene runner drive the same core. See the design policy.
| Component | Directory | Role |
|---|---|---|
lotus-render-world |
core/render-world/ |
host-neutral scene state |
lotus-render-extraction |
core/render-extraction/ |
scene changes → GPU update work |
lotus-render-vulkan |
backend/vulkan/ |
Vulkan backend and Slang shaders |
hdLotus |
adapters/hydra2/ |
Hydra render delegate and renderer plugin |
lotus-headless |
adapters/headless/ |
headless runner and renderer evidence |
lotus-viewport |
adapters/viewport/ |
standalone renderer frontend |
What each can do today is the capability matrix; where new code goes is PROJECT_LAYOUT.md.
docs/ — design, roadmap policy, development strategy, layout, capabilities, roadmap, building, changelog.
Contributing · Code of Conduct · Security policy.
The project is built with OpenStrata
(ost) and generated from its renderer template:
ost build --jobs auto
ost test
ost validateThe default build needs Vulkan 1.3 and slangc and no OpenUSD. The Hydra
adapter, the viewport and plain CMake are in BUILDING.md.
Apache-2.0. The validation image validation/assets/StinsonBeach.hdr
is OpenUSD's, under the Tomorrow Open Source Technology License 1.0
(licence,
manifest); packages install it with
both beside lotus-headless. The Hydra plugin's fallback environment is
the same image; THIRD_PARTY_NOTICES has its source
and licence.