Open Wonderland

The Wonderland virtual world platform provides an open, extensible framework on which users can develop and deploy entire virtual worlds or applications that can run within an existing Wonderland virtual world.

See:
          Description

Packages
org.jdesktop.wonderland.client  
org.jdesktop.wonderland.client.assetmgr This package provides management services for in world data such as art assets and shared documents etc
org.jdesktop.wonderland.client.assetmgr.content  
org.jdesktop.wonderland.client.assetmgr.http  
org.jdesktop.wonderland.client.assetmgr.modules  
org.jdesktop.wonderland.client.cell Provides the data (or model) portion of the client side cells.
org.jdesktop.wonderland.client.cell.annotation  
org.jdesktop.wonderland.client.cell.asset  
org.jdesktop.wonderland.client.cell.component  
org.jdesktop.wonderland.client.cell.properties  
org.jdesktop.wonderland.client.cell.properties.annotation  
org.jdesktop.wonderland.client.cell.properties.spi  
org.jdesktop.wonderland.client.cell.registry  
org.jdesktop.wonderland.client.cell.registry.annotation  
org.jdesktop.wonderland.client.cell.registry.spi  
org.jdesktop.wonderland.client.cell.utils  
org.jdesktop.wonderland.client.cell.utils.spi  
org.jdesktop.wonderland.client.cell.view  
org.jdesktop.wonderland.client.comms The communication infrastructure of the Wonderland client.
org.jdesktop.wonderland.client.content  
org.jdesktop.wonderland.client.content.annotation  
org.jdesktop.wonderland.client.content.spi  
org.jdesktop.wonderland.client.contextmenu  
org.jdesktop.wonderland.client.contextmenu.annotation  
org.jdesktop.wonderland.client.contextmenu.cell  
org.jdesktop.wonderland.client.contextmenu.spi  
org.jdesktop.wonderland.client.help  
org.jdesktop.wonderland.client.hud  
org.jdesktop.wonderland.client.input  
org.jdesktop.wonderland.client.jme Base package for all jme client specific classes and subpackages.
org.jdesktop.wonderland.client.jme.artimport  
org.jdesktop.wonderland.client.jme.cellrenderer JME (or 3D) renderers for the default cell types.
org.jdesktop.wonderland.client.jme.content  
org.jdesktop.wonderland.client.jme.dnd  
org.jdesktop.wonderland.client.jme.dnd.spi  
org.jdesktop.wonderland.client.jme.input  
org.jdesktop.wonderland.client.jme.input.test  
org.jdesktop.wonderland.client.jme.login  
org.jdesktop.wonderland.client.jme.utils  
org.jdesktop.wonderland.client.jme.utils.graphics  
org.jdesktop.wonderland.client.jme.utils.traverser Utility for traversing JME scene graphs and processing nodes of specified types.
org.jdesktop.wonderland.client.login  
org.jdesktop.wonderland.client.modules  
org.jdesktop.wonderland.client.protocols.wla  
org.jdesktop.wonderland.client.protocols.wlcontent  
org.jdesktop.wonderland.client.protocols.wlhttp  
org.jdesktop.wonderland.client.protocols.wlj  
org.jdesktop.wonderland.client.protocols.wlzip  
org.jdesktop.wonderland.client.scenemanager  
org.jdesktop.wonderland.client.scenemanager.event  
org.jdesktop.wonderland.client.softphone  
org.jdesktop.wonderland.client.utils  
org.jdesktop.wonderland.common Base package for classes and subpackages that are common between the all clients and the wonderland server.
org.jdesktop.wonderland.common.annotation  
org.jdesktop.wonderland.common.auth  
org.jdesktop.wonderland.common.cell Cell classes that are common between server and client.
org.jdesktop.wonderland.common.cell.component.state  
org.jdesktop.wonderland.common.cell.config.jme  
org.jdesktop.wonderland.common.cell.messages  
org.jdesktop.wonderland.common.cell.security  
org.jdesktop.wonderland.common.cell.state  
org.jdesktop.wonderland.common.cell.state.annotation  
org.jdesktop.wonderland.common.cell.state.spi  
org.jdesktop.wonderland.common.cell.view  
org.jdesktop.wonderland.common.checksums  
org.jdesktop.wonderland.common.comms  
org.jdesktop.wonderland.common.comms.messages Messages related to the communication infrastructure
org.jdesktop.wonderland.common.login  
org.jdesktop.wonderland.common.logparser  
org.jdesktop.wonderland.common.messages  
org.jdesktop.wonderland.common.modules  
org.jdesktop.wonderland.common.modules.utils  
org.jdesktop.wonderland.common.security  
org.jdesktop.wonderland.common.security.annotation  
org.jdesktop.wonderland.common.timingframework  
org.jdesktop.wonderland.common.utils  
org.jdesktop.wonderland.common.utils.jaxb  
org.jdesktop.wonderland.common.wfs  
org.jdesktop.wonderland.server This section describes the operation of various important processes on on the server.
org.jdesktop.wonderland.server.auth  
org.jdesktop.wonderland.server.cell Cells provide spatialised geometry, behavior and network support for world content.
org.jdesktop.wonderland.server.cell.annotation  
org.jdesktop.wonderland.server.cell.component  
org.jdesktop.wonderland.server.cell.view  
org.jdesktop.wonderland.server.comms The communication infrastructure of the Wonderland server.
org.jdesktop.wonderland.server.comms.annotation  
org.jdesktop.wonderland.server.eventrecorder  
org.jdesktop.wonderland.server.security  
org.jdesktop.wonderland.server.spatial  
org.jdesktop.wonderland.server.spatial.impl MT Hot locking strategy
org.jdesktop.wonderland.server.spatial.test  
org.jdesktop.wonderland.server.state  
org.jdesktop.wonderland.server.wfs.exporter  
org.jdesktop.wonderland.server.wfs.importer  

 

