More Java applets here.
Advice on using the slider controls:
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.
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-FirstDihedral-3 Face-FirstDihedral-5 Edge-FirstTetrahedral 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-FirstDihedral-3(2) Face-FirstDihedral-3(1) Edge-FirstOctahedral(0) Vertex-FirstFor stellations with Hypercube symmetry:
3-Symmetry: Hypercube Orientation:Octahedral Vertex-FirstDihedral-3 Edge-FirstDihedral-4 Face-FirstTetrahedral Cell-FirstFor stellations with Simplex symmetry:
3-Symmetry: Simplex Orientation:Tetrahedral(3) Cell-FirstDihedral-3(2) Face-FirstDihedral-3(1) Edge-FirstTetrahedral(0) Vertex-FirstIn 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:
- 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 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.