Hyperspace Star Polytope Slicer (HyperStar)


arrow HyperStar 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.

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:

  • For normal adjustments click in the white area.
  • For tiny adjustments, click the end buttons.

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:

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

  • By Chunk: (my favorite)
    Each distinct size and shape of 4-D chunk is assigned a random color. (Mirror reflections are considered distinct.) Illumination: a single white light source plus some ambient lighting. Click the New Colors button for new random colors.
  • By Plane:
    The hyperplanes are grouped according to their angle of tilt into the 4th dimension. Each group of hyperplanes is assigned a random color. Illumination: a single white light source plus some ambient lighting. Click the New Colors button for new random colors.
  • MMA:
    The polyhedron is white. Illumination: 3 light sources, red, green and blue, separated by 45-degree angles. No ambient lighting.
  • Mono:
    The polyhedron has a single color. Illumination: a single white light source plus some ambient lighting. Click the New Colors button for a new random color.
  • White:
    The polyhedron is white. Illumination: a single white light source plus some ambient lighting.


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:

  • Version 2.2
    (September 18, 2002)
    • New "Roundness" slider control:
      Requested by Burkard Polster, who demos the HyperStar applet using a projection monitor. The "Roundness" applies to stereo viewing. As you move away from the monitor, the image appears to stretch toward you. The "roundness" slider allows you to adjust it so that it again appears spherical. The "roundness" is a measure of the angular separation of the left and right-eye viewpoints. A roundness of 100 yields a separation of .15 radians (8.6 degrees).
    • Negative Section Values:
      Prior applet versions showed only positive "section" values. Sylvia Odhner, a senior at Academy of the New Church (high school), pointed out that this is misleading because the positive sections are not always reflections of the negative ones. The hypercube sections (with tetrahedral symmetry) are a prime example. The applet did not properly show the transition from positive to negative sections (since negative sections were not accessible). The applet is now modified to toggle the sign of the "section" value when it passes through zero, so it transitions smoothly between positive and negative sections.
  • Version 2.3
    (February 1, 2003)
    • Added a ColorCode 3-DTM stereo mode
      The ColorCodeViewerTM has an amber filter on the left and a blue filter on the right. It can produce some very pretty full-color 3-D Stereo viewing if the image colors happen to be balanced in the right way. You can get the ColorCodeViewerTM at www.colorcode3d.com (click ENTER and WebShop).
  • Version 2.4
    (November 24, 2005)
    • Reworked some thread-related stuff to improve responsiveness.


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.

AltStyle によって変換されたページ (->オリジナル) /