aaronjenson / Projection

Higher dimensions, projected onto your 2D screen

Home Page:https://aaronjenson.github.io/Projection/

Repository from Github https://github.comaaronjenson/ProjectionRepository from Github https://github.comaaronjenson/Projection

Projection

This is an Angular web application that displays n-dimensional cubes, and allows animating rotation on any planes.

The live site can be found here.

How it works

The points for a cube are generated, then multiplied by a rotation matrix for each rotation being applied. Each point is then converted to a 2d point, repeatedly applying a simple perspective projection. Using the projected points, each edge and vertex of the cube is then drawn.

This project is based off a Coding Challenge by The Coding Train, 4D Hypercube (aka "Tesseract"), generalizing his project for any dimension.

Rendering is done using Raphael, the UI uses Angular-Material, and the whole page runs on Angular 6.

Limitations

The current implementation has trouble drawing cubes in dimensions higher than about 5, and cannot create a cube above the 12th dimension. Performance issues exist in updating the sliders for each possible rotation, as well as some complex computations with large matrix multiplication.

About

Higher dimensions, projected onto your 2D screen

https://aaronjenson.github.io/Projection/

License:GNU General Public License v3.0


Languages

Language:TypeScript 65.2%Language:HTML 28.0%Language:JavaScript 6.0%Language:CSS 0.8%