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 ColorCodeViewer

Further instructions are below the applet.

My Java Notes are here.

- Getting Started
- Our Polyhedron Quilt
- Hyperspace Star Polytope Explanation
- The Hyperplanes Choice
- The 3-Symmetry Choice
- The Colors Choice
- Miscellaneous Notes
- Related Web Pages
- Version Notes
- Acknowledgements

- Click either one of the
**Detach**buttons (they are identical in function). - Stretch the
**controls window**horizontally to increase the resolution of the slider controls. - Resize the
**graphics window**as big as will fit. - Play with the controls.
- Drag the image with the mouse to manually rotate.
- Click the
**New Colors**button to find pleasing color combinations. - If you move the
**Section**slider to the far right, the image will disappear. - The most interesting
**Section**settings are in the right-hand range where the image is starting to disappear. - Blow it up with the
**Size**slider for a closeup view. - 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.

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.

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".

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.

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

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

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.

**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.

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.

- The Geometry Junkyard
- Stereoscopic Animated Hypercube (my Java 1.0 applet)
- An Alternate Topology for the Great Triambic Icosidodecahedron (my web page)
- Rudy Rucker (Mathematician/Writer -- Hyperspace, Sci Fi, Math)
- "Spaceland" 4-dimensional Novel by Rudy Rucker
- George W. Hart (the best polyhedra site)
- Higher Dimensions
- Hop David's cardboard "gofix" models
- Andrew Weimholt's 4D Polytope Foldouts (May 30, 2014: has Java issues)
- Eric Swab's Hyperspace Pages
- H.S.M. Coxeter's page
- About H.S.M Coxeter

**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-D**^{TM}stereo mode

The ColorCodeViewer^{TM}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 ColorCodeViewer^{TM}at www.colorcode3d.com (click ENTER and WebShop).

**Version 2.4**

(November 24, 2005)**Reworked some thread-related stuff to improve responsiveness.**

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.