Skip to content

Latest commit

 

History

282 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Hydra Lotus

CI License: Apache-2.0

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.

Scope

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).

Architecture

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.

Components

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.

Documentation

docs/ — design, roadmap policy, development strategy, layout, capabilities, roadmap, building, changelog.

Contributing · Code of Conduct · Security policy.

Build

The project is built with OpenStrata (ost) and generated from its renderer template:

ost build --jobs auto
ost test
ost validate

The default build needs Vulkan 1.3 and slangc and no OpenUSD. The Hydra adapter, the viewport and plain CMake are in BUILDING.md.

License

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.

Releases

Packages

Contributors

Languages