Browser Support

Goals

The goal of this part of the project was to locate existing software tools that could be used for visualizing the data sets produced by other members of the group. The project originally planned to use the Prism Linux cluster, so Linux support was a prerequisite for any possible tools.

Tools

Perfly was chosen as the browser for all of the data sets generated in this project. Perfly is a component of SGI's Performer library. The Performer libraries provide a high-level interface to the OpenGL graphics libraries. Using Performer thus allows an applications developer to easily harness the power of OpenGL in an abstract way. Additionally, Performer is available for Linux. This is critical since the target system for most of this project was the CCV Linux cluster, Prism. If you plan to use Performer under Linux you should be aware of some library issues that you may need to resolve. In particular, the libGLU.so that ships with the latest releases of RedHat may be incompatible. If so, updating to the latest Mesa libraries should fix the problem. Note that this is true even if you are using other vendor-provided OpenGL libraries.

Extensions

The standard Perfly available in the Performer toolkit does not directly support time-depended data. However, for this project animation was required for viewing time-dependent molecular dynamics simulations. Fortunately Perfly has been extended by David Guzman at The University of Texas at Austin to handle these types of data sets. Using this extended Perfly one can animate a series of files (frames) in the following way: The -M0 option enables single-pipe support while the -9 enables time-dependent data. Here 1.0 is the desired frame rate. Perfly also supports a number of other options described with the -h flag. The perfly_ccv executable can be found in the /usr/local/vlt/bin directory on milagros.

Input

Perfly supports a multitude of input formats, however the recommended format is IV. I found the Perfly IV support to be flawless. On the other hand, although Perfly claims to support VRML I was not able to successfully load any VRML files.

Perfly will read a list of files from the command line to load. If the files are not in a native Perfly format (pfb or pfa, Perfly ASCII or binary, respectively) then they are converted and then loaded. If load time is critical then the files can be converted to pfa in advance using the pfconv utility:

It is particularly useful to convert time-dependent data to avoid slow loading.

Lessons Learned

I learned a considerable amount about the OpenGL system and the Performer libraries through the course of this project. My experience with the Perfly source code has taught me that the ability to use the OpenGL pipeline in an abstract way is extremely useful. This programming paradigm allows developers with limited exposure to OpenGL to quickly develop applications that harness its power.

I also gained a new appreciation for file standards during this project. The project had many sub-groups working with different software tools, and each seemed to provide different types of output. One of the most difficult tasks was assimilating a large amount of data into a common format. Originally VRML appeared to be a common format available in all of the software tools, but problems loading VRML into Perfly caused that format to be unusable. In the end IV was chosen as the standard format to be used.