A physically-based path tracer for USD

Crust Render is a path tracer written in safe Rust. It renders USD scenes (.usda, .usdc, .usdz) with an OpenPBR übershader, MaterialX look-dev graphs, UsdLux lights, volumes and path guiding.

Get started

Open-source MIT License. GitHub v0.3.0

USD only

Camera, geometry, lights, materials and render settings all come from the USD stage, read by the pure-Rust openusd crate. There is no other scene format.

One material

An OpenPBR übershader covers diffuse, metal, glass, coat, fuzz, thin film, subsurface and emission. MaterialX graphs and UsdPreviewSurface are read as well.

Production scenes

Streaming USD import, instancing, .tx and Ptex texture streaming let it load assets such as the Disney Moana Island and ALab.

Configurable

Every setting lives on the stage as a crust:* attribute. Command-line flags override them for one render, and CRUST_* environment variables switch optimizations off for A/B tests.

Measurable

--stats and --profile print per-phase timings, memory and a per-section render profile.

🦀 Safe Rust

Every crate is forbid(unsafe_code) except two small, audited exceptions. The kernel, BVH, materials and importer are all written from scratch.