Virtual worlds are not a thing of the future -- they're here now and in full force. Many people work remotely. In fact, 50% of Sun's employees work away from Sun buildings during the day or telecommute from a home office. Additionally, businesses are looking for new ways to collaborate, communicate, and network, and virtual worlds are an ideal place for this. Virtual worlds are being used for business meetings, collaborative projects, conferences and events, distance education, and speaker training.
Understanding these needs, Sun created Project Wonderland to build dynamic, interactive worlds. Designed to be completely extensible, Wonderland is written entirely in the Java programming language. The worlds you can create using this open-source software need not be only places where people walk around doing a lot of text chatting. Instead, you can create a world where staff members in-world can interact in meetings with members at the workplace. Group members can share information through phone conversations, application usage, and document sharing.
This session, led by Paul Byrne and Jonathan Kaplan of Sun Microsystems, opened with a live demonstration of an example world. We saw how voices could be heard only when the user's avatar gets close to people. As the avatar moves away, the voices become more distant, just like in the real world. By getting close to a stationary microphone in-world, the user's voice is carried throughout that region. The world also had a mashup that brought in real-time data for physical machinery, showing the current state of the machine, the location of problems, and so forth.
Next, we saw how to use a live version of the Mozilla Firefox browser in-world. In addition, users can open other types of applications in-world and give presentations just as they would in the real world.
Sun's virtual-world software stack includes the following:
- World: Sun's MPK20, a world designed to support Sun's distributed workforce.
- Client: Project Wonderland, an open-source Java 3D-based graphics engine that manages world, animation, and avatars. In addition, it supports application sharing, as well as extensible and customizable worlds.
- Server: Project Darkstar, an open-source communications and application framework targeted at games, is highly scalable, handles persistence, and allows an extensible set of core services.
Project Wonderland is a toolkit for creating collaborative 3-D virtual worlds. Within those worlds, users can communicate with high-fidelity immersive audio, and they can share live applications such as web browsers, OpenOffice documents, and games.
Project Wonderland relies on the following open-source projects for key technologies:
- Project Darkstar provides the scalable, persistent server software infrastructure.
- jVoiceBridge provides real-time immersive stereo audio with distance attenuation.
- Java 3D provides the scene graph on which the 3-D world and scene manager is built.
- Project Looking Glass provides the 3-D scene manager.
Creating worlds generally begins with the artwork, which is done with your favorite imaging and 3-D modeling tools. Next, you dig into Wonderland World Builder. A world is divided into discrete volumes called cells. Cells can contain static 3-D content or in-world application code. Additionally, cells are nested into a tree structure. For instance, for a world you might have a WorldRootCell that represents the whole world, a room cell that represents a room, then cells within that room to represent a cell each for an avatar, a phone, and an application.
Cells communicate by passing messages to each other over server-to-client and peer-to-peer "channels."

Each cell has three main components:
- CellGLO: server
- Cell: client
- Visual representation: 3-D model or scene graph code
The next demo showed how to use a conference phone in-world to dial a phone in the real world. Users who are not online can also call people in-world. To create this phone, View code renders the telephone and has an event listener so that the phone can do something. The Client code processes the messages that the user triggers, and Server code receives a call that is sent from the client. Then the desired action takes place.
The demo showed a virtual conference room with a presentation screen and the conference phone. Clicking on the phone causes a pop-up dialog box to appear, requesting the phone number to be dialed. It calls a physical phone. Colored orbs represent people who are on the conference call so that people in the virtual world know who is talking on the phone. You can also pass the orb off to someone else in-world. The orb disappears when the person hangs up the phone.
Universities are already making use of Project Wonderland to connect remote and in-classroom students and teachers. Of course, there will be many other business uses for dynamic worlds in the future.
Upcoming releases will also include in-world recorders to capture meetings and discussions, a video player, and a PDF viewer. In addition, Java 3D is going to be replaced withjMonkeyEngine (jME). jME is a scenegraph-based architecture. The scenegraph allows for organization of the game data in a tree structure, where a parent node can contain any number of children nodes, but a child node contains a single parent.
Get involved with Project Wonderland by downloading and running the software, posting to the forum, creating new artwork for worlds, building new cell types, and contributing tools, utilities, documentation, and core code.
For More Information
Wonderland Community:
100% Java, 100% open source
http://wonderland.dev.java.net
Sun Immersion SIG
http://sun-isig.org/
|