Home
Résumé
Published Works
People

AstroVR was a collaboration between Dave Van Buren at Caltech and Pavel Curtis and his team at Xerox/PARC. AstroVR was an experiment looking at ways to use the internet to foster astronomy research and communication. Some of the technologies behind AstroVR were later used to found Placeware, and subsequently acquired by Microsoft and rolled into the Office Live Meeting product line.

AstroVR consisted of a MOO server running on a dedicated Sun workstation, and custom client software known as Jupiter (which ran only on Solaris and 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) to send commands between the client and server. These commands were used to 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 other related fields, such as 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.

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. 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, and speaking to each other (through AstroVR). 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).

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 Extreme Programming. But back then, it was all very novel and groundbreaking.

Further reading: