Euclider is a higher-dimensional "non-euclidean" ray tracing prototype written in Rust. This project explores ray tracing in both three-dimensional and four-dimensional spaces, offering a unique perspective on graphics rendering.
Euclider leverages Rust's capabilities to create a prototype that handles ray tracing in higher dimensions. It supports both 3D and 4D scenes, with various controls for navigating and interacting with the environments. The project is dual-licensed under the MIT License and the UNLICENSE.
rustup default nightly
.cargo build --release
.target/release/euclider
.target/release/euclider --scene scenes/3d_room.json
.Esc
]: Exit the application.W
/A
/S
/D
/Shift
/Control
]: Move the camera.C
/M
]:
I
]: x axisO
]: y axisK
]: z axisL
]: w axisW
/A
/S
/D
/Shift
/Control
/Q
/E
].A simple sphere displaying Fresnel equations.
Fresnel Sphere
A room with several entities:
3D Room
A non-euclidean scene with hallways that stretch and shrink space.
3D Hallways
A 4D hypercube frame made of cylinders. Notice the reflections revealing more of the frame.
4D Cylindric Hypercube Frame
rs_pbrt is a Rust crate implementing the PBRT book's C++ code for physically based rendering.