HyperSpace Polytope Slicer (HyperSlice)


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

My Other HyperSlice Applet Pages:

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


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.


Related Links


<Dogfeathers Home Page>   <Mark's Home Page>   <Mark's Java Stuff>
Email: Mark Newbold
This page URL: http://dogfeathers.com/java/hyperslice.html