Hyperspace structures 

How the models were produced 
The models of the hypercube and hypertorus were produced with the aid of some simple Mathematica routines.
The "inflated'' hypercube was produced by a FORTRAN program. The vertices of the 4d objects are represented by vectors, each holding four coordinates (x,y,z,t)Rotation matrices are simple extensions of the 2d and 3d versions: for example, to rotate in the planes xy, and yt, we would use the matrices: / Cos(theta) Sin(theta) 0 0 \  Sin(theta) Cos(theta) 0 0   0 0 1 0  \ 0 0 0 1 /and / 1 0 0 0 \  0 Cos(theta) 0 Sin(theta)   0 0 1 0  \ 0 Sin(theta) 0 Cos(theta) / (These are basically just the 4x4 identity matrix, with elements that lie in the row and column corresponding to coordinates that will be altered by the rotation replaced by the elements of a 2x2 rotation matrix.) Several techniques may be used to plot the structures. One way is to just rotate to the desired orientation and then ignore the 4th coordinate of each vertex, giving a set of vertices in 3d space to be joined together (this method was used for the first hypercube movies). This gives the effect of a simple orthogonal projection. An alternative method is to choose a point in 4space, and imagine that this is a lightsource, we then take the shadow that is cast by light rays from this point to define our 3d projection (this method was used for the spinning hypertorus). The 4th dimension is then more apparent as extra depth appears in the image. Raytracing was done using the Persistence of Vision (POV) and Rayshade packages with the edges connecting the vertices represented by cylinders, and the vertices themselves shown as spheres. The movies were generated from the resulting stillframes using mpeg_encode. 

Back to: Gallery home Home page

webmaster  