Home> 4D Blocks > Version 6 Controls Settings Block Motion > Examples Scene Language Kinds of Blocks Goals History Versions Geometry Examples More Geometry Examples Geometry Examples #3 Train Examples Elevated Train Examples Round Platform Examples Scenery Examples Toys and Puzzles
 Shape Reference 
Contributed ExamplesThe "contrib" directory contains scene files that have been contributed to the 4D Blocks project by other people.20131129 campfire1, 20131205 3Sphere2 Ben Blohowiak made these two files. I liked them a lot and he kindly agreed to contribute them. Before I talk about the files, I'd like to acknowledge Ben's other contributions to the Blocks project.
So, thanks a bunch, Ben! Now, about the campfire example, I just like to fly underneath and look up at the flames and sparks. The official name is the Monument to Sempiternal Creation.
It thus seems fitting to have monuments in fourspace that have an empyrean character, simultaneously turning minds toward the nurturance of impermanent entities as well as the phoenix blaze of each passing moment's selfrenewal. The 3sphere example is a great addition because it shows a real 3sphere rather than a squaredoff object like the ones I put together. I particularly like the view from the center. If you look toward either of the poles (white), you can see six lines radiating out along the axes (green, yellow, and red) and eight lines radiating out along the corner diagonals; and if you turn to follow any of the lines, you end up at the other pole. The 3D analogy is helpful here. If you were at the center of a regular sphere, you could draw four lines along the axes and four lines along the diagonals to slice the sphere into eight pieces like the segments of an orange. Similarly, in 4D, if you visualize the twelve edge diagonals and connect them to the adjacent axes and corner diagonals with planes, you can slice the 3sphere into 48 pieces. You can also imagine yourself inside a 3sphere in any 4D scene that has a sky. Think of the sun as a pole, and see how lines radiate outward from it in the six axial directions, among others. See Scenery Examples for details. the120cell In my opinion, most of the credit for these examples goes to H. S. Teoh, creator of a beautiful and amazing web site about fourdimensional objects (here), who provided the raw data. He did tell me the whole story, however.
The vertex coordinates are not my work; I got them out of H. S. M. Coxeter's excellent book Regular Polytopes. Technically speaking, the face lattice representation that I sent Ben isn't fully my own work either, it was created by a program I wrote that runs a convex hull algorithm on the vertices and implements Kaibel et al (2002)'s algorithm for enumerating the face lattice given the vertexfacet incidence matrix (which is part of the output of the convex hull algorithm). So credits should also go to Coxeter, Komei Fukuda (for the convex hull algorithm in cddlib, used by the program), and Kaibel et al. Thanks also to Ben for making it happen! I even did a little work myself, converting between file formats and coloring the faces. Speaking of Regular Polytopes, I can confirm that it's an excellent book. The vertex coordinates for the regular dodecahedron in library2 came from there too. And, speaking of library files, the 120cell definition is actually stored in library6, not in the "contrib" directory, so that you can save games containing 120cells in an efficient way. What about the 120cell itself? I definitely can't do better than this explanation: The 120Cell. As far as the game is concerned, I can recommend that you use either texture 8 to see the individual dodecahedra clearly or texture 0 to reduce the line count. Also, if you're going to be picking up and turning the 120cell, you might want to increase the rotate time (on the Motion tab) so that it doesn't turn as fast. I can also explain the colors I used in the examples. In the base example "base", the whole 120cell is green. In the other two examples, I've colored 50 of the 120 faces: the two poles (white) and the twelve bands of four faces each that connect them. The remaining 70 faces are gray. In "lat" the bands are colored according to latitude. The colors aren't exactly the same as in Teoh's explanation, however. Here's how they correspond.
Because the game uses perspective projection rather than parallel projection, from the start position you can only see the north pole and the arctic faces. You can make the mid and lowlatitude faces appear by backing up, but by the time they appear, they're too far away to make out any real detail. Another option is to slide around and look at them a few at a time. The orange and yellow midlatitude faces aren't part of the twelve bands, so according to what I said above they ought to be gray. But they're not! In this example, only the 30 equatorial faces are gray. However, if you're using texture 0 you won't see much orange or yellow, because I gave those colors lowest priority in order to emphasize the band structure. In "long" the bands are colored according to longitude. In other words, the four faces in each band all have the same color. However, there were only six colors I wanted to use, so I colored the bands in pairs. As a result, instead of twelve bands of four faces each, there are six rings of ten faces each that intersect at the poles! Of course there's nothing special about the poles; every face is associated with six rings. Since every ring is associated with ten faces, there are 120 x 6 / 10 = 72 rings in all. (This sort of math always confuses me. The easy way to remember it is, there are 120 x 6 = 720 facering associations.) I read on Wikipedia that it's possible to find sets of 12 rings that cover the 120cell in a discrete version of the Hopf fibration. I think "long" is the easiest example to make sense of, especially if you switch to texture 8. Here's one more perspective on "lat" and "long". Suppose we put the faces of the bands into a table with twelve columns and four rows. When we pair the bands up, that gives us a new table with six columns and four rows. In "lat" we color the rows of that table, while in "long" we color the columns.
