Stellations of the Dodecahedron
| s ||Stereo mode|
| r ||Rotation (on/off)|
| h ||Hollow (on/off)|
| b ||Big (on/off)|
| d ||Detach/Attach|
| e ||Edges (on/off)|
| l ||Lighting (on/off)|
| m ||Morphing (on/off)|
| f ||Fast (on/off)|
| 1 ||Regular Dodecahedron|
| 2 ||Small Stellated Dodec|
| 3 ||Great Dodec|
| 4 ||Great Stellated Dodec|
| c ||Cycle objects|
Click the image to enable keyboard commands.|
If you don't have 3D glasses, type "s" to switch the stereo mode for "look crossed" viewing.
Manually rotate by dragging with the mouse.
If you press the same numeric key (1 through 4) twice, the morphing will freeze.
For Browser Requirements, see below.
More Java applets here.
About Keyboard Commands:
- s=Stereo mode:
Toggles between the two stereo modes:
and "look crossed".
The anaglyph mode requires red-blue or red-green 3D glasses.
- r=Rotation (on/off):
Turns automatic rotation on or off.
- h=Hollow (on/off):
The inner object is removed, allowing you to see through the outer object while it is morphing.
- b=Big (on/off):
Toggles between "Big" mode and "non-Big" mode.
In "Big" mode, each object is sized as large as will fit in the window (depending on the stereo mode).
In "non-Big" mode, the scale factor is constant, so for example the core dodecahedron is of constant size.
Allows you to detach the applet into a separate window so you can resize it.
After detaching, you may have to click the applet to regain keyboard control.
If you make the window too big, the animation will be sluggish.
For most efficient use of window real-estate, adjust the width and height so that the image
(when viewed without 3D glasses) exactly fills the window (with "Big" mode turned on).
- e=Edges (on/off):
Turns edge-lines on or off.
- l=Lighting (on/off):
Turns directional lighting (shading) on or off.
- m=Morphing (on/off):
Turns morphing on or off.
If morphing is enabled, the transitions between objects are continuous.
- f=Fast (on/off):
Turns "fast mode" on or off.
In "fast mode", the animation runs as fast as it can on your computer.
In "non-fast mode", the animation's maximum frame rate is limited to about 8 frames per second.
- c=Cycle objects:
Cycles continuously through the objects, with morphing.
About the 3D Objects
- 1=Regular Dodecahedron:
This familiar Platonic solid is enclosed by 12 pentagons that meet 3 to a vertex (the points of a polyhedron are called "vertexes").
- 2=Small Stellated Dodecahedron:
I like this spiky little object a lot.
It is made of 12 pentagrams (5-pointed stars).
I think it is cool the way they pass through each other and meet 5 to a vertex.
- 3=Great Dodecahedron:
I like this one too.
It is made of 12 pentagons that pass through each other and meet 5 to a vertex .
If you draw a line from the outside to the center, the line passes through 3 pentagons.
The object is wrapped by 3 layers, which are connected to each other in a funny way at the vertexes.
If you were a computer-generated ant walking on one of the layers, you could walk in a circle around one of the vertexes
and you would find yourself on a different layer. The vertex is a "branch point" of a Riemann surface.
If you go around the branch point 3 times, you return to the original layer.
The reason the ant would have to be computer-generated is that a real ant would be blocked from walking around a
vertex by other layers that cross the one she is on. Computer-generated ants aren't necessarily bothered by such rules.
- 4=Great Stellated Dodecahedron:
This one is made of 12 pentagrams that meet 3 to a vertex, and there are 20 vertexes.
The "core" object is the regular dodecahedron.
It is enclosed by 12 pentagonal "faces".
Each face lies in a different infinite plane.
Thus the dodecahedron defines 12 infinite planes.
The edges and vertices of the dodecahedron occur on intersections of these planes.
The stellation process works because the 12 planes have additional intersections outside of the core dodecahedron
(it wouldn't work for a cube).
We stellate a polyhedron by extending all its faces until they intersect again along new edges.
The java applet on this page illustrates this process.
As the applet morphs, you can watch the faces expand to create new intersections.
(This is easier to see if you turn off "Big" mode by pressing the "b" key, and stop the
rotation by pressing the "r" key.)
I wrote the applet as a test for a pure-Java 3D rendering package that I wrote.
The rendering is done pixel-by-pixel, using a java.awt.image.MemoryImageSource to create the image.
The rendering algorithm uses z-buffering and is optimized for rendering polyhedra.
I opted for the "press a key" user interface for several reasons:
1. Laziness (this was just supposed be a quick demo of my renderer)
2. It fits -- it's a lot easier than trying to click a button or drop a choice-box while you are looking cross-eyed at a 3D image.
This web page uses a "style" attribute in an attempt to give the applet area (at the top of the page) a different background color.
The different browsers handle this with varying degrees of success.
After seeing how poorly this simple "style" attribute is handled, I am definitely not motivated to
try anything fancy with style sheets.
The information about star polyhedra comes from H.S.M. Coxeter's book
"Regular Polytopes" (Coxeter01).
This is a Java 1.1 applet. See my Java page for Browser Requirements.
<Dogfeathers Home Page>
<Mark's Home Page>
<Mark's Java Stuff>
<Mark's 3D Stuff>
This page URL: