Skip to content

Mekadrom/DimensionalAnalysis

Repository files navigation

To build, run: ./gradlew build

To run, run: ./gradlew run

To package a shadow jar: ./gradlew shadowJar

Dimensional Analysis

Dimensional Analysis is an exploratory project that uses IND4J n-dimensional python-style arrays in Java.

This project allows the user to visualize an n-dimensional rectangular prism projected down to 2D space.

This program also allows the user to:

  • Change the angle of any n-dimensional object about a (n-2)-dimensional feature of that object.
    • For example, a square (2D) rotates about a point (0D), a cube (3D) rotates about a line (1D), and a tesseract (4D) would rotate about planes (2D).
  • Animate the object by a constant rotation around any (n-2)-dimensional feature.
  • Change the length of any side of the n-dimensional object.
  • Choose either perspective or orthographic projection for any projection from one dimension down to another.
  • Change the distance the camera is from the subject along any axis

As well as some aesthetic choices such as line length, point size, and zoom.

Known issues:

  • While the dimensions are theoretically only programmatically limited by the number of letters that can be used to represent each axis/dimension, the effective limit for most computers is about 7 dimensions due to the processing requirements of IND4J, the matrix math involved, and the recursive drawing.
  • For some reason the "toggle progression" button also massively lags the application

This is lazily maintained.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages