Bill Schroeder of Kitware gave the second presentation on the “Graphics Pipeline”. He compared the approach used by SGI’s Open Inventor with the VTK pipeline. Open Inventor (OI) has been a very influential system, primarily because OpenGL, on which it is based, is so widely used. The OI file format was also the basis for VRML 1.0. It has heavily influenced the design of Java 3D and Microsoft’s 3D graphics systems (DirectX, Fahrenheit, etc.) The key feature of OI is its scene graph. This ordered collection of nodes forms a scene database and serves to combine the object and execution model. Nodes of the graph are transformations, properties, coordinates, shapes, etc. Execution is defined as a depth first, left to right traversal of the graph. It works very well with OpenGL, provides a powerful suite of objects and its database file format is a de facto standard. On the down side, the state-traversal execution model violates object encapsulation, OI is specific to OpenGL and it provides no direct data visualization support. VTK is a fully OO 3D graphics/visualization toolkit for which the source is freely available. It is independent of the renderer, windowing system and platform. It is a C++ implementation with scripting and UI provided by the scripting language. It uses a data-flow approach where data is processed through a series of filters that can be represented by a directed graph. The filters perform various transformations and rendering of the data. The vtk execution model has two steps: update and execute. The update step checks the dependencies of the filter inputs, while the execute phase executes the appropriate filters dependent upon the results of the update. The strengths of vtk are its portability flexible object suite (including visualization support), interpretive foundation (rapid development) and purer OO model. The weaknesses of vtk are that the abstract models can impact performance and in-memory data requirements can be a problem for large data sets.