The Wonderland virtual world platform provides an open, extensible framework on which users can develop and deploy entire virtual worlds or applications that can run within an existing Wonderland virtual world.



Naming convention : In the server code you will find many classes ending with MO, this stands for ManagedObject (a Darkstar interface). By convention we use this label to provide for quick identification of server versus client classes.

View

A View provides a view into the virtual world, having properties of at least location and look direction. Avatars and Cameras are examples of a view. The view allows the client application to establish a view into the virtual world. In many cases this view associated with an avatar, in which case the avatar, through the cell system, will control the view. However on smaller devices, or simpler interfaces, the client may choose not to have a local avatar in which case the view can be controlled through the View Handler.

Connections

The Connections provide a high level communication infrastructure for Wonderland subsystems. Any subsystem which can provide a stand alone service to the user will use the Connection mechanism to encapsulate all communication. This allows client applications to easily select the Wonderland subsystems that are appropriate for the users current mode of operation or client device capabilities. For the example the IM, Audio chat and Cells are all subsystems that are optional, and each provides it's own connection. The client side implementation of a specific Connetion is a singleton and they must be correctly initialised (by calling attach in the session login) before use. Connections are managed by the Session.

Cell

The cell system provides the structure of the virtual world. Each cell is a volume in the 3D world described as either a bounding box or sphere, arranged in a tree. The tree provides a spatial organization and requires that the bounds of any child cell is fully enclosed within the bounds of the parent cell. Cells can provide either/both content and a communication channel to the client. Depending on the client capabilities (as specified in the ClientCapabilities class) each cell can provide it's own client side representation by specifying the client side class used to represent the cell (see org.jdesktop.wonderland.server.cell.CellMO#getClientCellClassName(ClientCapabilities)), the same mechanism also provides for multiple communication channels allowing, for example, support for clients with varying network bandwidth capabilities. The security system in Wonderland can be used to provide varying level of access to any cell (and it's children) to a particular user. Cells are broken into two main groups, static cells which do not change and dynamic cells which change in some way and are synchronized throughout the system (to be specific the static cells can be updated but this is a heavyweight operation and may briefly cause a pause in client rendering). Dynamic cells implement org.jdesktop.wonderland.client.cell.ChannelCell thus providing a communication Channel over which messages are sent/received to keep the cell state (loosely) synchronized. It is the developers responsibility to manage the state of dynamic cells and determine what data needs to be shared. MovableCell is one example of a cell which is dynamicorg.jdesktop.wonderland.client.cell.MovableCell.

Cell Cache

The cell cache is completely internal to the Wonderland platform, developers should not need to interact with it directly, however it is a central component so is included in the is overview. Every View in the virtual world has a Cell Cache. The Cache is responsible for determining which cells are available to a user. There is a server portion of the cell cache, and if the client supports it, a client portion. The server Cell Cache ( org.jdesktop.wonderland.server.cell.CellCacheMO ) is responsible for determining which cells are potentially visible to a client use a combination of locality to the view and security policy. The client is notified as cells are moved into and out of the potentially visible set. The client Cell Cache then computes which state each cell should be in as the view moves and takes the appropriate rendering action.

Wonderland Session

Each client application connected to the wonderland server is represented by a Session on both the client and the server. The session handles the login and also provides a single point for accessing all the connections required for that session. A single user can have multiple concurrent sessions.

User

Wonderland representation of a real person. Users have a unique username and a real world name. They also have a org.jdesktop.wonderland.server.UserSecurityContextMO) which provides the point of control for the security features within Wonderland.

ClientCapabilities

The Wonderland platform is designed to support client devices with a large variation in capabilities. Although the virtual world is defined as a 3D space it is quite possible to interact with the world from other interfaces. The platform already includes support for users on a telephone and we have plans for interfaces from cell phones and web access. The ClientCapabilities class provides an extensible way to describe the capabilities of a client device, such as rendering capabilities (2D or 3D) and network bandwidth. This information is used by the Cell system to determine the content that is delivered to a client and the cell channel to which a client is attached.





Open Wonderland - http://openwonderland.org