ssavitzky / hyperviewer

See objects rotating in hyperspace, anywhere from two to six dimensions.

Home Page:https://stephen.savitzky.net/hyperviewer/build/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HyperViewer

Show objects rotating in hyperspace.

(Actually, it can handle two and three dimensions, too.)

At the moment the only controls are a pair of sliders -- the left-hand one controls the dimensionality, and the right-hand one selects the object. Currently only the simplex, octoplex, and cube are implemented.

Documentation

... is pretty sketchy at this point, but there is a narrative of the development process at Adventures in hyperspace (and JavaScript) and Further Adventures in Hyperspace | Stephen Savitzky.

To do

  • Replace the object-selection slider with a dropdown selector.
  • Add sliders to control the overall rotation rate (frames per second) and the perspective viewing angles (N-2 in N dimensions).
  • Add custom controls for the rotations. They have to be fairly small: in N dimensions there are (N)(N-1) different rotations, each in the plane defined by two of the axes. For 6-D you need 30. Each control needs a selector for the axes (probably a drop-down) a delta, and an initial value.
  • Fix the simplex; placement of the final vertex is wrong.
  • Add the dodecahedron, icosahedron, 24-cell, 120-cell, and 600-cell.
  • Add the ability to read and write objects (vertices, edges, etc.)
  • Add the ability to color (some of) the faces. See the (HyperSpace Express)[https://hyperspace-express.com/] logo for the motivation.

Implementation notes

This project was bootstrapped with Create Inferno App, as a way of becoming more familiar with Javascript and Inferno, (a lightweight alternative to React).

About

See objects rotating in hyperspace, anywhere from two to six dimensions.

https://stephen.savitzky.net/hyperviewer/build/

License:MIT License


Languages

Language:JavaScript 87.9%Language:Makefile 7.9%Language:HTML 3.2%Language:CSS 0.8%Language:Shell 0.3%