In this paper, we discuss the goals of the Fifth Dimension Toolkit and describe its design. We also discuss the toolkit's design philosophy and its motivation, and briefly mention some of the implementation issues for the Silicon Graphics Iris 4D workstations.
2. GOALS OF THE FIFTH DIMENSION TOOLKIT
With the advent of workstations containing three-dimensional graphics engines, it is now easier to display relatively complex three-dimensional images in real-time. However, the accompanying software libraries usually operate at a very low level of drawing polygons. Although there are some commercial software systems available, they are often do not meet the needs of animators and scientific researchers who usually require highly specialized applications. As a result, a large part of their time is spent programming the basic user interfaces and three-dimensional data structures rather than their actual work. The Fifth Dimension Project involves several researchers working on related areas of computer animation and scientific visualization. To facilitate integration between various researchers' software and to allow the reuse of code, a core library of general-purpose, extensible software was required.
2.1 Previous Approaches
Many computer graphics research laboratories have an in-house ?system? which includes such features as two and three dimensional modelers, renderers, image displayers and standard image file and model description formats. Some systems also incorporate various modeling and animation languages which can be compiled or interpreted by the system. Examples of such systems are described by Magnenat-Thalmann and Thalmann (1983), Chmilar and Wywill (1989), Hanrahan and Sturman (1985), Fiume et al. (1987) and Ostby (1989).
Although there are many advantages to using a high-level language, such as the ability to create procedural models, basing a system on a specialized language can make it more difficult to develop interactive tools. Also, it adds another level of translation to the system, requiring interpreters and parsers which have to be maintained and hindering extensiblity and reuse of code.
Another design approach is used by ConMan (Haeberli 1987, 1988) in which a number of small twodimensional and three-dimensional application programs are connected together using inter-process communication. The various applications are ?wired? together with the Connection Manager program in different ways to create different tools.
One of the difficulties with such an approach is the necessity of devising a proper inter-processcommunication protocol so that all concepts and data structures can be communicated between the applications. A second problem is that, for shear reasons of efficiency, this method tends to force a coarse-grained modularity and the resulting large applications will still need to be built out of smaller software components.
The Pixar's animation system (Reeves et al., 1990) uses both these approaches. This system, which was used to create the animation Tin Toy, allows models to be created procedurally using a C-like interpreted language called ML. Interactive tool applications can be used to build models using the language. These tools communicate using a common database with shared memory and an interprocess communication scheme for passing messages between multiple tool processes.
2.2 Toolkit Approach
Another approach to building large graphics systems is the object-oriented toolkit. This is the basis of most current user-interface software packages such as Macintosh's MacApp, the X11 Window?s Xt ?widgets?, Stanford University?s InterViews, or NeXT?s NextStep. These toolkits allow applications to create twodimensional interactive "objects" on the screen with very complex behavior. Collections of these objects can be built up to implement user interfaces.