euclider

by Limeth

Limeth /euclider

A higher dimensional raytracing prototype with non-euclidean-like features

138 Stars 0 Forks Last release: almost 3 years ago (v1.0.0) Other 328 Commits 27 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

euclider

Build Status Build status

A higher-dimensional "non-euclidean" ray tracing prototype written in Rust.

Dual-licensed under MIT or the UNLICENSE.

Installation

  1. Install the Rust language via Rustup
  2. Use nightly rust via
    rustup default nightly
  3. Clone this repository and
    cd
    into it
  4. Build with
    cargo build --release
  5. Run with
    target/release/euclider
  6. Open a scene with
    target/release/euclider --scene scenes/3d_room.json

Controls

  • Mouse wheel - resolution adjustment
  • [
    Esc
    ] - exit

3D Scenes

  • Mouse - camera rotation
  • [
    W
    /
    A
    /
    S
    /
    D
    /
    Shift
    /
    Control
    ] - camera movement

4D Scenes

  • Generalized rotations happen in a plane, not around an axis. A plane is given by two axes of the camera. Rotate by holding two buttons bound to the following axes and pressing [
    C
    /
    M
    ]:
    • [
      I
      ] - x axis
    • [
      O
      ] - Y axis
    • [
      K
      ] - Z axis
    • [
      L
      ] - W axis
  • [
    W
    /
    A
    /
    S
    /
    D
    /
    Shift
    /
    Control
    /
    Q
    /
    E
    ] - camera movement

Preview

Fresnel Sphere A simple sphere displaying Fresnel equations.

3D Room A scene containing a room with several entities. Listed from left to right: * a blue sphere with a partially reflective surface; * a cuboid with an animated perlin noise surface; * a glass material in the shape of the complement set operation on a cube and a sphere; * an infinite cylinder passing through the ceiling and the floor

3D Hallways A non-euclidean 3D scene consisting of hallways that either stretch the space inside (left) or shrink it (right).

4D Cylindric Hypercube Frame A frame of a 4D hypercube made of cylinders as edges. Notice how the rays on the cyan cylinder in the bottom right are reflected to the fourth dimension, revealing more of the frame.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.