Skip to main content

Crate lux_aurumque

Crate lux_aurumque 

Source
Expand description

lux-aurumque — a minimal transient path tracer in Rust.

Standard renderers compute steady-state radiance (light bounced until equilibrium). This one refuses that simplification: every photon path carries its cumulative optical length, which determines its arrival time. Binning by arrival time produces a time-resolved movie of a Gaussian pulse propagating through a Cornell-box scene reskinned in aurum — gold, copper, amber.

§Run the demo render

Clone the repo and run:

cargo run --release -p lux-aurumque
ffmpeg -framerate 30 -i frames/frame_%04d.png \
       -c:v libx264 -pix_fmt yuv420p -crf 18 lux-aurumque.mp4

§Library use

The crate exposes the path-tracing primitives (transient, camera, material, sphere, etc.) plus a re-export of SpectralBudget — the Faber–Krahn bound that refuses parameter combinations whose total path-length horizon would exceed 3 · T_1 for the bounded scene.

use lux_aurumque::{SpectralBudget, transient::C};

// 0.95 m room → T_1 ≈ 6.34 ns; admit up to 3·T_1 ≈ 19.0 ns.
let budget = SpectralBudget::for_scene_diameter(0.95, C as f64);
assert!(budget.admits(15e-9));
assert!(!budget.admits(25e-9));

See NOTES_PROCESS.md in the repository for the process-philosophical framing — Whitehead’s ontology mapped onto the renderer’s data flow.

Modules§

camera
Pinhole camera. Generates rays through pixels, with optional sub-pixel jitter.
hit
Hit records and the Hittable trait — the abstract interface every scene primitive must implement.
material
Materials: how a surface scatters or emits light.
ray
Ray primitive.
scene
A small demo scene: a Cornell-box-style room of large spheres approximating walls, plus a small sphere pulse-emitter near the ceiling and a diffuse sphere on the floor that the wavefront will sweep across.
sphere
Analytic sphere intersection.
transient
The transient core.
vec3
Vector aliases and small geometric utilities.

Structs§

SpectralBudget
A ceiling on the diameter a bounded sequential domain may reach before its becoming exceeds the principal eigenvalue of the underlying Laplacian.

Enums§

BudgetError
Failure modes of SpectralBudget. The Display impl is informative enough to surface directly at a user-facing prompt.