Hyperspace Star Polytope Slicer (HyperStar)


arrowHyperStar Applet (below) doesn't work even though you installed Java?
 Run the HyperStar Web-Start Application instead.
 This downloads a jnlp (Java Web Start) file that tells Java how to run the HyperStar outside of your browser.
 See my Java Web Start notes.
 

Play with the controls! Use the "Shell" slider to pick another shell, then move the "Section" slider around. Click the "New Colors" button.
If you have red-blue 3D glasses, change the "Stereo Mode" to "Anaglyph" and click the "Edges" checkbox.
If you have a ColorCodeViewerTM (see below), change the "Stereo Mode" to "ColorCode" and click the "Edges" checkbox.
Further instructions are below the applet.
My Java Notes are here.

screen shot

More Java applets here.


Contents:


Getting Started:

  1. Click either one of the Detach buttons (they are identical in function).
  2. Stretch the controls window horizontally to increase the resolution of the slider controls.
  3. Resize the graphics window as big as will fit.
  4. Play with the controls.
  5. Drag the image with the mouse to manually rotate.
  6. Click the New Colors button to find pleasing color combinations.
  7. If you move the Section slider to the far right, the image will disappear.
  8. The most interesting Section settings are in the right-hand range where the image is starting to disappear.
  9. Blow it up with the Size slider for a closeup view.
  10. The 4-Animation checkbox animates the Section slider. Clicking on the Section slider stops the 4-Animation.

Advice on using the slider controls:

Free 3D glasses are available from Rainbow Symphony.


Our Polyhedron Quilt:

Serena and I used this applet to design a quilt entitled "A Piece of Hyperspace". A screen shot of the design configuration is here.

Hyperspace Star Polytope Explanation:

See my Stellations of the Dodecahedron applet to see how a "Star Polyhedron" is generated in 3 dimensions. In that applet, we see that a dodecahedron is a volume of space that is bounded by 12 planes. When those planes are extended infinitely, they criss-cross through each other, chopping up space into many "chunks". The inner chunks are finite and they are distributed in shells around the core dodecahedron. The dodecahedron has only one kind of chunk in each shell, but other polyhedra (like the icosahedron) can have several different types of chunk in each shell.

The same procedure works in 4 dimensions. A 4-dimensional convex polyhedron (properly called a "polytope" or "polychoron") is a volume of 4-dimensional space that is bounded by a number of hyperplanes. For example, the 4-dimensional polytope known as the "120-cell" is bounded by 120 hyperplanes.

(A hyperplane is a 3-dimensional space that slices through the 4-dimensional space, the same way a 2-dimensional plane can slice through our 3-dimensional space.)

The bounding hyperplanes can be extended infinitely so that they criss-cross through each other, chopping up hyperspace into many 4-dimensional "chunks". Again the inner chunks are finite, and they are distributed in shells around the core polytope.

The HyperStar applet displays those finite chunks, one shell at a time. The inner shells are complete -- each shell completely encases the previous shell. The outermost shells have holes in them.

The applet's shell# represents the number of hyperplanes that you have to pass through to reach the interior of the core. Shell# 0 is the core itself. The first couple of shells contain only one kind of chunk in each, but most of the higher-numbered shells contain a variety of different chunks.

Any combination of chunks is a stellation of the core object. The chunks don't all have to be from the same shell, but presently this applet presents the chunks grouped by shell. This at least lets you see all surfaces of the chunks.

These 4-dimensional star polytopes cannot be viewed directly in 3 dimensions. What we have to do is slice the 4-dimensional object with a 3-dimensional hyperplane. The part that intersects the slicing hyperplane forms a 3-dimensional star polyhedron, which is displayed by the applet in stereoscopic 3D.

By moving the slicing hyperplane back and forth (using the "Section" slider), we can build up an impression of the whole 4-dimensional polytope, similar to the way a CAT-scan machine can build up a picture of your 3-dimensional brain by looking at many 2-dimensional cross-sections. As the slicing hyperplane is moved throught the 4-dimensional polytope, the 3-dimensional polyhedron continuously changes. As the slice is moved farther from the 4-dimensional center, the 3-dimensional polyhedron gets smaller and smaller. It vanishes when the slice no longer intersects the 4-dimensional polytope.

I have some graphics here that provide a 3-dimensional analogy to this 4-dimensional slicing.


The "Hyperplanes" Choice

This control selects the "core" hyperspace object whose hyperplanes are used to produce the stellation. The applet currently displays stellations of 11 different hyperspace objects:

 Hyperplanes   Shells   Download 
 Size 
 Core Object Cells   Symmetry 
 Group 
 120-Cell   0-56 (complete)   ~   120 dodecahedra   120-Cell 
 FC120-Cell   0-36 (of ~358)   79k   720 pentagonal bipyramids   120-Cell 
 600-Cell   0-35 (of ~298)   55k   600 tetrahedra   120-Cell 
 FC600-Cell   0-30 (of ~598)   81k   1200 triangular bipyramids   120-Cell 
 24-Cell   0-8 (complete)   2k   24 octahedra   24-cell 
 FC24-Cell   0-45 (complete)   80k   96 triangular bipyramids   24-cell 
 Hypercube   0 (complete)   1k   8 cubes   Hypercube 
 CrossPoly   0-4 (complete)   1k   16 tetrahedra   Hypercube 
 FC-CrossPoly   0-12 (complete)   4k   32 triangular bipyramids   Hypercube 
 Simplex   0 (complete)   1k   5 tetrahedra   Simplex 
 FC-Simplex   0-2 (complete)   1k   10 triangular bipyramids   Simplex 

