{"id":13436917,"url":"https://github.com/Limeth/euclider","last_synced_at":"2025-03-19T05:31:18.106Z","repository":{"id":41413282,"uuid":"58852409","full_name":"Limeth/euclider","owner":"Limeth","description":"A higher dimensional raytracing prototype with non-euclidean-like features","archived":false,"fork":false,"pushed_at":"2018-12-07T13:10:35.000Z","size":38809,"stargazers_count":214,"open_issues_count":6,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-27T21:48:47.083Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Limeth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MIT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-15T08:55:23.000Z","updated_at":"2024-09-23T20:03:54.000Z","dependencies_parsed_at":"2022-08-10T02:07:34.186Z","dependency_job_id":null,"html_url":"https://github.com/Limeth/euclider","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limeth%2Feuclider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limeth%2Feuclider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limeth%2Feuclider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limeth%2Feuclider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Limeth","download_url":"https://codeload.github.com/Limeth/euclider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244364829,"owners_count":20441460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:00:53.017Z","updated_at":"2025-03-19T05:31:13.096Z","avatar_url":"https://github.com/Limeth.png","language":"Rust","funding_links":[],"categories":["Applications","应用","应用 Applications","应用程序 Applications","Optics"],"sub_categories":["Graphics","图像","图像处理 Graphics","图形 Graphics","Sound"],"readme":"# euclider\n[![Build Status](https://travis-ci.org/Limeth/euclider.svg?branch=master)](https://travis-ci.org/Limeth/euclider)\n[![Build status](https://ci.appveyor.com/api/projects/status/gcp1wxqfhjjk70vg/branch/master?svg=true)](https://ci.appveyor.com/project/Limeth/euclider/branch/master)\n\nA higher-dimensional \"non-euclidean\" ray tracing prototype written in Rust.\n\nDual-licensed under [MIT](https://opensource.org/licenses/MIT) or the [UNLICENSE](http://unlicense.org).\n\n\n# Installation\n\n1. Install the Rust language via [Rustup](https://www.rustup.rs/)\n2. Use nightly rust via `rustup default nightly`\n3. Clone this repository and `cd` into it\n4. Build with `cargo build --release`\n5. Run with `target/release/euclider`\n6. Open a scene with `target/release/euclider --scene scenes/3d_room.json`\n\n\n# Controls\n\n* Mouse wheel - resolution adjustment\n* [`Esc`] - exit\n\n## 3D Scenes\n\n* Mouse - camera rotation\n* [`W`/`A`/`S`/`D`/`Shift`/`Control`] - camera movement\n\n## 4D Scenes\n\n* 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`]:\n  * [`I`] - x axis\n  * [`O`] - Y axis\n  * [`K`] - Z axis\n  * [`L`] - W axis\n* [`W`/`A`/`S`/`D`/`Shift`/`Control`/`Q`/`E`] - camera movement\n\n# Preview\n\n![Fresnel Sphere](preview/preview_3d_fresnel_sphere.png)\nA simple sphere displaying Fresnel equations.\n\n![3D Room](preview/preview_3d_room.png)\nA scene containing a room with several entities. Listed from left to right:\n* a blue sphere with a partially reflective surface;\n* a cuboid with an animated perlin noise surface;\n* a glass material in the shape of the complement set operation on a cube and a sphere;\n* an infinite cylinder passing through the ceiling and the floor\n\n![3D Hallways](preview/preview_3d_hallways.png)\nA non-euclidean 3D scene consisting of hallways that either stretch the space inside (left) or shrink it (right).\n\n![4D Cylindric Hypercube Frame](preview/preview_4d_cylinder_frame.png)\nA 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLimeth%2Feuclider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLimeth%2Feuclider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLimeth%2Feuclider/lists"}