Euclider

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.

Project Introduction

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.

Features

  • Higher-Dimensional Ray Tracing: Supports both 3D and 4D ray tracing.
  • Customizable Scenes: Load scenes from JSON files to explore different environments.
  • Interactive Controls: Navigate scenes using intuitive mouse and keyboard controls.

Installation

  1. Install Rust: Ensure Rust is installed via Rustup.
  2. Use Nightly Rust: Set the default toolchain to nightly using rustup default nightly.
  3. Clone the Repository: Clone the Euclider repository and navigate into the directory.
  4. Build the Project: Compile the project with cargo build --release.
  5. Run Euclider: Execute the binary with target/release/euclider.
  6. Open a Scene: Load a scene file using target/release/euclider --scene scenes/3d_room.json.

Controls

General Controls

  • Mouse Wheel: Adjust resolution.
  • [Esc]: Exit the application.

3D Scene Controls

  • Mouse: Rotate the camera.
  • [W/A/S/D/Shift/Control]: Move the camera.

4D Scene Controls

  • Generalized Rotations: Rotate by holding two buttons corresponding to the camera axes and pressing [C/M]:
    • [I]: x axis
    • [O]: y axis
    • [K]: z axis
    • [L]: w axis
  • Camera Movement: Move the camera with [W/A/S/D/Shift/Control/Q/E].

Preview

Fresnel Sphere

A simple sphere displaying Fresnel equations.

Fresnel Sphere Fresnel Sphere

3D Room

A room with several entities:

  • A blue sphere with a partially reflective surface.
  • A cuboid with an animated perlin noise surface.
  • A glass material in the shape of a cube and sphere complement set.
  • An infinite cylinder passing through the ceiling and floor.

3D Room 3D Room

3D Hallways

A non-euclidean scene with hallways that stretch and shrink space.

3D Hallways 3D Hallways

4D Cylindric Hypercube Frame

A 4D hypercube frame made of cylinders. Notice the reflections revealing more of the frame.

4D Cylindric Hypercube Frame 4D Cylindric Hypercube Frame

Similar Projects