current date

Diver and Alice: An Immersive, Virtual Environment, 3D Graphics System

Back in the 1990's, the University of Virginia, under Randy Pausch, acquired two 100,000.00 SGIs to create virtual environments. We used magnetic polhemus trackers to know where your head and hands were and a very heavy head mounted display. The lenses had to sit so far out front that a sandbag was mounted on the back to counter-balance the gear.
I wrote DIVER (DIstributed Virtual Environment Rendering system) in C, based on early versions of openGL. Since we used two sgis, one for each eye, It used udp sockets to communicate updates the the scene graph and syncs for rendering.
DIVER departed from the Inventor scene graph with its own model, allowing any object to dynamically reparent under any other object without suddenly jumping in space due to the newly inherited parent matrices. DIVER supported the idea of multiple cameras, of a rendering loop that was independent of a scene update loop, and the development of a simpler API with calls like object.moveTo() rather than matrix updates.
We then put different, interpretive programming languages on top of DIVER to allow rapid prototyping without needing to know C or to recompile and restart the system. Python was the prefered language at the time and developers could work at remote stations and send the rendering commands over to DIVER.
In addition to developing new models for virtual environments and creating a virtual environment based perception lab, we also developed Alice to help people learn how to program in 3D.
Alice has come a long way since then and has undergone many re-writes and programming language changes, but even twenty years later, with the occulus rift, we are seeing folks re-invent and relearn some of the benefits and problems that an immersive headset creates.


UVa early VR video (various time-critical rendering techniques and separation of simulation from human movement)
Alice: Worlds In Minature (Richard Stoakley genius) updated with Portal sounds
UVa early VR video 01
UVa early VR video 02
UVa early VR Pool Table Level-of-Detail control


Matthew Conway, Randy Pausch, Rich Gossweiler, Tommy Burnette, Conference companion on Human factors in computing systems. pp 295-296, ACM, 1994.
Rich Gossweiler, ACM, 1994.
Randy Pausch, Matthew Conway, Robert DeLine, Rich Gossweiler, and Steve Miale, INTERACT'93 and CHI'93 Conference Companion on Human Factors in Computing Systems, pp. 13-14. ACM, 1993.
Matthew Conway, Steve Audia, Tommy Burnette, Dennis Cosgrove, and Kevin Christiansen, Rob Deline, Jim Durbin, Rich Gossweiler, Shuichi Koga, Chris Long, Beth Mallory, Steve Miale, Kristen Monkaitis, James Patten, Jeff Pierce, Joe Shochet, David Staack, Brian Stearns, Richard Stoakley, Chris Sturgill, John Viega, Jeff White, George Williams, Proceedings of the SIGCHI conference on Human factors in computing systems, pp. 486-493. ACM, 2000.
Rich Gossweiler, Robert J. Laferriere, Michael L. Keller, and Randy Pausch. "An introductory tutorial for developing multiuser virtual environments." Presence 3, no. 4 (1994): 255-264.
Rich Gossweiler, Chris Long, Shuichi Koga, and Randy Pausch. In Virtual Reality, 1993. Proceedings., IEEE 1993 Symposium on Research Frontiers in Virtual Reality, pp. 10-15. IEEE, 1993.
Jim Durbin, Rich Gossweiler, and Randy Pausch. "Amortizing 3D graphics optimization across multiple frames." In Proceedings of the 8th annual ACM symposium on User interface and software technology, pp. 13-19. ACM, 1995.
Victoria Interrante, Penny Rheingans, James Ferwerda, Rich Gossweiler, and Toms Filsinger, SIGGRAPH 97 Course Notes 33.
Mukul Bhalla, Rich Gossweiler, Jonathan Midgett, Psychonomic Bulletin & Review, 2, 1995, 409-428.
home about me projects papers patents adventures wikipedia Google+