DESCRIPTION

**Purpose:** The n-dimensional viewer allows the user to
interactively use various projections to examine higher dimensional
objects.

**Features:** Currently, surfaces (meshes) and curves (polylines)
in n-dimensional Euclidean space can be examined by taking arbitrary
hyperplanes and projecting orthogonally into them. Several of these
projections may be viewed simultaneously. Arbitrary rotations and
translations in n-dimensional space are supported, without undue
complication of controls. Finally camera motion is accomplished
through an intuitive procedure.

*Note: The NDview module is built on top of n-d extensions to
Geomview's command language, which allows direct control over the
various transformation matrices and many other aspects of Geomview.
This means that more advanced users can create their own viewers on
top of this library, and NDview is just one example of what can be
done. *
**Interface:** The underlying idea of the n-dimensional viewer is
that motion in a higher dimensional space can be expressed in terms of
motion in three dimensional subspaces. This is accomplished as
follows: A single camera is located in an n-dimensional space (where n
is now fixed) and this camera implicitly defines several three
dimensional hyperplanes passing through it, namely those generated by
the basis vectors associated with the camera. These basis vectors
will also be called coordinate directions.

The user chooses some of these hyperplanes as the subspaces into which objects are projected and displayed on the screen. Taken individually, each of these projections (or windows) look like an ordinary three dimensional scene, containing three dimensional objects and viewed from a three dimensional camera. Motion within such a window is accomplished exactly as usual in Geomview, with the familiar controls for camera and object motion.

All of these motions are also considered in the context of the n-dimensional space: movement in a particular hyperplane is translated into movement in the whole n-dimensional space. For example, if an object is translated one unit in the second coordinate direction of a hyperplane generated by the first, third, and fifth coordinate directions of the n-dimensional camera, then (in the coordinate system defined by this camera) the object is translated one unit in the third coordinate direction.

Because each window displays a projection from the n-dimensional context, all projections are immediately updated after each motion in a particular hyperplane. This scheme applies to the camera as well, so that movements of the three dimensional camera in a particular window causes the n-dimensional camera to move, and new projections to be computed appropriately. For example, if the camera is made to rotate about the projection of an object in one window, then the projections of the object in other windows (those windows based on hyperplanes which intersect the plane of rotation) will change continuously and cyclically to reflect the movement of the n-dimensional camera.

It is hoped that, over time this program may be used to develop some intuition for higher dimensional spaces.

AUTHORS

Olaf Holt and Stuart Levy

Back to the beginning