MCPcopy Index your code
hub / github.com/Limeth/euclider

github.com/Limeth/euclider @v1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.0 ↗ · + Follow
293 symbols 465 edges 21 files 3 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.

Extension points exported contracts — how you extend this code

Entity (Interface)
(no doc) [6 implementers]
src/universe/entity/mod.rs
RankUp (Interface)
(no doc) [2 implementers]
src/util.rs
Shape (Interface)
(no doc) [6 implementers]
src/universe/entity/shape.rs
Derank (Interface)
(no doc) [2 implementers]
src/util.rs
Camera (Interface)
(no doc) [3 implementers]
src/universe/entity/mod.rs
GeneralRotation (Interface)
Use the Gram-Schmidt process to orthonormalize this vector in relation to the other and return the rotation matrix. TODO
src/util.rs
Traceable (Interface)
(no doc) [3 implementers]
src/universe/entity/mod.rs
CustomFloat (Interface)
(no doc) [2 implementers]
src/util.rs

Core symbols most depended-on inside this repo

blend_premultiplied
called by 17
src/universe/entity/surface.rs
is_point_inside
called by 13
src/universe/entity/shape.rs
next
called by 11
src/universe/entity/shape.rs
iter
called by 10
src/util.rs
angle_between
called by 10
src/util.rs
material
called by 8
src/universe/entity/mod.rs
pressed_keys
called by 5
src/simulation.rs
combine_palette_color
called by 5
src/util.rs

Shape

Method 153
Function 75
Class 39
Interface 24
Enum 2

Languages

Rust100%

Modules by API surface

src/universe/entity/surface.rs43 symbols
src/util.rs40 symbols
src/universe/entity/shape.rs31 symbols
src/universe/d3/entity/camera.rs27 symbols
src/scene.rs27 symbols
src/universe/d4/entity/camera.rs18 symbols
src/simulation.rs16 symbols
src/universe/entity/material.rs14 symbols
src/universe/mod.rs13 symbols
src/universe/entity/mod.rs13 symbols
src/universe/d4/mod.rs12 symbols
src/universe/d3/mod.rs12 symbols

For agents

$ claude mcp add euclider \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact