ToolSpace: Web Based 3D Collaboration T. Goddard and V.S. Sunderam VRML 99 Conference Proceedings pages 161-165 ToolSpace is a collaborative virtual environment (CVE) written in Java and VRML. The goal of project is to create a common workspace where team members can interact “with shared objects and applications in real time.” ToolSpace is also an interface application that provides a series of “tools” for interaction with objects otherwise not available in standard VRML. The software itself consists of three components: a client side visualization that runs on a standard web browser with VRML plug-in, a server with any operating system that has a Java Virtual Machine, and a set of Java classes for building all the application programs. The goals of this project is to create a computing environment that is: “multi-user collaborative, distributed, component and object based, platform independent, scalable with respect to computer hardware and input/output devices, and three dimensional.” Goddard and Sunderam see a great potential in CVE. Just recently though have 3D environments become widely available to consumers and users. Therefore the transition from 2D to 3D interaction and collaboration can now easily be made. There are also a wide range of situations and applications that can take advantage of CVE. The authors site chemists working with molecular models and architects working with buildings among many of the range of potential uses for CVE. On a scalability level, a third dimension provides a much greater opportunity for exploration and richness of information. One of the first issues addressed by the paper is the human/computer interface of 3D spaces. ToolSpace keeps the traditional input devices of keyboard and mouse but provides a “six degrees of freedom” (6DOF) metaphor to make it more intuitive. While it is not clear what this is or how it works, the action tool is referred to as a “virtual pointer.” Pointers can perform operations that are standard in VRML interfaces as well as constrained movements such as moving along a line or within a plane. Specialized ToolSpace can perform additional operations such as precisely placing objects and non-spatial functions like copying and pasting objects. Another key element included in ToolSpace is the use of avatars. This is an obvious inclusion for the purposes of collaboration. Avatars give team members a passive knowledge of one-another. In ToolSpace, users can change the property of their avatar to alert their team members of a question they may have or for some other reason. Users can also share perspectives of their avatars so that all the team members may see something as one does (What You See Is What I See, or WYSIWIS). Technology: ToolSpace applications originate form a central server which runs Java applets to the clients. The client using the space is updated by the server whenever a change occurs in the environment, such as an object being moved or created. With a centralized system the server can maintain “floor control” which is important for conflicting movements of objects by different users. The paper also states that because the server is lightweight and written entirely in Java, it can therefore be able to produce web pages on the fly with the necessary APPLET tag to embed served applets. Other uses would include collision detection and scaling for increasing numbers of observe-only participants. The paper states the ToolSpace project is committed to using VRML as its 3D interface because of its object format. Java is used to drive the VRML world via the EAI interface. The authors mention that they tried using the script node in VRML but found it unreliable and awkward. A challenge presented by this project is the technique of interaction with multiple users present. At this writing, they had developed a couple of alignment tools for constrained movements. The biggest hurdle was that ToolSpace could not use the client’s sensor offsets because with multiple clients, every offset is different. Therefore, ToolSpace has to calculate these numbers itself. This can be further complicated by in-lining files, who’s sensors overide the ToolSpace ones. The authors were working to iron out these details. The development environment for ToolSpace relies on the central server and a set use of specific semantics to pull off the feat. It is a process that seems interesting but is a bit above my level of understanding. “ToolSpace fosters a particular type of software component called a “tool” or meta-interface. By adding a layer of indirection between user and applications it becomes possible for more tasks to share their user-interfaces. For instance, the act of setting the spatial position of an object is common to a great many applications, but each one provides a different interface. By providing a layer for such interfaces, the application developers task is simplified and the user’s choice is increased.” Personal Remarks: As the authors admitted at the beginning of the paper, the goals of the ToolSpace project are wide reaching. Consequently the depth of progress in any one area is shallow. There seems to be many interesting features to the project, but it is hard to separate what is still an idea from has actually been implemented. It is also unclear where the progress that has been made is headed. There are nuggets of useful concepts to take away from this project but no real product or example to look at.