cospace is an experiment in coupling the web with dynamically generated and interconnected 3D shared environments. 3D virtual spaces are created whenever a user visits a web site; the space will be populated by other Cospace users currently visiting the site. Within these spaces, users may communicate with each other and interact with objects. The spaces are automatically interconnected by portals, tunnels through which users travel to other sites. The effect is to augment the web with a large, seamless virtual environment which provides the richness of 3D along with opportunities for users to collaborate and interact.

The motivation for this coupling is to use web sites as a catalyst for the creation of communities of people with shared interests, while offering them means to communicate and providing users and site owners with ways to elaborate the environments with 3D content. In contrast with existing 3D multiuser virtual environments which are effectively islands, Cospace weaves these spaces into a seamless network to preserve the continuity of the 3D world.

This said, we're no longer working on Cospace (though some of the ideas are being carried forward in a platform called blankspace), but we'll keep our prototype server running indefinitely, so you're welcome to give it a try. (aside from being rather dusty from disuse, it's likely to be pretty lonely, so bring a friend along). Requirements and instructions for downloading and running the client may be found below.

cospace technology precis
the following list summarizes the pertinent features of the cospace technology:

  • Cospace sits on top of the web, so to speak - Cospace rooms can be created for any web site without explicit participation of the site (though Cospace-aware sites may choose to customize the appearance of their space).
  • the dynamic nature of the Cospace architecture allows the construction of arbitrarily large networks of seamlessly interconnected spaces with bounded client resources (memory and network bandwidth).
  • the dynamic architecture provides mechanism for scaling by organically growing and shrinking spaces as the user population varies. As a space becomes overcrowded, Cospace can automatically spawn overflow spaces to distribute users. It can also accommodate the inverse crowd control problem - unpopulated sites can be automatically connected by portals to hub spaces that concentrate activity to the busiest sites.
  • the Cospace world is extensible; it is built around a programmable object database, with which users may define and extend new objects, as well as writing code to specialize object behaviors. Extensions are compiled and integrated at runtime, allowing the server to run continuously.
  • the Cospace world is persistent - the state of objects, rooms, and portals is maintained across sessions by the object database.
  • Cospace is based on VRML, so it's straightforward for users to add objects and extend the visual appearance of the environment. While the Cospace technology doesn't depend on any particular 3D standard, it is important that it support some standard for which authoring tools and existing content are readily available. A room integration API allows custom spaces to be seamlessly integrated with the intrinsic dynamic architecture. The use of VRML also facilitates the incorporation of relevant VRML-based standards such as H-ANIM for avatar articulation.

    other stuff
    There's an article on Cospace that appeared in SIGART Intelligence magazine; somewhat dated but a reasonable overview (note: it's a rather bloated pdf file; here is a smaller doc file without figures).

    There's also a brief article in Digital Producer magazine.

    A few more client screenshots here.



    getting and running cospace
    After you've installed and gotten started with cospace per the notes below, refer to the user guide for additional instructions.
    Requirements:
    The Blaxxun Contact 4.3 VRML browser should be installed and registered as an IE control. it can be downloaded from www.blaxxun.com/products/contact

    You'll need a recent version of the Microsoft java virtual machine. this one is a little tricky in that how do you know if you have a `recent' version? the easiest approach, if you have Internet Explorer, is to go to windowsupdate.microsoft.com, product updates page, and under the "select software" choices, check "microsoft virtual machine" in the critical updates section. this will download/install a new version of the microsoft VM if necessary. otherwise go to www.microsoft.com/java/ to download the JVM manually.


    Download:
    the client distribution bundle is available from cospace.research.att.com/download/csbundle.exe
    Install:
    execute csbundle.exe to unbundle the cospace client distribution; this will create a cospace directory containing a small number of files, including the executable client program (cs.exe)
    Instructions:
    to run cospace, double click on "cs.exe". a dialog prompting for name/password will appear. pressing "go" with a valid name/pass will start the session. pressing "save" will store the name/password in the cospace.dat file in the same directory. password authentication is turned off in this version - any non-null password will work

    at startup, the client checks for code updates and will notify if an update is available; selecting yes will cause the update to be done automatically, selecting no will ignore the update. (good idea to go ahead and accept the update the first time you run cospace). the update check introduces a small delay in client startup, see the user guide for how to turn it off.

    see the user guide for more instructions on using the cospace client


    Firewalls/proxies: The cospace client needs to be able to make outbound TCP connections; if you're behind a firewall it can be configured to use a SOCKS proxy using the internet options utility in the windows control panel.
    Known problems and bugs
    an (incomplete) list of bothersome stuff that probably won't get fixed:
  • the DDE communication between the cospace client and the web browser can be flaky, so synchronization of client and browser sometimes fails.

  • using the vrml browser viewpoint mechanism will generally confuse both the cospace client and you, so avoid it. if you find yourself lost in space, type "/home" in the text interface to get back to a reasonable place.

  • portals between rooms can occasionally fail to punch holes in the wall polygons - if you get stuck for no apparent reason at the entrance to another room, this is probably what happened (won't see the wall in this case because the wall polygon backfaces aren't rendered). to fix this, navigate back to the room you came from and type "/reportal" in the text interface.

  • when the cospace client is synchronized with the web browser, ad banners and page redirects can confuse the cospace client. workaround is to select "unlink" from the button panel

  • room architecture is dreadfully monotonous. the functionality for making the spaces more variable exists, but has not been made available in this version...sorry
    comments/questions/problems: tk@research.att.com