Sample Projects

Visualization of minimum-energy conformations of maltose

James Matthews, of John Brady's group in Food Science at Cornell, is studying the minimum energy configurations of maltose. His simple request was, on one side, to show a map of the minimum energy as a function of maltose's dihedral angle and, on the other side, to load the configuration corresponding to the chosen minimum energy.

We wrote a small application in python, using wxPython for windowing, VTK for ball-and-stick figures, and Matplotlib for contour plots, to make the exploration of maltose conformations interactive. While the user drags the mouse, the maltose conformation changes gradually.

OpenDX in the CAVE

We have a set of researchers who use OpenDX for rapid development of visualization applications. Many would like to display this work in virtual reality environments. The best current solution was to use Chromium to send OpenDX graphics to the CAVE, but it doesn't work very well.

We wrote, instead, an OpenDX module to send OpenDX output to CAVE nodes where it is displayed with an SGI OpenGL Performer scenegraph. Less data is sent across the wire, and the application in the CAVE is customizable. The code is in C++ and/or managed C++, depending on how it is compiled. It connects with OpenDX using either .NET Remoting or straight sockets, so that it can cross-compile on Windows and Linux.

Optimization of sparse matrix solver on Itanium

Gerd Heber and I went to Intel for the first user visit to tune code on Itanium. We did a study and presented a paper on rewriting sparse matrix solver code in such a way that the Intel compilers could schedule it efficiently for the Itanium processor. We worked with Lynd Stringer, Karen Mazurkiewicz, and Max Alt.

Command-line dll dependency checker

I wrote a program to examine Windows executables to see whether the required dlls were in the path before the executable was run. This was necessary because executables without required dlls would silently fail when running in batch on the cluster.

Java applets for Michael Fowler

Dr. Fowler was teaching introductory physics for majors at the University of Virginia. He wanted to demonstrate basic concepts with Java applets. We wrote applets for brownian motion, a one-atom gas, atomic scattering, and Newton's cannon. They were customizable for multiple languages, with smooth scrolling and sound.

Cluster login for Windows

In order to use a cluster of Windows machines to run multiple simultaneous displays, you have to login to each machine at the console. We wrote a Windows system component to permit a single person to login to multiple machines simultaneously. We had to stop the project to do other work, but it was on its way to production.

VTK in the CAVE

Having used VTK for a long time, I thought its rendering abstractions should permit it to work in the CAVE without the help of OpenGL performer or explicit help from a toolkit, like VR Juggler. I wrote a new rendering layer (vtkRenderWindow and friends) in order to convince it to run typical VTK scripts in the CAVE. It did work, but it demonstrated that VTK's powerful rendering abstractions are hampered by its insistence on a two-dimensional event model. It is abstraction of the event model that would be key to making a toolkit that creates widgets useful in two or three dimensions.