刘凡 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos
..
img 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos
.gitignore 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos
README.md 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos
figures.py 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos
graphics.py 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos
polytope.py 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos
requirements.txt 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos
window.py 9ff4d1d109 add S3,archive,truncate %!s(int64=2) %!d(string=hai) anos

README.md

shapeshift

A GUI application for generating and visualizing polyhedra using geometric operations.

Premise

Screenshot of Shapeshift

Seed polyhedra are provided as the five Platonic solids. The following operations can be combined in different orders to create new and complex polyhedra:

Shapeshift displays these resulting polyhedra in 3D rotation and provides details on vertices, edges, and faces.

Dependencies

Shapeshift uses Python3 along with the following packages:

  • moderngl for polyhedron visualization
  • numpy for numerical calculations
  • pyrr for matrix creation
  • pyside6 for window and widgets
  • sympy for symbolic notation

The dependencies and their versions are stored in requirements.txt. These can be installed with the following code while in the highest-level package directory:

python3 -m pip install -r requirements.txt

The GUI itself can then be opened as follows:

python3 window.py