title picture

Introduction:

Peek will be a program to explore higher dimensional objects interactively through the use of cross-sections and projections. The goal is for the user to gain some intuition about higher dimensional geometry. Projections have already been extensively used for this purpose. For instance, those who know what a hypercube is have probably seen the projective views that are so common,
either perspective hypercube or non-perspective hypercube

Fewer people know, however, that the hypercube also exists as a series of 3-dimensional cross-sections:
hypercube slice series, part 1
hypercube slice series, part 2
hypercube slice series, part 3
hypercube slice series, part 4
hypercube slice series, part 5

Visualizing higher dimensional objects is, like many scientific visualization tasks, a problem of reducing the dimension of the data. Projections do this by "squashing" the object into a lower dimensional space. But besides a change of coordinate information, the object is unchanged- it has the same number of vertices, edges, faces, etc, and they are all joined together in the same way. Cross-sections, on the other hand, reduce dimension by intersecting the polytope with a lower dimensional space to produce a totally new object. As the hypercube cross-section series above demonstrates, the cross-sections provide interesting geometric information that is not evident in a projective view. For instance, I was surprised to learn that you can cut a hypercube through the center to get an octahedron. This is the higher dimensional analog of cutting a cube through the center to get a hexagon. So while projections are a very common tool for viewing higher dimensional geometry, I think cross-sections are more challenging and more interesting. Peek will be able to do both.

But who says we have to be limited to cubes and hypercubes? I'm interested in visualizing polytopes in general. Polytopes are the generalization of polygons (2-d) and polyhedra (3-d) to any dimension. This semester I've designed a data structure to represent polytopes of arbitrary dimension, and I've designed and implemented an algorithm to take k-dimensional slices of n-dimensional polytopes for any n and k. What remains is to create a user interface for these operations, and to (virtually) construct the objects that I want to explore. In 3 dimensional space there are 5 regular solids (tetrahedron, cube, octahedron, dodecahedron, icosahedron) but in 4-space there are 6. I want to visualize them all- to create a tour of all the regular polytopes in 4-space. At the moment, my goal is to construct what must be an incredible object- the "600-cell": a 4 dimensional solid with 600 tetrahedral faces! I want to pull this object in and out of 3-space and watch the resulting cross-sections grow and change. Of course, I plan to make movies of the animated slicing so that even if you don't run Peek you can get a feel for its use.

We are three dimensional humans, hard-wired to live in a three dimensional world. Although some say otherwise, I do not think that humans can ever grasp higher dimensional geometry in the same natural way we know the geometry of three dimensions. Rather, I think that the ability to do interactive projections and slices will give the user at best some dim glimmer of an idea of what higher dimensional objects are like. Hence the diminutive name, "Peek".


Contents

  1. Some terminology
  2. Design of the part/image data structure
  3. Algorithms:
    1. General nature of algorithms on part/image structure
    2. Cross-sections of polytopes
    3. Slices of polytopes
    4. (Coming soon: Taking duals of polytopes)
    5. (Coming soon: Truncating and partially truncating polytopes)
    6. (Coming soon: Building the 6 regular 4-d polytopes)
  4. "Proof of concept": some preliminary results from Peek
  5. Storing objects: the object file format
  6. The C code so far, as well as some sample object files, and an HP executable
  7. (Coming soon: Interface issues for manipulating n-dimensional objects)
  8. A note about the the diagrams in this report.

All materials Copyright (c) 1995, 1996 Gordon Kindlmann, gordon@graphics.cornell.edu