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

Rustfinity.com

Links

  1. Home
  2. Learn Rust
  3. Get Started
  4. Practice Rust
  5. Challenges
  6. Tutorials
  7. Blog
  8. Open source
  9. Learn Gleam

Socials

  1. GitHub
  2. X

Legal

  1. Privacy Policy
  2. Terms of Service