HyperSlice Applet (below) doesn't work even though you installed Java? | |
Run the HyperSlice Web-Start Application instead. | |
This downloads a jnlp (Java Web Start) file that tells Java how to run the HyperSlice outside of your browser. | |
See my Java Web Start notes. |
This applet requires Sun's Java Plugin, i.e. the J2SE Runtime Environment, (JRE).
More Java applets here.
The regular convex polytopes in 3 dimensions are the 5 "Platonic Solids" -- the tetrahedron, cube, octahedron, dodecahedron and icosahedron. In 4 dimensions, there are 6 regular convex polytopes. In each space of more than 4 dimensions, there are only 3.
- Regular:
- All the vertices, edges, faces and cells are the same.
- Convex:
- The polytope doesn't have any feature that protrudes far enough to cast a shadow on some other part of the polytope.
If the 4-space contains a 4-dimensional polytope, we can drag that polytope across the our 3-space hyperplane. As we do this, we can view the part of the polytope that intersects our 3-space. Since the 4-dimensional polytope is a bounded volume of 4-space, its intersection with our 3-space forms a bounded volume of 3-space. What we see is a polyhedron in 3-space. We can watch the 3-dimensional polyhedron continuously change shape as the 4-dimensional polytope moves across our 3-space. I have some diagrams of the analogous process in 3 dimensions.
With the HyperSlice applet, you can select any one of the six 4-dimensional regular convex polytopes. You can manually drag the polytope across our 3-dimensional space (using the W-Slider control). You can view the resulting polyhedron in 3D stereo. You can inspect it from all angles by dragging it with the mouse.
The most spectacular results are seen with the "600-cell" object. This polytope is bounded by 600 3-dimensional regular tetrahedra. The resulting 3-dimensional polyhedra are very complex yet highly symmetrical.
With the 600-cell, each animation frame requires an enormous amount of computation, so if you don't have a super-fast computer, the animation may be rather slow (it is slow on my 200 Mhz Pentium, but it runs well on a 450 Mhz Pentium).
The initial viewing mode is Stereo, solid, which shows 2 images. You can view these images in stereo 3D using the "look crossed" method. If you don't like to cross your eyes, click the View button once to get a single image.
When the applet starts, automatic random 3-rotation is "switched on". If you want the polyhedron to "stay put", you will have to disable this 3-rotation using the checkbox on the Controls dialog, Motion tab.
When dragging, keep in mind that the rotation arm is an imaginary line from the center of the graphics window to the mouse cursor. It is best to begin your mouse-drag in the center of the graphics window and drag outward. If you are viewing a single image, this is very intuitive. If you are viewing 2 images cross-eyed, you will see 3 polyhedra and 2 apparent mouse cursors. In that case, you should begin your mouse-drag with the apparent mouse cursors placed symmetrically to the right and left of the middle polyhedron.
I use the following procedure:
If you are performing arbitrary 4-rotations, you should probably set the W-range choice (on the Object tab) to R0 (vertex), which produces the largest range. Note that the W-range choice is automatically reset every time you select a new object or orientation.
Here are some examples:
Object choice | Orientation | W-setting | |
Tetrahedron | Simplex | Cell-first | 0.0 |
Cube | Hypercube | Cell-first | any |
Octahedron | Cross polytope | Vertex-first | any |
Dodecahedron | 120-cell | Cell-first | 0.9 |
Icosahedron | 600-cell | Vertex-first | 0.85 |
Cuboctahedron | 24-cell | Cell-first | 0.0 |
Icosidodecahedron | 120-cell | Cell-first | approx 0.764 |
Rhombic Dodecahedron | 24-cell | Vertex-first | 0.0 |
Rhombic Triacontahedron | FC 600-cell | Vertex-first | 0.9 |
Triangular Prism | Simplex | Edge-first | any |
Square Prism | Hypercube | Face-first | any |
Pentagonal Prism | 120-cell | Face-first | 0.93 |
Hexagonal Prism | Hypercube | Edge-first | 0.0 |
Truncated Tetrahedron ** | 120-Cell | Vertex-first | approx 0.918 |
Truncated Octahedron ** | 24-Cell | Cell-first | approx 0.478 |
Truncated Icosahedron (Soccer Ball) ** | 120-cell | Cell-first | approx 0.5 & 0.66 |
Truncated Dodecahedron ** | 120-cell | Cell-first | approx 0.806 |
Small Rhombicosidodecahedron ** | 120-cell | Cell-first | approx 0.236 |
Trapezoidal Icositetrahedron ** | FC Cross-Polytope | Cell-first | 0.0 |
Pentakisdodecahedron ** | 600-cell | Vertex-first | approx 0.5 |
??? Related to Small Rhombicosidodecahedron ** | 600-cell | Vertex-first | approx 0.656 |
??? Should have a name | 600-cell | Vertex-first | 0.0 |
??? Should have a name | FC 120-cell | Edge-first | approx 0.964 |
??? Should have a name | FC 120-cell | Cell-first | approx 0.864 |
??? Should have a name | FC 24-cell | Cell-first | 0.0 |
??? Should have a name | FC 24-cell | Vertex-first | 0.5 |
** Entries were identified by visual comparison with George Hart's Virtual (VRML) Polyhedra.
This table assumes that you are using the default W-range choice (on the Object tab). (As mentioned above, the W-range choice resets to the appropriate default whenever you change the Object and Orientation choices.)
I am sure that many of the more complex figures also have names. If you know some, email me and I will add them to the list.
When the Java 3D API (J3D) became available, I started thinking seriously about doing it in Java (my favorite computer language). A prototype version of the applet used J3D. I found J3D to be cumbersome and wasteful of resources so I dumped it and wrote my own rendering code. (This is not quite as cool as it sounds, because it is pretty easy to render a single convex polyhedron.)
This project could not have happened without H.S.M. Coxeter's book "Regular Polytopes" (Coxeter01). The constructions and metrical properties of most of the polytopes come from Coxeter's book.
Looking over Gordon Kindlmann's older pages years later (August 2005), I see that that's where I got some of the key concepts that I used in my algorithms.
I spent most of my spare time working on this applet over a 3-month period starting in mid-November 1998. I have enjoyed this project immensely. If I could find a way (financially) to do stuff like this full-time, I would be a happy guy.