The selection of visualization systems discussed in this paper represents a multitude of design philosophies- Due to time and resource limitations, the developers of these systems have settled on different trade-offs among a host of issues: ease of implementation, generality, domain-specialization, extensibility, exploitation of architecture-specific features, inter-architecture portability, interactivity of the user interface, simplicity of the programmer's interface, code customizability, integration with other programs, and Internet distributability. We shall discuss the choice of emphasis for several software systems whose details the authors know well.
The philosophy of the Brown University mathematical visualization group is to create online ``interactive books'' which incorporate interactive graphics demonstrations into a hypertext system for teaching calculus and differential geometry. The fnord system, developed at and distributed by Brown, is used for the graphics. The commercial dynatext hypertext system is the basis for the interactive books, which have been integrated into the mathematics curriculum at Brown and are spreading to other universities. Besides reading text, the student can click on words to get definitions, follow links to related subjects, and interact with a multitude of 3D visualizations whose parameters can be manipulated to help understand a wide array of concepts. A typical example permits the user to ``fly'' on a curve in 3-space, keeping track of all the differential geometry (e.g., curvature and torsion) continuously as the curve is traversed. The ``interactive book'' approach of situating interactive graphics within a written context is an appealing educational paradigm.
Software packages such as Geomview  and the Surface Evolver  can be widely distributed because of their generality, extensibility, and portability; they were designed to accommodate user-defined tasks not built into the original system. Both reflect considerable effort devoted to making them available to broad community of users; Evolver will run on any system with a C compiler, while Geomview was until recently limited to SGI workstations and systems running NeXTStep. A limited X-windows version that runs on a wider variety of workstations has recently become available.
Geomview has a multilevel interface including mouse-driven 3D interaction, control panels, and an interpreted command language. Its programming interface is built on an object-oriented library, but the command language can be used for high-level run-time communication with external modules written in any language. While this text-based communication approach is flexible, it does not suffice for applications that require massive data transfer or highly interactive custom mouse manipulation.
While the Surface Evolver can produce graphics in a number of formats, it uses Geomview as its preferred graphics output server and concentrates mainly on computation. The Evolver text interface permits flexible specification of user data as well as interactive user control of a large number of parameter settings that can be changed while monitoring the output. The system already supports a wide variety of application-specific energy programs, and custom code may be added by the user as well.
Like the Evolver and Geomview, GRAPE from the University of Bonn features a machine-independent interface for graphics that runs on a wide variety of workstations. While not in the public domain, it is non-commercial and the developers will distribute libraries to scientific sites. GRAPE is an object-oriented programming environment for developing applications, not an application itself.
The University of Massachusetts MESH system has focused on specific research at GANG rather than wide distribution. MESH features a mouse-based direct manipulation philosophy; but instead of hardwiring the mouse functionality or providing a control panel approach where a mouse mode is chosen from a relatively small set of fixed possibilities, MESH emphasizes dynamic mouse binding. Hierarchical popup menus are used to set up a mapping from mouse motion to parameter change on the fly. Mouse motion can then be used to easily vary any of an extremely wide variety of parameters.
The illiView collection of RTICAs (real-time interactive computer animators) for SGI workstations exemplifies another interactive design philosophy. Users of illiView are expected to understand, modify and, on occasion, rewrite from scratch the code for their particular RTICA. A typical RTICA is a single C program that uses SGI's GL-library to bring mathematical phenomena to life. Mouse motions and keys control all conceivable parameters in tandem, requiring substantial dexterity on the part of the illiViewer. To avoid breaking visual concentration, illiView avoids popup menus and control panels. Numerical and the status information can be incorporated into a heads-up display in the single window.
The Indiana University 4D lighting software system  illustrates another contrasting approach. Here a particular piece of high performance hardware (the SGI Reality Engine) is chosen and is exploited to achieve unusual effects for unique applications. To simulate a world of surfaces lit by 4D light, for example, the hardware's unique texture-mapping capabilities are used to compute in real-time a texture-map representing the current reflection map of the 4D light; the intensities are fixed to the 3D geometry because the 3D space is the ``film'' on which 4D images are projected.
The Fourphront system, which relies on the custom-built testbed Pixel-Planes 5 and multiple 3D joysticks, is even further along the hardware-specific continuum than the previous example. The SGI Reality Engine, while an extremely high-end machine, is nevertheless a commercial product. Pixel-Planes 5, in contrast, is the unique result of the research program in high-speed parallel rendering hardware at UNC-Chapel Hill; it has been used by UNC software developers for experiments with exotic input and output devices and related virtual reality applications. Fourphront has sought to extend the envelope of viable user interaction techniques, sidestepping the restrictions of commercially available hardware.