The 120-Cell data is bundled with the applet.

The other Hyperplanes sets are downloaded when you select them.

Each Hyperplanes set consists of one or more shells that can be selected with the "Shell" slider control.

The lower-numbered shells are less complex and therefore render faster.

The highest-numbered shells are totally fractured-looking.

The FC objects are formed by drawing lines from the center of the designated polytope to the centers of all of its 2-dimensional faces, and placing hyperplanes perpendicular to those lines. (FC is my own abbreviation, meaning "Face Center".)

The cells of the FC objects are all bipyramids. A bipyramid is a pair of pyramids stuck together on their bases. Here is a pentagonal bipyramid:

bipyramid

Why doesn't the applet list the FC-Hypercube? Because it is the same as the 24-cell. The cells of the FC-Hypercube are 24 square bipyramids which happen to be octahedra.

"CrossPoly" (above in the table and in the applet) is short for "Cross-Polytope".


The "3-Symmetry" Choice:

The "3-Symmetry" choice actually controls the orientation of the slicing hyperplane.

For stellations with 120-cell symmetry:

 3-Symmetry:  120-cell Orientation: 
 Icosahedral  Cell-First 
 Dihedral-3  Face-First 
 Dihedral-5  Edge-First 
 Tetrahedral  Vertex-First 

"Dihedral-3" is my abbreviation for the symmetry of a triangular bipyramid.
"Dihedral-5" is my abbreviation for the symmetry of a pentagonal bipyramid.

For stellations with 24-cell symmetry:

 3-Symmetry:  24-cell Orientation: 
 Octahedral(3)  Cell-First 
 Dihedral-3(2)  Face-First 
 Dihedral-3(1)  Edge-First 
 Octahedral(0)  Vertex-First 

For stellations with Hypercube symmetry:

 3-Symmetry:  Hypercube Orientation: 
 Octahedral  Vertex-First 
 Dihedral-3  Edge-First 
 Dihedral-4  Face-First 
 Tetrahedral  Cell-First 

For stellations with Simplex symmetry:

 3-Symmetry:  Simplex Orientation: 
 Tetrahedral(3)  Cell-First 
 Dihedral-3(2)  Face-First 
 Dihedral-3(1)  Edge-First 
 Tetrahedral(0)  Vertex-First 

In the Simplex, the Cell-First and Face-First sections for positive "section" values are the same as the Vertex-First and Edge-First sections for negative "section" values.


The "Colors" Choice


Miscellaneous Notes:

Units:
Size and separation are measured in units of the 4-dimensional circumdiameter of the shell. The "Section" value is in fractions of the shell circumradius -- it measures how far the slicing hyperplane is from the 4-dimensional center. "Viewpoint" controls the projection, and is the distance from the camera (or eye) to the center of the 3D polyhedron, in fractions of the 4-D shell circumradius.

Thick Edge Lines:
My pure-java renderer draws each face surface with its own edge lines, 1 pixel wide around the perimeter, so wherever you can see two faces joined, the lines are double thickness . To keep the edge lines from dominating the color scheme, detach and resize the graphics window as large as possible (though this will cause a degradation in speed).

Arbitrary 4-dimensional Rotation Capability:
I have been asked whether the applet could allow arbitrary 4-dimensional rotations of the hyperspace object. The answer is that it could but it doesn't (in the interest of performance). The orientation of the hyperspace object is restricted to 4 special directions (controlled by the 3-Symmetry choice). With these special orientations, the cross-section has 3-dimensional symmetry. The applet takes advantage of this 3-symmetry to greatly reduce the amount of calculation and memory usage. Without this optimization, the applet would run much slower and risk running out of memory.


Related Web Pages:


Version Notes:


Acknowledgements:

This applet was inspired by Russell Towle's 4D QuickTime Animations.

Thanks to Russell Towle and DinoGeorge for correspondence which helped to clarify my thinking.

H.S.M. Coxeter's book "Regular Polytopes" (Coxeter01) was an essential reference.

The polyhedral algorithms and 3D renderer used in this applet are of my own invention.


August 5, 2002 the hyperstar applet got SlashDotted.


<Dogfeathers Home Page>   <Mark's Home Page>   <Mark's Java Stuff>   <Mark's 3D Stuff>
Email: Mark Newbold
This page URL: http://dogfeathers.com/java/hyperstar.html
Copyright 2001-2005 by Mark Newbold. All rights reserved.