Login | Register
My pages Projects Communities java.net

lg3d-wonderland
Project home

If you were registered and logged in, you could join this project.

Summary Collaboration platform for lg3d
Categories None
License GNU General Public License (GPL)
Owner(s) deronj, hideya, kaplanj, krishna_gadepalli, paulby


Project Wonderland: 3D Scene Manager for Virtual Worlds

Screenshot

Project Wonderland is a 3D scene manager for creating collaborative virtual worlds. Within those worlds, users can communicate with high-fidelity, immersive audio and can share live applications such as web browsers, OpenOffice documents, and games. A number of Wonderland video demos and interviews are available in the News section below.

Vision and Goals

The vision for this multi-user virtual environment 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 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 will eventually include audio communication, live desktop applications of all kinds, and collaborative creation of world content (both graphical and procedural).

One important goal of the project is for the environment to be completely extensible. Developers and graphic artists can extend the functionality to create entire new worlds, new features in existing worlds, or new behaviors for objects and avatars. The art path for Wonderland is also open. The eventual goal is to support content creation within the world, but in the shorter term, the goal is to support importing art from open source 3D content creation tools as well as professional 3D modeling and animation applications. More information about content creation tools can be found on the project wiki:

Getting Involved

There are a variety of ways to participate actively in the Project Wonderland community. Anyone with an interest is welcome to join the Wonderland interest forum:

Developers may wish to volunteer for one of the many features included on our wish list:

Alternately, they may propose and implement features of their own devising. Those with 3D graphic design skills are invited to create new content and animations. User interface designers can help us to invent or refine interaction techniques for collaboration in the 3D world. We invite everyone with an interest in this project to suggest new feature and content ideas. Please add these to the wiki as you think of them and volunteer to help out.

MPK20: Sun's Virtual Workplace

MPK20 is the first virtual world created using the Wonderland scene manager. All the artwork for this Sun Labs project is provided here as an example. See the Sun Labs web site for more information and screen shots:

Getting and Building the Project

We are still focused on developing, integrating and testing key system components so there are no binary builds of the project available at the moment. If you are comfortable, however, building projects from source with ant, you can download and run the system on your machine. Both the server and client will run happily together on a single modern machine with a good graphics card.

The build system makes a few assumptions about the location of various systems on which this project relies. To make life easy, follow the directory hierarchy described here.

  • Check you have JDK 1.6 installed
  • Create and cd to an empty working directory
  • export CVSROOT=:pserver:<java.net username>@dev.java.net:/cvs
  • cvs login
  • cvs co lg3d-core lg3d-demo-apps
  • cvs co lg3d-wonderland
  • cd lg3d-core ; ant
  • cd ../lg3d-wonderland
  • The ant script will run both the client and server. I recommend opening two shells.
    • Run the server in one using 'ant run-sgs'
    • Run the client in the other using 'ant run'
  • Take a look at Help Contents under Help for information on keyboard bindings and customizing wonderland
  • If you want to run X applications inside Wonderland see this

Build problems? We rely on a very recent version of Java3D which is included in the files you downloaded. If you experience build problems, you probably have Java 3D installed in the JDK. You should remove Java 3D from the JDK (or replace it with the latest Java 3D 1.5.1 nightly build). Also, see special instructions for building on Mac OS X.

Note the build.properties file includes the IP address of the server. Normally this is set to 127.0.0.1 (localhost) for testing, but if you want to run the client and server on different machines you should create a new file (if it does not already exist) called my.build.properties and set the property sgs.server

Supported Platforms

  • Linux (tested on Ubuntu - Edgy Eft and Feisty Fawn)
  • Windows XP (but you can't run desktop X11 apps in world from an XP server)
  • Solaris x86
  • Mac (special instructions) (requires JDK 6, which is still in early access from apple, and again no support for X11 apps from a Mac server)
You will need to have hardware-accelerated OpenGL drivers installed. For Solaris and Linux we strongly recommend Nvidia cards/drivers. In our experience, their drivers are more stable and feature complete than others.

Foundation Technologies

Project Wonderland relies on the following projects for key technologies. 

  • Project Darkstar - provides the scalable, persistant server software infrastructure
  • SunTM Labs Voice Bridge - provides realtime stereo audio with distance attenuation
  • Java 3D - provides the scene graph on which the 3D world is built

X11 Application Sharing Instructions

The ability to run X11 applications inside the virtual world and share them between users is an important feature of Wonderland.

Click here for instructions on how to use this feature.

Wonderland X11 Server Source Code

Wonderland X11 App Sharing uses a special X server known as the "X Remote Window (XRW) Server." This server is similar to an VNC server except it handles windows separately. That is, instead of just displaying an entire X desktop inside the virtual world it allows windows to be individually integrated into the virtual world. This allows X windows to be treated as first class objects in the world. For example, these windows can be moved into different locations in the world and do not even have to reside in the same plane. They have complete freedom of movement and orientation.

The source code for XRW is contained in the Xorg master git repository in a branch called wonderland-dev. To obtain this code, do the following:

git clone git://anongit.freedesktop.org/git/xorg/xserver
cd xserver
git checkout wonderland-dev

Most of the XRW code lies in the directory xserver/hw/vfb.

This code is licensed under the MIT License.

Project Wonderland & MPK20 news

Paul Byrne with James Gosling