Copyright (c) 1994,1995 Michael Brundage. All rights reserved.

Virtual Collaborative Environments

Perhaps I should begin by explaining how I came to be involved in all this technology business in the first place, and by way of this explanation you can get a good idea of what a virtual collaborative environment is, and what they can become in the next years.

At the end of my senior year at Caltech, I was in need of a summer job; while exploring the Web with Mosaic, I discovered that in fact there were two late SURFs (Summer Undergraduate Research Fellowships) that had become available. One of these sounded particularly interesting to me, so I emailed the person in charge, and after some correspondence via email (in which I sent my resume and a sample of code I had written to enumerate graceful labellings of certain graphs), he invited me over for an interview, and subsequently hired me.

That's how I began to work for Dave VanBuren, an astrophysicist at the Infrared Processing Analysis Center (IPAC) run by JPL (Jet Propulsion Laboratories, NASA). The project was something he had been working on for a few years in his spare time, but really felt deserved more attention (hence the SURF). The project is called AstroVR, and was developed using the Jupiter software that several researchers (including Pavel Curtis) at Xerox's Palo Alto Research Center (Xerox/PARC) have been developing over the past few years. As its name suggests, AstroVR is an astronomy-based virtual reality, the idea being that it can serve as an online collaborative environment for astronomy and astrophysics researchers. If you want to know more about it specifically, you should check out my related online papers on network places.

AstroVR is something called a MOO. MOOs started out as role-playing games over the internet, and have become a powerful research tool. When you telnet to AstroVR (or any other project like it - the software is easily adapted to other purposes), you log in much like you do to your shell when you sit down to a computer console. Unlike your shell environment, which serves to isolate you from other users who may be using the system, the MOO environment allows you to communicate and interact with the other users. Up until recently, this interaction was severely limited by your typing accuracy and speed - everything was text. A few ambitious programmers (for MOOs that were games, incidentally) programmed in-MOO interfaces to external programs like gopher, but for the most part, MOOs remainded a recreational tool.

Today, a sophisticated MOO like AstroVR features an Xwindows interface (that's where the Jupiter technology comes in) and allows you, together with other users, to run external software programs (on AstroVR, ISSA-PS, Simbad, Mongo, Skyview, etc. are supported) in conjunction with one another. For a MathVR, if there were one, mathematicians could run Mathematica or other math-related programs together, and share each other's results. If examining a four-dimensional knot with various graphics programs, one user could twist the knot, and the other users participating in that session would see what he did. I don't really know about using programs like that - I was primarily concerned with making Skyview work. (I would demo it for you, but alas, we don't have a Sun, and the Jupiter software binaries are only available for Sun workstations right now.)

The whiteboard tool (developed by LBL) is a standard object in AstroVR. (MOOs have a parent-child hierarchy of virtual ``objects,'' which inherit properties and actions from their parent objects). You can copy it, or use an existing one, and then while in the room with the whiteboard, typing

look whiteboard

causes AstroVR (through the Jupiter software) to open up the whiteboard window on your screen, and then you can draw on it or whatever, and anyone else looking at the same whiteboard sees what you do, and can do things themselves, which you will see. The MOO keeps track of what is written on the whiteboard, so that (unlike the whiteboard software program by itself) the whiteboard has ``memory.''

It is not difficult to program in the MOO language (which compiles itself as you write, without the need to shutdown the system for recompiling), and obviously (as in the example of the whiteboard), you can extend the functionality of already existing software. Dave and I developed and wrote the code in AstroVR to support shared external programs, and I applied this in particular to supporting a Skyview interface. It was fairly trivial to develop windows to my own specifications and to write the programs that allow the user to define macro buttons, exclude other users from the session, and even keep track of frames (Skyview is a graphical data analysis program) and command histories. I say ``trivial,'' because I learned everything I know about MOOs and programming them, and completed the project, in less than six forty-hour work weeks.

Having used this software in a research environment, I can tell you that it is incredible to be able to don your headphones and clip a microphone to your shirt collar, and work with your colleagues as though they were there with you - when in fact, they are far, far away. Of course, you can already do something like this with a telephone, but (1) a telephone isn't digital (unless it's cellular, or I'm mistaken), and (2) a telephone isn't free. Of course, the Internet isn't really free either, but more on that later. Oh yeah, and your telephone doesn't allow you to draw pictures on the screen simultaneously with your colleagues, or use software packages in a shared, collaborative environment, either.

Of course, AstroVR isn't the only online collaborative project in the works, and since it remains mostly a spare time project (although Dave recently obtained a 100K grant that will hopefully pay me to continue as a project consultant), commercial interests will surely soon pass us by. Since I don't know of any others, though (and didn't hear of any at the conference), I can't mention them here.

[Back to the FMC index] [On to part 4] [Up to my home page]