Open Wonderland

Open Wonderland (originally Project Wonderland) is an open-source toolkit written in Java for creating collaborative 3D virtual worlds. Within those worlds, users can communicate with high-fidelity, immersive audio, share live desktop applications and documents in addition to conducting real business. Open Wonderland is completely extensible; developers and graphic artists can extend its functionality to create entirely new worlds, including but not limited to adding new features to existing worlds.

The vision for Open Wonderland is to provide an environment that is robust enough in terms of security, scalability, reliability, and functionality that organizations can rely on it as a place to conduct real business. Organizations should be able to use Open Wonderland to create a virtual presence to better communicate with customers, partners, and employees. Individuals should be able to do their real work within a virtual world, eliminating the need for a separate collaboration tool when they wish to work together with others. Individuals should also be able to tailor portions of the world to adapt to their work needs and to express their personal style. The types of collaborations that can happen within the space include audio communication, live desktop applications of all kinds, and eventually collaborative creation of world content (both graphical and procedural).

Project Wonderland had been funded by Sun Microsystems since its early development. On January 27, 2010, Sun Microsystems was acquired by Oracle who decided to cease funding. Project Wonderland continued as an independent community-supported open-source project named "Open Wonderland".

Technical overview
The Open Wonderland toolkit's client/server architecture supports the creation of a wide range of interactive, dynamic virtual worlds. This is made possible by a flexible module system. This scheme allows developers to extend not only the Wonderland client and server, but also to package up artwork and complete worlds as easy-to-install modules. Modules can also be written to connect Wonderland with an unlimited number of external services.

Security and federation are two other key features provided by the Wonderland toolkit. Open Wonderland worlds can be secured behind a corporate firewall if desired, and they can integrate with an enterprise's existing authentication and identity management infrastructure. By default, a module is provided to connect to LDAP authentication systems. For fine-grained security, any object within an Open Wonderland world can be associated with an access control list to govern which users can see, interact with, or edit the object. These access controls are hierarchical, so access can be applied to a single object in a space or to all objects within a room, building or other enclosing 3D structure. Security is a server-side function. This means that objects are never sent to a client that does not have permission to view the object, making it more difficult to defeat the security system.

Federation enables users of Open Wonderland worlds to navigate from one world to another through a number of different user interface mechanisms. These worlds can be dramatically different from one another in terms of content, code, and the organization that runs the server. For example, a user might start in a corporation's virtual lecture hall and walk through a portal to a university's submarine simulation. The lecture hall might have modules installed for virtual microphones, slide show presentations, and business intelligence analysis, while the submarine simulation may include a fluid dynamics module, a working submarine console, and integration with telemetry data from a real submarine. While much of the code to run the Open Wonderland worlds is shared, the specialized 2D and 3D programs that run in these worlds are not shared. Wonderland's federation scheme, which takes full advantage of the Java Programming Language's ability to dynamically load code, means that when a user moves from one world to another, the necessary missing code is downloaded on an as-needed basis. Additionally, users' avatar information is stored on their local system so that their avatar goes with them from one world to the next.

Immersive audio and telephony
Open Wonderland features tight integration of immersive, high-fidelity stereo audio. Using the open source voice bridge, 'jVoiceBridge', not only do you hear recorded audio in stereo at CD-quality, but you also can hear other live people at this quality. jVoiceBridge adapts to allow remote users with lower bandwidth connections to use lower audio fidelities, including telephone-quality.

If you are having a conversation, the high-fidelity audio allows you to hear people's voices coming from the appropriate directions, as you would in the real world. Since voices or other sounds become softer as you move away from them, Open Wonderland easily supports multiple, simultaneous conversations within the same virtual space.

A wide range of audio-related modules can be created using jVoiceBridge. For example, an in-world virtual telephone allows users without access to a computer to dial in to meeting in an Open Wonderland world. Virtual microphones, audio recorders, and a cone-of-silence for private voice chat are other examples of audio-related modules. In addition, recorded audio can be associated with objects in the world, including simulated characters. This allows virtual world developers to create a rich audio experience for visitors.

Shared applications
Wonderland supports three types of shared applications. The first is direct support for 2D X applications (just about any application that will run natively on a Linux system). With this type of shared application, one user can take control and edit a document in the world while others in proximity can watch. It is easy to pass control from one user to another. These applications, which were designed for single users, are handy for troubleshooting together in a terminal window, or working together on standard desktop applications like Open Office, or collaborative web browsing.

The second type of shared applications are multi-user 2D Java applications. Wonderland provides a framework for creating these applications to help developers build true collaboration-aware tools - ones designed from the outset with multiple users in mind. One example of a collaboration-aware application is the slide show viewer in which every person gets a copy of the slides. Users can then either synchronize with the presenter or navigate through the slides independently. Another example is the shared whiteboard. This allows multiple users to draw on the board at the same time. These applications not only have the advantage of being multi-user, but they also perform better because the code for each application runs on the client computer and only minimal amounts of data are shared through the server to synchronize the state.

With most types of 2D applications, developers can enable drag-and-drop of content from the user's desktop into the Open Wonderland window. For example, users can drop any .png or .jpg image into Wonderland and see it displayed with an image viewer application. Users can also drag-and-drop web pages into the world and continue browsing in a multi-user context. Any .svg documents dropped into the world will automatically instantiate an in-world whiteboard for collaborative editing of the document. After editing, the whiteboard documents can be dragged back out onto the desktop for e-mailing to others or for editing with a different application.

The last type of shared applications are multi-user 3D Java applications. Packaged as modules, these applications can contain any combination of artwork and code. An example is the audio recorder mentioned above. This small application includes code for capturing, storing, and playing back audio. It also includes artwork for the recorder, complete with reels that spin when the recorder is on, and 3D buttons for Record, Play, and Stop. Applications can be as small as the audio recorder, as large as a whole world, or somewhere in between. For example, the 'Glasshouse world' from Green Phosphor includes dynamically generated, interactive 3D graphs created from data stored in external corporate data warehouses, databases, or spreadsheets. While collaborating, users can highlight rows, columns or cells, and they can drill down into the data by generating sub-graphs.

The ability to mix and match these three types of applications within a Wonderland world enables developers to create rich, interactive collaborative experiences for distributed groups of users.