Up: Geomview FAQ Table of Contents
Next: Geomview FAQ data presentation

Geomview FAQ

General Questions

What is Geomview?

Geomview is an extremely versatile, interactive program for viewing geometric objects in 3 dimensions. Objects can be described by data files in a variety of formats. Once an object is loaded into Geomview, the user can interactively move about the scene looking at objects from all sides. The user can also interactively change the visual characteristics of the object, such as its color and transparency in order to assist visual analysis of complex scenes. Geomview also has facilities for communication with "external modules" provided by users. Such modules can automate sequences of Geomview commands to control real-time deformations of a scene for specialized mathematical research and illustration purposes.

Objects are described in OOGL an Object Oriented Graphics Language. OOGL allows a user to choose from a variety of file formats tailored to different kinds of objects. Simple formats exist for describing curves and points. More complicated formats exist for describing surfaces in terms of meshes, triangulations, bezier patches, and other geometric primitives. Packages provided with Geomview also allow users to convert Mathematica and Maple graphics to Geomview formats, thereby enabling a user to create Geomview objects from high level, mathematical descriptions, without worrying about the technicalities of data file formats. At the same time, users needing finer control over object definitions have the low level descriptions at their disposal.

In addition to their abstract, spatial definitions, visual characteristics of Geomview scenes can be modified in many powerful ways. The user can make modifications interactively at the console, or attributes can be controlled via scripts written in GCL, the Geomview Command Language. Among other things, the user can change lighting, camera and viewpoint attributes, and object appearance. Interactively, the user can rotate and translate objects individually or in groups, as well as "fly" the camera through the scene.

Another noteworthy feature of Geomview is that the user can also set the geometric properties of the underlying space. Thus, Geomview allows a user to "see" into hyperbolic and spherical space, as well as Euclidean space. This capability gives both the researcher and the student a totally unique opportunity to gain an intuitive feel for the classical non-Euclidean geometries of constant curvature.

Because all of Geomview's capabilities can be controlled via GCL, extending Geomview by writing external programs or modules that communicate directly with Geomview is a relatively straight forward matter. Geomview is distributed with a collection of useful general purpose external modules that do things like replicate an object by applying isometries, or animate scenes. However, external modules also permit investigators to easily implement specialized mathematical or graphical tasks, such as deforming objects by flows, applying group actions to objects, and so on.

Geomview represents the current state of an ongoing effort at the Geometry Center to provide interactive geometry software which is particularly appropriate for mathematics research and education. For more in depth discussion of Geomview's capabilities, consult the online Geomview Manual.


How do I obtain Geomview?

Geomview is available free via anonymous ftp from

ftp.geom.umn.edu in the directory /pub/software/geomview.

You can also download it from the geomview download page. There are binary distributions for SGI, Sun SPARC, Linux, HP-UX, IBM RS/6000, DEC Alpha, and NeXT machines, as well as a source code distribution.

We do not charge for Geomview, but we would like you to send us a letter describing your work (an abstract would be fine), and explaining how Geomview has helped you. This information helps us report to the NSF the ways in which our software is being used. Please send your letters to register@geom.umn.edu. Thank you.


Where do I find documentation?

Many documentation files are included in the source and binary distributions in the doc directory. Of particular interest are the following:
doc/geomview.ps
A comprehensive manual written specificly for the SGI version of Geomview. Most, but not all of it, applies to the NeXT and X11 versions.
doc/geomview, doc/geomview-*
Emacs Info version of the manual. You can install these pages in your emacs info tree. This is an online version of the manual without the figures.
doc/OOGL.m.doc
Documentation for the Mathematica-to-Geomview interface.
doc/gvplot.m.doc
Documentation for the Maple-to-Geomview interface.
doc/oogltour
A quick tour of the OOGL file format, which is the format of geometry files that Geomview reads. More details are in the manual.
Two of these documents, the Geomview Manual and the OOGL Tour, are available online.

While running Geomview, there is built-in help for Geomview Control Language (GCL) commands. In the Command panel (hotkey sequence "PC"), typing

(? command) or (?? command)

will give a one line usage summary, or command details, respectively. The command argument to "?" and "??" can include wildcard characters.

Manual pages for Geomview exist in section one (Geomview usage) and section five (GCL documentation). In addition, most modules and auxiliary programs have their own manual pages.


