## HyperSpace Polytope Slicer (HyperSlice)

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

### HyperStar:

Please try my Hyperspace Star Polytope Slicer.
It does just about everything HyperSlice does, and more.

More Java applets here.

### Short Description of the "HyperSlice" Applet:

The applet provides a way of visualizing and manipulating the 6 regular convex polytopes and several non-regular convex polytopes that exist in 4-dimensional space. You can use it to create some strikingly beautiful continuously-morphing 3-dimensional kaleidoscopic effects.

### The User Interface

Go to: HyperSpace Applet Controls

### What is a Polytope?

• A 2-dimensional polytope is a "polygon" -- an area of a 2-dimensional space that is bounded by 1-dimensional line segments. Example: a square.
• A 3-dimensional polytope is a "polyhedron" -- a volume of 3-dimensional space that is bounded by 2-dimensional polygons. Example: a cube.
• A 4-dimensional polytope is a volume of 4-dimensional space that is bounded by 3-dimensional polyhedra (called "cells"). Example: a Hypercube (Tesseract), which is bounded by eight 3-dimensional cubes. The most complex of the 4-dimensional regular convex polytopes is the 600-cell, in which 600 regular tetrahedra enclose a volume of 4-dimensional space. The "600-cell" has 14,400 symmetry operations!

#### A Couple of other Definitions:

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

### What Does the HyperSlice Applet Do?

Mathematically, we can imagine our 3-dimensional space to be embedded in a 4-dimensional space (but it isn't really). In this imaginary universe, our 3-space forms a "hyperplane" that divides the 4-dimensional space into two halves, just as any infinite 2-dimensional plane divides 3-dimensional space into 2 infinite half-spaces.

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.

### Things to Try

• Drag the W-slider with the mouse. The W-slider is the vertically-aligned slider control to the left of the graphics window (see the screen shots). It stops the animation and allows you to manually move the polytope back and forth across our 3-dimensional space. I have named the direction of motion "w" because it is perpendicular to our 3-space (x,y,z). A 4-space point is represented by 4 coordinates: (x,y,z,w).

• Click the Detach button to detach the applet into its own window. Now you can resize the applet by dragging on its corner. (I have noticed that in MS Interner Explorer the applet occasionally freezes up when it is detached. If this happens, click the Refresh button on your browser to start over.)

• Click the Controls button. This pops up a dialog-box that contains four pages of controls, labelled Object, Motion, Graphics, and About (see the controls screen shots). Click the tabs at the top of the dialog window to select the different pages. Play with the different controls.

• Rotate the image by dragging with the mouse. It is nice to orient the polyhedron so that you are viewing along an axis of symmetry. There are many different axes of symmetry to try.

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.

• Pick another Color Scheme from the Graphics tab. I like the W-Random scheme. I keep clicking the Re-randomize button until I get some colors that I particularly like. (The Color Scheme control is disabled if your Viewing Mode is one of the wireframe modes.)

• You can generate interesting animated 2-dimensional line drawings. Set the View mode to Wireframe-mono and check the Show Hidden Wires checkbox (on the Graphics tab). Manually rotate (mouse-drag) so that you are looking along an axis of symmetry. Start the animation.

• You can manually produce a rotation in the 4th dimension if you hold down the shift key when you begin your mouse-drag. With care, you can produce various interesting configurations that have symmetry about a single axis.

I use the following procedure:

• Stop the animation.
• Put the figure into its initial orientation by checking the Reorient on Apply checkbox (on the Motion tab) and clicking the Apply button.
• Set the W-slider close to 1.0 so that the symmetry is very apparent.
• On the Graphics tab, set the View mode to Wireframe-mono and check the Show Hidden Wires checkbox.
• Use manual 3-rotation to align the figure so that an axis of symmetry runs precisely left-to-right.
• Perform a manual 4-rotation (shift-drag), carefully dragging from the center of the window to the left or right. This preserves the symmetry about the left-right axis.
• Use manual 3-rotation to bring that axis of symmetry around so it is along your line of site.
• Restart the animation.

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.

### Polyhedra You Can Make

By tinkering with the Object choice, the Orientation choice and the W-slider, you can make a variety of polyhedra.

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.

### Background and Acknowledgements

I have wanted to write (or at least play with) a polytope slicing program since 1996 when I first saw Gordon Kindlmann's web pages .

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.