A helpful recruiter advised me to practice describing my projects to a lay-person. Here’s a summary:
Goal: To enable two scientists discover new insights about their data by providing natural user interaction.
To help scientists perceive the shapes and features of the data, I use 3D stereo rendering , similar* to what you see in 3D televisions.
Unlike the stereo rendering in 3D televisions, I also provide head-tracking. To understand why this is important, hold up a pencil in front of your eyes, and move your head from side to side. Notice that what you see changes as you move your head. The Virtual Reality community has measured how head motion and stereo affect shape perception and most studies determined that the head motion is more important than stereo in perceiving shapes.
I also think that it would be useful for scientists to be able to pick up the data sets and move them around, rotate them, and maybe even move different data sets in relation to each other. This is why I provide the scientists with styluses for picking and rotating the data sets.
*conceptually similar, though technically different
The scientific visualization application for this project was forked off Kitware’s Paraview code on Feb 28,2011 . The branch did not include the multi-client functionality that the ParaView code currently support.
To work around this issue, I use simple socket/client C code to send visualization parameters back and forth between two ParaView client-servers.
This is ideally what we want the scientists to see:
And this is what happens behind the scenes during independent sessions (sometimes scientists like working on their own before sharing their work):
And this is what happens behind the scenes during collaborative sessions:
Thanks to VRPN, data from the hardware devices in this system can be read via the VRPN client-server libraries. I just had to write some C++ code to convert the measurements into VTK readings. Thanks to Cory Quammen and David Borland for providing me with the starter code. The latest ParaView code from Kitware handles this via the VRPN Plugin.