AstroVR

by Created: 01 Jun 1994 Updated: 24 May 2014

Introduction

AstroVR was a collaboration between Dr. David Van Buren at Caltech and Pavel Curtis and his team at Xerox/PARC. AstroVR was a pre-Web experiment looking at ways to use the Internet to foster astronomy research and communication.

Pavel and his team split off from Xerox and founded Placeware, which was subsequently acquired by Microsoft and rolled into the Office Live Meeting product line.

Implementation

AstroVR consisted of a MOO server running on a dedicated Sun workstation and custom client software called Jupiter, which ran on Solaris or HPUX. MOO servers are text-based collaborative environments, commonly used at the time for gaming and social experiments. Jupiter used out-of-band messages (text lines with a certain prefix, which were then not displayed to the user) to send commands between the client and server.

These commands could do anything the client allowed, including: create graphical windows, coordinate peer-to-peer multicast audio/video streams, and other higher-level client functions beyond mere text messaging. Many of these ideas are commonly employed today in instant messaging (IM) and Internet Relay Chat (IRC).

MOO provides a persistent, programmable virtual world, including an in-memory object-oriented database and an embedded virtual machine. The Jupiter client provided a programmable GUI toolkit. Together, these allowed for the creation of rich applications, such as whiteboards and collaborative code editors.

I worked with Dr. Van Buren to implement many AstroVR features, such as a shared whiteboard application, a web server, development tools, and the SIM Collaborative Environment (SIM-CE). The idea behind SIM-CE was to enable NASA spacecraft designers to use Matlab collaboratively.

Postscript

Personally, I found AstroVR to be a transformative experience. We met weekly online with the PARC/Xerox team — I never met any of them in person — at a time when videoconferencing was mainly available in research labs and expensive A/V setups. One of many lasting memories came one day while Dave and I were fixing a bug. He was in his office, and I in mine, both wearing headphones and microphones, speaking to each other through AstroVR using the Jupiter client. We collaboratively debugged the system, both working simultaneously on separate parts of the code, and saying things to each other through our microphones like “Ok, push the button now” or “I’m not getting output, are these two functions hooked up yet?”. It’s difficult to convey in mere words how different — and how much more effective — this style of working was compared to traditional programming, with each developer working in relative solitude and syncing up in a weekly meeting.

Now, over ten years later, many of these ideas are old hat. Major databases have embedded virtual machines. Streaming audio/video over the internet is ubiquitous. Client software – including the web browser — has come a long way. There are even collaborative programming paradigms such as Pair Programming. But back then, it was all very novel and groundbreaking.

Publications

Additional Reading