 |
As the new Java.net infrastructure contains project-level wikis, this main wiki will be shut down in the near future. For wiki page export and general wiki questions please contact the site admin at communitymanager@java.net. Home | Changes | Index | Search | Go
About Project Wonderland
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 include audio communication, live desktop applications of
all kinds, and eventually 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 below.
Content Creation
Initially we will rely solely on external content creation tools. In the longer term we hope to produce an in world creation tool but we will always support the external tools as they
provide a much richer environment than is possible in world. For simple geometry we can support any tool that can export data in a form for which a Java 3D loader exists. However
we will need to include some meta data with much of the geometry for correct in world interaction.
Currently we are using x3d as the data format for loading data into the world. As we define the meta data system we will examine what other formats we can support or if import tools
can be created which enable users to apply the correct meta information. Within the Wonderland system all data is stored in the Java 3D SceneGraphIO binary format.
Initial content for the world is being created in Maya and exported to x3d. We obviously want to support other tools, especially free and open source tools. The following tools should
be evaluated for inclusion in the tool path:
Extending the World
The way the world is currently defined and can be extended is very preliminary. One of our high priority tasks is to dramatically simplify this process, but in the meantime here
are the gory details of the current implementation....
The world is defined by a group of Cells (3D volumes) which are controlled by the server. As the avatar moves around the world the server periodically informs the client which
cells to load (and which to unload). The client is passed the cell type, position, bounds and any extra data required for setup (handled by the UserCellCacheGLO and UserCellCache ).
The bulk of the static world content is defined as SimpleTerrainCells which can load and display data from .j3s files (an optimized Java 3D graph representation). Cells are grouped in
a hierarchical structure (very shallow at the moment).
Content can be added to the world in one of two ways: through static art files or programatically using Java3D code.
To add static content to the world, see "Content Creation" above, as well as the Art Import Tutorial and the
Wonderland Filesystem Tutorial.
To add content programatically, you can define your own custom cell type. Custom cell types give you complete control of the Java3D scene graph
for a given volume of geometry. You can add new objects, load static art files, react to user input and send messages between clients and to the server.
Custom cell types can be developed without changing the core Wonderland code. To create a new custom cell, refer to the five-part tutorial series
Extending Wonderland -- Creating New Cell Types.
All the data files for the world (the geometry and textures) are fetched on demand from a web server and cached on the client. All the data is also in the project lg3d-wonderland-art.dev.java.net.
If you want to add content to the standard distribution you can include files in the lg3d-wonderland-art project and we will host them on our server, or you can host them on your own web
server as detailed below. For testing there is a flag which will cause all the data to be loaded from the local disk. To enable this cvs checkout lg3d-wonderland-art as a sibling the lg3d-wonderland
project and then edit/create the file lg3d-wonderland/my.build.properties and add the line "useLocalArt=true" (without the quotes).
To host the content on your own server do the following:
- Link or copy the compiled_models directory from the lg3d-wonderland-art into the www directory of your webserver
- Edit lg3d-wonderland/my.build.properties and add the line "wonderland.art.url.base=http://example.com/compiled_models" (without the quotes), where example.com is the webserver host, and /compiled_models is the URI of the compiled_modules directory as specified in Step 1.
- Note: The checksums.txt file can be ignored currently, the checksums are checked, but no action is taken.
Client System Requirements
- A modern PC (1.5Ghz+, 1GB RAM) with 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.
- An accelerated graphics card. We recommend a graphics card with 256MB of video memory for the best performance, but 128MB should also work. We have tested most heavily using Nvidia graphics cards.
- Java SE 5 or 6
- Supported platforms :
- Application sharing is supported only for X11 applications and hence available on Linux and Solaris platforms only. Shared X11 applications must be launched from a Linux or Solaris client but can be viewed and controlled from any other client (including Windows and Mac)
Foundation Technologies
Project Wonderland relies on the following open source projects for key technologies.
- Project Darkstar - provides the scalable, persistant server software infrastructure
- jVoiceBridge - provides realtime immersive stereo audio with distance attenuation
- Java 3D - provides the scene graph on which the 3D world and scene manager is built
- Project Looking Glass - provides the 3D scene manager
|