The documentation for this application is spread
out over several help panels like this one.  If
you are new to the visualization of higher
dimensional objects, the tesseract demo (which you
get by pressing the other large button on the main
panel) should provide a useful introduction.  If
you are new to Geomview, you may find it helpful
to familiarize yourself with motion and objects in
the usual three-dimensional world of Geomview
before moving on to use the n-d capabilities of
NDview.  The rest of this documentation will
assume that 1) you are familiar with the idea of
visualizing higher dimensional objects and 2) you
can use Geomview's standard controls to view
ordinary objects without too much difficulty.

Features of NDview: Currently, surfaces (meshes)
and curves (polylines) in n-dimensional Euclidean
space can be examined by choosing 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.  These may
be specified either qualitatively with the mouse
or quantitatively through the "basis vectors"
panel.

The following paragraphs explain one simple data
structure for describing objects, and how to view
your object using NDview.

The simplest data structure used is that of a
mesh-- a two dimensional lattice of points whose
position in some n-dimensional space is specified
by a list of n-tuples.  Here is an example of a
crude approximation to a part of the ordinary
paraboloid f(x,y) = x^2 + y^2:

nMESH     #a keyword begins the data
3         #dimension of the ambient space
3 2       #fineness of the lattice,
          #  in two directions
-1  0  1  #a list of n-tuples
 0  0  0  #in this case, we have
 1  0  1  #points of the form
-1  1  2  # x y f(x,y)
 0  1  1  #arranged in order, as if
 1  1  2  #reading off a grid.

Another example yields four faces of a cube lying
in four dimensions:

nMESH            #the same keyword
4                #dimension
2 5              #size of the grid
0 0 0 0  0 1 0 0 #list of n-tuples
0 0 1 0  0 1 1 0 #the spacing is
0 0 1 1  0 1 1 1 #not crucial, as
0 0 0 1  0 1 0 1 #long as white-
0 0 0 0  0 1 0 0 #space separates
                 #the numbers.

In order to include several nMESH objects within a
single file, simply concatenate the nMESH objects
and add the keyword LIST at the top:

LIST
nMESH
. . .
nMESH
. . .

Examples can be found in the standard Geomview
data directory under NDview/geom.

Assuming you have a datafile to look at, the
following is a simple recipe for looking at the
object using NDview.  More experienced users may
find short-cuts documented elsewhere.

1.  Start NDview.  (NDview is an external module
of Geomview, so to get this help page you probably
invoked it from the Modules browser of Geomview's
main panel.)

2.  Select the "toolbox" option, and increase the
"current (maximum) number of dimensions" if
necessary to accommodate your object.

3.  Still in the "toolbox", click on the "New
Window" button.  This panel allows you to choose
the coordinate directions used for projection.
For example, if you have a five-dimensional
object, and you want to see it projected into the
first three coordinates, press "1" "2" and "3",
then press "Done".  A new window should appear,
with a label on the top corresponding to your
choice of projection axes.

4.  Load your datafile in the usual way for
Geomview, starting with the "Load" button on the
main panel for Geomview.  If everything is working
correctly (and your object projects to something
visible by your camera) you should be able to see
the object in the newly created window.

5.  Finally, select the "basis vectors" button on
the NDview panel.  NDview now shows the basis
vectors of the space into which object is being
projected, and the position of the camera within
that space.  (If you have several windows, the
information is shown for the current window, which
may be the last one visited by the mouse.)

At this point you can fly around the object and
examine it using the usual Geomview controls.  You
can also quantitatively specify the subspace and
camera position by modifying the values on the
NDview panel.

These introductory paragraphs have necessarily
simplified some issues that are addressed in more
detail elsewhere (please press the help button for
the "pre-fab", "toolbox", and "basis vectors"
options or see the manual pages.)  It is hoped
that this is enough to begin.

If you have any questions or comments, please
e-mail them to holt@geomview.org
