1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! `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:
//!
//! ```bash
//! 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.
pub use ;