Are there Macintosh or Windows versions?

No. The Geometry Center has limited resources and feels that it cannot devote the needed time to perform such ports. If you feel strongly about this, send mail to software@geom.umn.edu.


There isn't a binary for my workstation. Is there hope?

Certainly. If your workstation has the X Window System, Motif, and an ANSI (ISO) C compiler, you can compile geomview from the source code distribution (available for from the goemview download page.) The README file has instructions about how to port to new architectures. If you have problems, send mail to software@geom.umn.edu. If you succeed, we would appreciate receiving a copy of your "makefile/mk.whatever" and hearing about what source modifications were necessary.


How do I change Geomview's defaults?

You can do this using a .geomview file. When Geomview starts running, it checks for a system-wide startup file ${GEOMROOT}/data/.geomview, then looks for ~/.geomview (where ~ is your home directory, and then looks for a .geomview file in the current directory. You can place any GCL commands in the .geomview file. The commands in the .geomview file should be placed inside a progn statement to cause Geomview to execute them all at once, instead of executing them during the first few refresh cycles. Here is an example .geomview file to illustrate some of the possibilities.
(progn		# To make sure it gets executed in one chunk
  (window default { size 640 480 } )	        # Default window size
  (ui-panel "Appearance" on)		        # Want Appearance panel on
  (emodule-define "Test Module" "/u/testmod")	# New module
  (merge-baseap appearance { linewidth 4 })	# Make lines thicker
  (backcolor allcams 0.2 0 0.2)		        # Background color
  (normalization allgeoms none)		        # Turn off normalization
  (bbox-draw allgeoms none)		        # Bounding boxes off
)


How can I get in touch with other Geomview users?

There is a moderated "geomview-users" mailing list for people using geomview that can be used for communication between users regarding geomview problems, questions, experiences, etc. The geomview authors are also a part of this list and will respond to questions posted to it. We also use this list to make announcements about new releases and other things of interest to users. To be added or removed from the mailing list, send mail to geomview-users-request@geom.umn.edu.


Where is a list of Geomview keyboard shortcuts?

Right here! For quick reference, typing "?" while your mouse cursor is in a camera window will cause the following list of keyboard short cuts to be printed on whatever terminal window you started Geomview from. Not all of the keyboard shortcuts work or are applicable in the X11 and NeXT versions of Geomview but they should all work in the SGI version. Here is the list:
Keyboard commands apply while cursor is in any graphics window and most 
control panels. Most commands allow one of the following selection prefixes 
(if none is provided the command applies to the current object):
 
 g  world geom        g#  #'th geom   g*  All geoms
 c  current camera    c#  #'th camera c*  All cameras

Many allow a numeric prefix:  if none they toggle or reset current value.

Appearance:
----------
 Draw:           Shading:               Other:
 --------------- --------------         --------------------------------------
 af Faces        0as Constant            av  eVert normals: always face viewer
 ae Edges        1as Flat               #aw  Line Width (pixels)
 an Normals      2as Smooth             #ac  edges Closer than faces(try 5-100)
 ab Bounding Box 3as Smooth,non-lighted
 aV Vectors       aT allow transparency    

Color:
------
 Cf Ce Cn Cb CB   face/edge/normal/bbox/backgnd

Motions:                                       Viewing:
--------------------------------------------   ----------------------------
 r rotate          [Leftmouse=X-Y plane,       0vp Orthographic view
 t translate        Middle=Z axis,             1vp Perspective view
 z zoom FOV         Shift=slow motion,          vd Draw other views' cameras
 f fly              in r/t modes.      ]       #vv field of View
 o orbit           [Left=steer, Middle=speed ] #vn near clip distance
 s scale                                       #vf far clip distance
 w/W recenter/all                               v+ add new camera
 h/H halt/halt all                              vx cursor on/off
 @  select center of motion (e.g. g3@)          vb backfacing poly cull on/off
                                               #vl focal length
 L  Look At object                              v~ Software shading on/off

show Panel:     Pm Pa Pl Po     main/appearance/lighting/obscure
-----------     Pt Pc PC Pf     tools/cameras/Commands/file-browser
                Ps P-           saving/read commands from tty

Lights:         ls le           Show lights / Edit Lights
-------

Metric:         me mh ms        Euclidean Hyperbolic Spherical
------

Model:          mv mp mc        Virtual Projective Conformal
------

Other:
------
 < Pf  load geom/command file           N normalization
 > Ps  save something to file          0N none           
 TV    NTSC mode toggle                1N each   
 ui  motion has inertia                2N all
 uc  constrained (X/Y) motion
 uo  motion in Own coordinate system

 Rightmouse-double click  pick as current target object
 Shift-Rightmouse        pick interest (center) point

Renderman:
----------
 RR send RIB output to NNN.rib (default fileprefix == "geom")
 RC Emulate lines using cylinders (default)
 RP Emulate lines using polygons
 Ra choose ASCII RIB format (default)
 Rb choose BINARY RIB format
 Rt choose Display token to specify .tiff file (default)
 Rf choose Display token to specify framebuffer
 Rs Simulate background color with Polygon (default)
 Rx No background simulation - fully transparent (alpha) background


How do I make an external module?

The Geomview manual includes a chapter about writing external modules. However this manual was written specificly for the SGI. The following notes may help you if you're developing on another platform.

The first example in the chapter should compile without any problems on any platform. However, the second example has a user interface created with the FORMS interface for SGIs. If you're developing on X11 and are interested in using FORMS, you can use XForms, an X port of FORMS. You can use any X11 toolkit to generate a user interface, such as Motif, Xt, Interviews, or XView. If you haven't decided upon a user interface toolkit, we recommend tcl/tk. It's very easy to learn, has a nice interface with C, and the interpreted language makes for a quick development cycle. If you're developing on the NeXT, your choice is limited to the NeXTSTEP Appkit unless you have an X server, which lets you use any of the previously mentioned toolkits.

The third example in the chapter uses the OOGL libraries. We don't currently distribute binaries of the libraries, as we figure that only a small amount of our user population will need them. To create the libraries, get the Geomview source distribution (from the geomview download page), and compile that. Geomview itself may not compile, since it requires Motif libraries (X11 version), but you'll still get the OOGL libraries and include files, so you can build your own programs and use them with the existing Geomview binaries.


I need module X for platform Y. Do you have it?

We release all stable external modules for all platforms. The list of distributed modules is in the README file included in the distributions. If the module you want is in that list but doesn't appear in the modules list on main panel, Geomview probably wasn't installed properly. Otherwise, send mail to software@geom.umn.edu describing which module you need so we can get an idea of what our users want. The modules distributed in the most recent version of Geomview (1.5.0) are:
MODULE	   PLATFORMS	DESCRIPTION

4dview:		S	4-dimensional slicing & rotation
animate:	SNX	flip through a sequence of objects
clipboard:	S	cut, copy and paste geometric objects
crayola:	SN	interactively color objects
drawbdy:	SNX	compute and draw the boundary of an object
flythrough:	S	interactive version of "Not Knot" hyperbolic flythrough
ginsu:		S	interactively slice objects
graffiti:	SN	draw line segments on objects
gvclock:	SNX	3D clock, demonstrates real-time motion
hinge:		S	hinge copies of a polyhedron around its edges
maniview:	S	3-manifold viewer
NDview:		S	N-dimensional viewing controls and demonstration
NDdemo:		S	N-dimensional viewing demonstration
nose:		SNX	demonstrates picking
pssnap:		SNX	generate PostScript snapshot
stereo:		S	hardware, crosseyed, red/cyan stereo (beta version)
sweep:		SN	generate objects of rotation from line segments
tackdown:	S	redefine an object's "home" position
transformer:	S	explicitly control an object's transformation matrix
trigrp:		S	explore triangle symmetry groups
warp:		SN	interactively deform an object
(S means SGI version exists, N means NeXTStep version exists, X means X version exists)


I have access to an X11 and SGI workstation. Which version should I use?

The SGI version will almost always be significantly faster, due to hardware support for 3D graphics. For example, a Sun Sparcstation 10 is slower than an Indy (SGIs entry level machine).


Up: Geomview FAQ Table of Contents
Next: Geomview FAQ data presentation

[HOME] The Geometry Center Home Page

Comments to: webmaster@www.geom.uiuc.edu
Created: Fri Sep 8 11:39:00 1995 --- Last modified: Tue Sep 26 17:31:13 1995