Scientific visualization is a technique for representing raw numerical data in visual images that model the interactions of objects and forces in the real system from which the data originally came. One of the main purposes of scientific visualization is to aid scientists in understanding vast amounts of data generated by computers and other equipment. These images can be manipulated on screen as if they were actual physical systems.
An image can show on the screen, in a few minutes, the effect of a new or changed variable on a system. To analyse the same effect from several thousand numbers covering reams of computer paper takes considerably longer, and lacks the completeness and immediacy of the visual model. Scientific visualization, however, also requires the use of very specialized software and in some cases the collaboration of specialist computer engineers. Many large workstation vendors such as Silicon Graphics Inc, Stardent Computer Inc and IBM are now making available, genetic interactive visualization environments that give users access to graphics, visualization and imaging modules without the associated programming effort.
This paper takes a look at the Silicon Graphics solution, an application development environment for end-users and software developers called IRIS Explorer.
Visual processing gives us the ability to produce realistic, three-dimensional, colour images and interact with them in real-time; just as we might manipulate an object held in our hand. We can absorb information and explore ideas in ways previously thought impossible. Visual processing has already transformed the way we work and interact with information. Future developments promise to make information analysis and synthesis even more intuitive and immediate.
Once a visual representation is generated; a bone fragment for example. An anthropologist working in the field can photograph the bone, scan the image, reconstruct a virtual model and begin to test. Stardent Computer Inc announced it would form a new corporation, AVS Inc. The new company, comprised of 25 former Stardent employees will operate as a separate entity. Hypotheses, extrapolate an effect over a period of time, apply new conditions or variables, or invent a new system all together. Today, scientific visualization is heavily used in astrophysics, meteorology, mathematics, molecular modelling, particle research, and medical imaging amongst many others. Transforming data from the initial raw form to a display point, however, requires significant processing. Images are processed by the use of a number of operations including, correction and reduction of noise and distortion, polynomial wrapping, contrast enhancement by light-source shading, use of colour to show contours or group data in a given range.
Scientists in many of the fields mentioned above often do not wish to take on the difficult task of coding these operations. Also, many scientists use commercial software packages and wish to extend the systems with their own algorithms and techniques. Up to now, specialist scientists have relied on the services of computing professionals, and/or the use of purpose built commercial packages to facilitate the generation of computer models. There is a growing need therefore for systems that provide rich visualization development environments designed to be used by both programmers and non-programmers alike.
Systems such as Stardent Computer Inc’s AVS3 (Application Visualiser System), IBM’s newly announced Visualization Data Explorer/6000 and Silicon Graphics Inc’s IRIS Explorer are here to fill that gap. Both the Stardent and the Silicon Graphics systems are quickly becoming industry standard environments. IRIS Explorer. The IRIS Explorer which is bundled with the: latest release of the Silicon Graphics IRIX operating system is a scientific visualization package that lets you read, analyse, manipulate, and render complex data sets without the need for programming. Each step of the data input and output, analysis, and rendering is performed by a module that you place into a "network". The network is configurable on the fly using a simple point and click interface. A connect-the-modules approach invites users to integrate data and applications by visually connecting software modules into flow-chart maps or networks.
The strength of the system, besides its ease of use, X-window and Motif compliance, lies in its rich set of supplied modules. An Explorer module performs a specific action on the data that passes through it. Each module accepts data, acts on it in some way, and outputs the result to the next module downstream. Explorer modules are in essence made up of two parts. The first is the visible portion or control panel that contains the input/output ports as well as parameters, the values of which can be set and altered by widgets. The internal portion of a module contains the actual computational algorithm (C, C++, Fortran) and the module wrapper or module interface. Modules may be turned off, or disabled; and can be "fired" (executed) on a machine other than the one where the network is running.
A large number of modules provide a wide variety of functions including file I/O, data analysis and off course visualization. Modules such as "BlendImg" which computes a blended image, "Blurlmg" to blur an image, "Contour", "Forward FFTthng", "Fourier Cross Corrlmg", "Renderer" and many (over 150) others are held in what Explorer calls the Module Librarian. The non-programmer can develop a specific visualization environment in order to analyse, and render his or her data by wiring together these pre-defined modules. North Carolina Supercomputing Center officially become the international AVS Centre. This centre will gather, standardize, catalogue and maintain a collection of AVS modules currently available, along with modules created by users for the public domain. A programmer can modify, or add to the library of modules by writing C, C++, or Fortran code using Explorer’s Module Builder.
The Explorer network is created by the Explorer Map Editor. The map editor is the work area in which modules are assembled and organized into an operational network. The whole thing is really very much like designing an application flow chart graphically, but with the one very large difference in that you can place real data at one end, and real results will appear at the other. The map editor allows the user to create, open, edit, save, and delete networks, create, disable, enable and destroy modules, run the network, and incorporate the network into an application. When one draws a flow chart of an application, however, one would normally depict the flow of control rather than the flow of data. To say that developing applications in Explorer is as easy as drawing flow charts, therefore, needs further explanation. When drawing flow charts, we sometimes include process blocks or modules that have the task of converting data from one module to the next. In general however, flow charts do not describe data conversion, and an assumption is made that data conversion will be handled in the physical model viz the development phase.
Explorer networks on the other hand are alive, and there is no such thing as a distinct development phase. IRIS Explorer is a strongly typed system. Two modules can only be connected if they share the same data types. The IRIS Explorer Module Builder helps the user define the external attributes of a module such as which data types the module will accept on its input port and the data produced on its output port. The Module Builder can also generate the code needed to interface from the outermost layer of the module (the visible portion), to the computational function, where the module’s algorithm resides. The need for data typing arises in several stages of development and execution. For example, when trying to wire two modules together, the map editor ensures that the two ports have compatible data types. Also, when a data object crosses a machine boundary, some component of the system needs to know the details of its internal structure so that the correct data representation conversion can be performed. IRIS Explorer has five major data types which are aggregates of other more primitive types such as Ints, strings, floats etc. The five main types are:-
- Geometry, and
This data abstraction allows any one of the above data types to represent an entire class of data, on one hand, and a specific instantiation, on the other. For example, in its most general form, the lattice (essentially a multi-dimensional array) data type can represent any multidimensional array, whether byte structured, floating point, integer, short, or double precision. A specific instance, however, can represent only a two-dimensional lattice in 16-bit byte format.
Two major Explorer utilities are intimately tied to the above data types. These are the Explorer Module Builder, and Data Scribe, the data conversion utility. The Explorer Module Builder is a graphical user interface tool that lets the user modify existing modules, and build new ones. The module builder automates the module building process so that the typical module requires no programming beyond that needed to write the computational function. The supplied port and parameter information is used by the module builder to automatically generate code, in the form of the Module Data Wrapper, to provide an interface between the outermost layer of the module, to the computational function.
The data wrapper decomposes Explorer’s data structures into a form usable by the user written function. For example, it can be arranged such that there is a relationship between the calling sequence of the computational functions, the function arguments and the port data types. IRIS Explorer also comes complete with a data converter (Data Scribe) which allows explorer to read a multitude of new data-set file formats. Data Scribe can be used to convert data from an external source, such as an application or disk file, into explorer data types. It can also be used to convert explorer data types into data that can be used by other applications. Internal data conversion also helps make this system suitable in a heterogeneous environment. Any number of modules can be setup such that they execute on remote hosts, including the Cray.
Data between these machines is transferred seamlessly. The distributed execution architecture allows a scientist working in computational fluid dynamics for example, run his mesh generation and post processing on an IRIS workstation while running his solver on a Cray. As a very simple example of how you might use Explorer, let’s say you have an image file created by saving a part of the screen. You may wish to enhance the contrast of the image, before displaying it again. A traditional method may be to write an application that reads the image file, applies a histogram equalization technique which rescales the data values of the image such that the cumulative histogram of the output image is approximately linear, before writing more code to display the image in the correct aspect and size. As simple as this application may seem, a large amount of knowledge is assumed. This includes the format of the image file, contrast enhancing methods, the availability of underlying graphics libraries, as well as a working knowledge of some programming language. To perform this using Explorer takes just a few minutes. The steps are:
Retrieve the Read Image module, the Histogram Equalization module, and the Display Image module from the Explorer library. Place these into the Explorer Map Editor. Wire the output of the Read module into the input of the Histogram Equalization Module. Wire the output of the Histogram Equalization module into the input of the Display Image module.
Now you have created an Explorer network. To run this network, all that is left to do is use the widget based input parameter in the Read Image module to nominate the name of the image file you wish to read. The Display Image module also provides extra functionality. For example, it allows the user to pan around the image by using the mouse, as well as providing a zoom dial. This is a very simple Explorer network. There is no limit to the number and ways modules can be wired together.
IRIS Explorer is therefore a complete application creation system and user environment that provides visualization and analysis features for computational scientists and engineers. It is useful for those whose needs are not met by commercial software packages, and or, those who wish to extend existing systems with their own functions. IRIS Explorer runs across the entire Silicon Graphics product range. This product gives us a whole new paradigm for using machines in a heterogeneous environment. Modules within a map can be executed on connected machines. Modules and maps are available to cover functions as diverse as computational fluid dynamics, Earth Sciences, Molecular Modelling, and Medical imaging.
1. Newman & Sproull Principles of Interactive Computer Graphics McGraw-Hill, Second Edition. 1979