CPU Path Tracing ยท BVH Acceleration ยท 16-Band Spectral Rendering ยท PBR Materials ยท Animation & Video
244 source files ยท ~26,350 lines ยท 17 material presets ยท 18 interpolation curves ยท 9+ targets
|
AnimationFast ยทยทยทยทยทยทยทยทยท 1 SPP ยท 1 bounce ยท denoised previews
PreviewCpu ยทยทยทยทยทยทยทยทยทยทยทยท 4 SPP ยท 1 bounce ยท adaptive sampling
UltraHdCpu ยทยทยทยทยทยทยทยทยทยทยทยท 16 SPP ยท 3 bounces ยท high-quality stills
ProductionReference ยทยทยท 64 SPP ยท max bounces ยท reference quality
EngineRenderer includes a unified ultra-constrained realtime profile for --fps 120.
- Scene-side budget: proxy showcase geometry, reduced light budget, optional panorama removal
- Runtime-side budget: cached showcase meshes, static realtime scene reuse, BVH reuse
- Loop-side budget: deadline-based frame pacing with drift compensation
- Runtime adaptation: smoothed quality bias, sample pressure, scheduler granularity, and hysteresis-based internal resolution scaling
Validated runtime benchmarks (release, 3 seconds, --fps 120 --width 1280 --height 720):
- Linux x86_64: stable high-frequency cadence with adaptive runtime controls
- Android ARM64: constrained-device adaptation validated with dynamic internal resolution and scheduler tuning
| โฑ๏ธ Timeline keyframes | Camera ยท sun ยท sky ยท exposure |
| ๐ 18 interpolations | Linear ยท Step ยท SmoothStep ยท Hermite ยท EaseIn/Out/InOut (Quad, Cubic, Sine, Expo) ยท Back ยท Bounce |
| ๐๏ธ Frame sequencer | Batch rendering with caching |
| ๐น Video export | MP4 via system FFmpeg |
| ๐ Fluent API | SceneBuilder ยท MaterialBuilder ยท CameraController |
| ๐ Scene format | Text-based .scene files with serialization & parsing |
| ๐ฆ Mesh import | OBJ ยท glTF/GLB |
| ๐ง Procedural | Geometry generators ยท mesh operations ยท composite objects |
| ๐ฅ Rigid bodies | Constraint solving ยท collision detection ยท raycasting |
| ๐ช N-body | Gravitational simulation for celestial mechanics |
| ๐ Introspection | Capabilities::discover() โ JSON feature description |
| ๐ฌ Prompt-to-scene | Natural language โ renderable scene |
| ๐ท Camera presets | Front ยท top-down ยท dramatic ยท cinematic ยท closeup |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ API Layer โ
โ SceneBuilder ยท MaterialCatalog ยท CameraController โ
โ AnimationClip ยท Timeline ยท FrameSequencer โ
โ AiRenderer ยท Capabilities ยท SceneDescriptor โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Core Engine โ
โ Path Tracer ยท BVH ยท Spectral Shading ยท Shadow Maps โ
โ Volumetrics ยท Post-Processing ยท Scene Graph ยท Physics โ
โ Animation Sequencer ยท Video Exporter ยท Scheduler โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Hardware Abstraction Layer โ
โ CPU (topology, SIMD) ยท GPU (DRM/D3D12) ยท Display ยท DMA โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Full module breakdown: arborescence.md
โ All listed targets compile successfully. โ
|
|
| Dependency | Required | Notes |
|---|---|---|
| Rust | โ | Edition 2024 |
| FFmpeg | โ | Only for MP4 export |
cargo build --releaseQuick start: quickstat.md
๐ Cross-compilation targets
cargo build --release --target aarch64-apple-darwin # Apple Silicon
cargo build --release --target aarch64-unknown-linux-gnu # ARM64 Linux
cargo build --release --target x86_64-pc-windows-gnu # Windows (MinGW)
cargo build --release --target aarch64-linux-android # Android
cargo build --release --target x86_64-unknown-linux-musl # Static Linuxcargo run --release -- render # Standard render โ output file
cargo run --release -- gallery # Full gallery showcase
cargo run --release -- test # Quick smoke test
cargo run --release -- detect # Hardware/compute diagnostics
cargo run --release -- video # Render animation โ MP4
cargo run --release -- run # Realtime preview mode
cargo run --release -- help # Show commandscargo run --release -- detect --verbose
cargo run --release -- detect --json --component gpu
cargo run --release -- detect --bench --component cpu
cargo run --release -- detect --override arch=arm,os=windows,vendor=amdSupported values:
--component:cpu,gpu,ram,display,all--override:arch=x86|arm,os=linux|windows|macos,vendor=amd|intel|apple|unknown
Launch with no arguments for a full REPL with module navigation and built-in docs:
cargo run --releaseโญโโโโโโโโโ Root Namespace โโโโโโโโโโฎ
โ ๐Welcome in Helper๐ โ
โ โ
โ ๐ฆ Modules: โ
โ ๐ง ai ๐ฌ animation โ
โ ๐ท camera โ engine โ
โ ๐จ materials ๐ฆ objects โ
โ ๐ scenes ๐งฉ types โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
๐ All REPL commands
| Command | Description |
|---|---|
open <module> |
Enter a module namespace |
call <fn> |
Execute a function |
inspect <item> |
Show details |
docs [target] [section] |
Browse source documentation |
animate [topic] |
Show execution flow |
back |
Return to root |
clear |
Clear screen |
exit |
Quit |
engine โ call render ยท call gallery ยท call test ยท call run
animation โ call spheres ยท call cubes ยท call house ยท call city ยท call car ยท call world ยท call blackhole
๐ Built-in documentation browser
The REPL reads source code directly:
engine> docs # List all topics
engine> docs readme # README
engine> docs tree # Project structure
engine> docs changelog # Changelog
engine> docs rendering # Rendering pipeline
engine> docs ai.renderer # Sub-module docs
engine> docs ai.prompt constraints # Section filter
Sections: overview ยท constraints ยท implementation ยท tips
cargo run --example render_spheres # โ output/SPHERES/spheres.ppm
cargo run --example render_cubes # โ output/CUBES/cubes.ppm
cargo run --example render_house # โ output/HOUSES/house.ppm
cargo run --example render_city # โ output/CITY/city.ppm
cargo run --example render_car # โ output/CAR/car.ppm
cargo run --example render_world # โ output/WORLD/world.ppm
cargo run --example render_blackhole # โ output/BLACKHOLE/blackhole.ppmLe mode video gรฉnรจre une animation MP4 ร partir d'une scรจne :
cargo run --release -- video --duration=10 --fps=30 --width=1920 --height=1080 --output-mp4=output/animation.mp4Chargement d'une scรจne existante :
cargo run --release -- video --scene-file=my_scene.scene --output-mp4=output/animation.mp4| Option | Dรฉfaut | Description |
|---|---|---|
--duration=N |
5 |
Durรฉe en secondes |
--fps=N |
30 |
Images par seconde |
--width=N |
1280 |
Largeur en pixels |
--height=N |
720 |
Hauteur en pixels |
--quality=preview|hd|production |
preview |
Qualitรฉ de rendu |
--scene-file=PATH |
(dรฉfaut) | Scรจne .scene ร charger |
--output-dir=PATH |
output/video |
Dossier frames temporaires |
--output-mp4=PATH |
output/video/animation.mp4 |
Fichier MP4 final |
--prefix=NAME |
frame |
Prรฉfixe des frames |
The workspace includes rendering validation tests under tests/workspace_render_validation.rs:
- Visual determinism regression for preview outputs
- Parallel stress rendering over multiple workers
- Long-run pacing campaign (ignored by default)
- Diagnostics benchmark matrix campaign (ignored by default)
Run the standard suite:
cargo testRun the dedicated workspace validation file:
cargo test --test workspace_render_validationRun ignored long campaigns explicitly:
cargo test --test workspace_render_validation -- --ignoredCore quality gates used in this workspace:
cargo check --all-targets
cargo clippy --all-targetsuse enginerenderer::api::engine::Engine;
use enginerenderer::api::scenes::builder::SceneBuilder;
use enginerenderer::api::materials::catalog::MaterialCatalog;
use enginerenderer::api::objects::primitives::RenderPreset;
use enginerenderer::api::animation::{AnimationClip, Timeline, Interpolation, FrameSequencer};Code examples
Default render:
let report = Engine::default().run()?;
println!("Rendered {}x{} in {} ms", report.width, report.height, report.duration_ms);Production gallery:
let reports = Engine::production_reference().render_gallery()?;
for report in reports {
println!("{}", report.output_path.display());
}Smoke test:
let report = Engine::test_minimal().run()?;AI capabilities:
let caps = enginerenderer::api::ai::capabilities::Capabilities::discover();Hardware diagnostics:
enginerenderer::api::diagnose_compute_environment();| Format | Extension | Notes |
|---|---|---|
| PPM | .ppm |
Default still image |
| EXR | .exr |
HDR framebuffer |
| PNG | .png |
Compressed stills |
| MP4 | .mp4 |
Video (FFmpeg) |
| Source files | Lines of Rust | External crates | Material presets | Interpolation curves | Render presets | Targets | Edition |
|---|---|---|---|---|---|---|---|
| 244 | ~26,350 | 0 | 17 | 18 | 4 | 9+ | 2024 |