 |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. -->
| | | | |
< < | | A basic introduction to Project Wonderland, covering audio, navigation, the user list, applications, and other features. | | > > | | A basic introduction to Project Wonderland, covering audio, navigation, the user list, applications, and other features. Also see the companion TroubleshootingGuide. | | | | |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. -->
| | |
| Wonderland 0.5 Features (TBD) | | |
< < | | List of features in Wonderland 0.5 release | | > > | | List of features in Wonderland 0.5 release. | | | | | |
< < | | Our best guess at the timeframes for the upcoming releases and what will be included in them | | > > | | Our best guess at the timeframes for the upcoming releases and what will be included in them. | | | | | | | | |
< < | | This tutorial describes how to configure Project Wonderland if your server is behind a firewall or NAT and to configure your Wonderland client to work with proxies. | | > > | | This tutorial describes how to configure Project Wonderland if your server is behind a firewall or NAT and configure your Wonderland client to work with proxies. | | | | |
| |
| | |
| |
< < | For Content Developers | > > | For Content Developers | | |
| | |
| |
< < | For Developers | > > | For Developers | | |
| |
< < | | > > | | | | | This tutorial provides an introduction for all developers: how to download and compile the source code, configure the Wonderland distribution, and run both the server and client. |
|
| |
> > | | | | | |
< < | This tutorial describes how to extend Wonderland by creating a custom cell type. The basic tutorial is covered in four parts: Part 1, Part 2, Part 3, Part 4
Once these basic tutorials are completed, there are tutorials covering advanced topics: | | > > | | This tutorial describes how to extend Wonderland by creating a custom cell type. The basic tutorial is covered in four parts: Part 1, Part 2, Part 3, Part 4. Once these basic tutorials are completed, there are tutorials covering advanced topics, at Developing a New Cell.
|
| Links to jMonkeyEngine Documentation |
This page provides a collection of web links to tutorials and documentation for jMonkeyEngine, the 3D rendering API used by Project Wonderland. | | | |
| Adding Items to the Context Menu | | | |
| |
< < | For Students | > > | For Students | | |
|
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. -->
| | | Project Wonderland v0.5 Documentation Wiki | |
< < | Welcome to the Project Wonderland v0.5 Documentation Wiki! If you are looking for the wiki for earlier versions of Project Wonderland, see ProjectWonderland04 | > > | Welcome to the Project Wonderland v0.5 Documentation Wiki! If you are looking for the wiki for earlier versions of Project Wonderland, see ProjectWonderland04.
NOTE: We are currently revamping this page for v0.5, so it's under construction | | | <-- Menu -->
| |
< < | Wonderland Home | > > | Wonderland Home | For Everyone | For Users | For System Administrators | For Developers | For Students | | |
<-- Everyone --> | | | | |
< < | | > > | | | | | | | | |
< < | | > > | | | | | New to Wonderland? This FAQ answers some basic questions for first-time users about joining, navigating around, and participating in a Wonderland virtual world. |
|
| |
< < | | User's Guide, v0.4 |
This user's guide is a comprehensive guide to the features of Project Wonderland, version 0.4. (See User's Guide, v0.3 for the previous version.) For a faster start, refer to WonderlandKeystrokeMappings. |
| Platform Tips |
Every operating systems has its idiosyncrasies. This article provides tips on how to get the Wonderland client running on different operating systems. | | > > | | | | |
|
|
< < | | > > | | | | | This page lists the reported performance of various hardware and software configurations with Project Wonderland. |
| | | | |
< < | | > > | | | | |
|
|
< < | | > > | | | | | This tutorial describes how to configure Project Wonderland if your server is behind a firewall or NAT and to configure your Wonderland client to work with proxies. |
|
| |
< < | | > > | | | | | This tutorial describes how to integrate with the telephone network and how to set up a virtual telephone inside a Wonderland world. |
| | |
| |
< < |
| Importing Content from Blender (tutorial) |
This tutorial provides an introduction for all content developers on how to import content into Wonderland from a 3rd party modeling tool using the Wonderland Art Import facility. |
| | |
<-- Developer --> | | | | |
< < | | > > | | | | | This tutorial provides an introduction for all developers: how to download and compile the source code, configure the Wonderland distribution, and run both the server and client. |
|
| |
< < | | > > | | | | |
|
|
< < | | > > | | | | | |
> > | |
<-- Students -->
For Students
| | | |
< < | | | | | |
< < | | Do you want to contribute to the Wonderland Project? Here's some ideas on different ways to contribute. If you'd like to contribute to the core software, here is a list of desired features. Once you get going developing with Wonderland, feel free to add yourself to the Wonderland developer profiles. | | > > | | Do you want to contribute to the Wonderland Project? Here's some ideas on different ways to contribute. If you'd like to contribute to the core software, here is a list of desired features. | | | | |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. -->
| | | | |
< < | Project Wonderland Documentation Wiki | > > | Project Wonderland v0.5 Documentation Wiki
Welcome to the Project Wonderland v0.5 Documentation Wiki! If you are looking for the wiki for earlier versions of Project Wonderland, see ProjectWonderland04 | | | <-- Menu -->
| |
< < | Wonderland Home | Technical Specifications | > > | Wonderland Home | | |
<-- Everyone --> | | | | This page has a collection of videos, presentations, screenshots, and web resources on Project Wonderland. |
|
| |
< < | | | |
| | | | Leads you step-by-step to download, install, configuring, and run Project Wonderland.. |
|
| |
< < | | Install Wonderland Web Administration |
Teaches you how to install the web-based administration features for Wonderland, including the web start client, art import tool, and world builder. |
|
| | | | Configure for Proxies, Firewalls, NATs |
This tutorial describes how to configure Project Wonderland if your server is behind a firewall or NAT and to configure your Wonderland client to work with proxies. |
| | | | Importing Content from Blender (tutorial) |
This tutorial provides an introduction for all content developers on how to import content into Wonderland from a 3rd party modeling tool using the Wonderland Art Import facility. |
| |
< < | | | |
<-- Developer --> | | | | This tutorial provides an introduction for all developers: how to download and compile the source code, configure the Wonderland distribution, and run both the server and client. |
|
| |
< < | | Software Architecture (article) |
This article is essential for all developers who will extend or modify the Wonderland software. It describes the client-server software architecture and its communication protocol and how in-world volumes are represented by 'cells'. |
| Arquitectura del Software (artículo) |
Este artículo es esencial para todos los desarrolladores que quierán ampliar o modificar el software Wonderland. Describe la arquitectura del software cliente-servidor y sus protocolos de comunicación y como los vólumenes del mundo son representados por 'celdas'. |
|
| | | | | |
| |
< < | ProjectWonderlandOriginalWiki? | | | \ No newline at end of file |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. -->
| | | <-- Menu -->
| |
< < | Wonderland Home | Tutorials | Articles | Guides | Technical Specifications | Need Help?
New Features in v0.4: A guide to the new features in Wonderland v0.4.
Installing Wonderland Web Administration (tutorial): Install the web-based administration features for Wonderland, including the web start client, art import tool, and world builder.
Importing Content from Blender (tutorial): This tutorial provides an introduction for all content developers on how to import content using the Wonderland Art Import facility.
Extending Project Wonderland by Creating New Cell types - Part V: This tutorial describes how your cell can synchronize its state among all Wonderland clients.
Configuring Wonderland X11 Shared Applications: This article describes how to configure the X Windows shared application mechanism.
Looking for the original Project Wonderland Wiki? Click here. | > > | Wonderland Home | Technical Specifications | | |
<-- Everyone --> | | | | Our best guess at the timeframes for the upcoming releases and what will be included in them |
|
| |
< < | | Public Worlds |
Want to join a Wonderland world? Here's a list of organizations that host public worlds. |
|
| | | | Multimedia Resources |
This page has a collection of videos, presentations, screenshots, and web resources on Project Wonderland. |
| | |
| |
< < | For Users (Am I a user?) | > > | For Users | | |
| | |
| |
< < | For System Administrators (Am I a system administrator?) | > > | For System Administrators | | |
| |
< < | | Leads you step-by-step to download, install, configuring, and run Project Wonderland, as well as some common problems encountered. | | > > | | Leads you step-by-step to download, install, configuring, and run Project Wonderland.. | | | | | | | | This tutorial describes how you can configure Wonderland to use LDAP for authentication. |
|
| |
< < | | Java Web Start Setup |
This tutorial describes how to setup your Wonderland so that the client is distributed via Java Web Start. |
|
| | | | | | | Telephone Integration (tutorial) |
This tutorial describes how to integrate with the telephone network and how to set up a virtual telephone inside a Wonderland world. |
| |
< < | | | |
| | |
| |
< < | For Content Developers (Am I a content developer?) | > > | For Content Developers | | |
| | | | |
< < | | | |
<-- Developer -->
| |
< < | For Developers (Am I a developer?) | > > | For Developers | | |
| | | | |
> > | | | | | |
< < | | > > | A wiki containing technical documents and plans for Project Wonderland v0.5
| | | | |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. -->
| | |
Wonderland Home | Tutorials | Articles | Guides | Technical Specifications | Need Help?
| |
> > | Installing Wonderland Web Administration (tutorial): Install the web-based administration features for Wonderland, including the web start client, art import tool, and world builder..
| | | Importing Content from Blender (tutorial): This tutorial provides an introduction for all content developers on how to import content using the Wonderland Art Import facility.
Extending Project Wonderland by Creating New Cell types - Part V: This tutorial describes how your cell can synchronize its state among all Wonderland clients.
Configuring Wonderland X11 Shared Applications: This article describes how to configure the X Windows shared application mechanism.
| |
< < | Extending Project Wonderland by Creating New Cell types - Part IV: This tutorial describes how to handle input events for your new cell type.
| | |
Looking for the original Project Wonderland Wiki? Click here. | | | | Leads you step-by-step to download, install, configuring, and run Project Wonderland, as well as some common problems encountered. |
|
| |
> > | | Install Wonderland Web Administration |
Teaches you how to install the web-based administration features for Wonderland, including the web start client, art import tool, and world builder. |
|
| | | | Configure for Proxies, Firewalls, NATs |
This tutorial describes how to configure Project Wonderland if your server is behind a firewall or NAT and to configure your Wonderland client to work with proxies. |
| | |
| |
> > | ProjectWonderlandPointFourNewFeatures |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. -->
| | | | |
< < | | > > | | Getting Started with Wonderland | | | | | New to Wonderland? This gives an introduction to joining, navigating around, and participating in a Wonderland virtual world. |
|
| | | | |
< < | | Leads you step-by-step to download, install, configuring, and run Project Wonderland, as well as some common problems encountered. | | > > | | Leads you step-by-step to download, install, configuring, and run Project Wonderland, as well as some common problems encountered. |
| Configure for Proxies, Firewalls, NATs |
This tutorial describes how to configure Project Wonderland if your server is behind a firewall or NAT and to configure your Wonderland client to work with proxies. | | | | | |
> > | | Java Web Start Setup |
This tutorial describes how to setup your Wonderland so that the client is distributed via Java Web Start. |
|
| | | | | |
| |
< < | DownloadAndBuildSource | | | \ No newline at end of file |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | |
> > |
Project Wonderland Documentation Wiki
<-- Menu -->
Wonderland Home | Tutorials | Articles | Guides | Technical Documents | Need Help?
Looking for the original Project Wonderland Wiki? Click here.
<-- Everyone -->
For Everyone
<-- End Users Documents -->
<-- System Administrators Documents -->
<-- Content Developers -->
<-- Developer -->
| | | | |
< < | ProjectWonderland <-- this automatically adds a header showing the name of this page -->
<-- Your JavaDesktop? article goes here. Please try to include at least one sentence describing this topic. -->
<-- Also please try to include at least one sentence describing where each link goes. -->
<-- Please make sure some other page points to your new article so that others can find it! -->
<-- For more on how to write Javapedia articles please read the WritingArticles? page. -->
This is an extension to Project Looking Glass. Project Wonderland aims to produce a large scale collaborative environment
on the Project Looking Glass infrastructure that will enable users to collaborate in a number of ways. One key goal is to
allow users to share and work concurrently on desktop applications (X11 and Java to start with and XP using rdp).
On this page:
API Cleanup
- Post 0.3 release we plan to spend some time cleaning up the API to make the platform easier to use and more extensible. Check ApiCleanup? for details.
Performance, and how you can help
Project Wonderland provides a flexible platform that should run on a wide array of hardware with varying performance characteristics. One of the critical elements is graphical performance which has not traditionally been important to many users, this is obviously changing with the rich interfaces being created in most operating systems (Compiz on Unix, Aqua in OSX and Aeroglass in Vista) but there are lots machines deployed with lower end hardware. When building a virtual environment the most critical aspect that will affect performance is the complexity of the art (amount of geometry, size of textures etc). For the sample world, MPK20, included in Project Wonderland the art is targeted at a mid range graphics machine, for example GeForce? Go 5200 card in a laptop should provide good performance. If you run the wonderland client and observe poor performance there are a number of things you can do to improve it
- Check you have the latest graphics drivers installed for your hardware (this is especially important on linux which does not normally include hardware accelerated graphics drivers)
- Make the Wonderland window smaller.
- Lower the desired frame rate of the wonderland client (under the View->Max Frame Rate menu)
- Try quitting some apps. When the on-board texture memory fills up some graphics cards push textures out to CPU memory. Textured rendering is slower from this type of memory. Reducing the number of app windows will free up more space in the on-board texture memory. This will reduce the number of CPU textures and will result in faster rendering.
- Scrolling an app window with the mouse wheel can generate huge amounts of data traffic that can swamp low bandwidth clients. Using other types of scrolling features (such as scrollbar buttons, scrollbar elevator, or arrow keys) is easier on this slower clients.
This PerformancePage provides information on measured performance on different platforms. If you have any questions please post to the forums.
The ScalabilityPage? provides information on the latest Project Wonderland scalability and performance benchmarks for individual software components.
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) which is hard coded in WorldRootCellGLO, if you want to alter the world content you will need to edit this file. For more details on the specific classes involved, see ProjectWonderlandArchitecture.
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" below, as well as ProjectWonderlandBlenderImport. 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, you can use the Wonderland module system. See the sample module in the Wonderland modules directory for an example.
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.
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
Wonderland X11 Server Source Code
Wonderland X11 App Sharing uses a special X server known as the "X Remote Window (XRemwin) 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 resides here.
This source code is based on Xorg 7.3. It contains only the Xremwin-specific differences. It contains some entire files, which are new, and also some code fragments
which change existing Xorg files. These changes must be applied incrementally to an existing Xorg source code tree. Both Linux and Solaris changes are available.
There is a file in the zip bundles called README-XREMWIN which explains how to integrate this code into an Xorg server source base.
This code is licensed under the MIT License.
Documentation
End User
Architecture documents
Tutorials and HOWTOs
Developer Notes
Event Handling for 3D Objects
The way you add an event handler to an object in the world is to make the object a child of an J3dLgBranchGroup. This is a type of Java3D scene graph
node on which you can register keyboard and mouse listeners. In Wonderland, whenever an event happens over a visible object in the scene graph
the system starts searching for an event listener. It works its way up the scene graph toward the graph's root. Along the way, whenever it encounters
a J3dLgBranchGroup it calls the listeners that have been registered with that group.
There is code in the appshare directory which demonstrates how to initialize a J3dLgBranchGroup, how to register listeners with it,
and how to implement those listeners. Check out lg3d-wonderland/src/classes/org/jdesktop/lg3d/wonderland/appshare/Gui.java,
especially the method initEventHandling. Note that several of the classes of the Wonderland event system are defined in the source
code for the lg3d-core java.net project. Go to the parent directory of lg3d-wonderland and do a cvs checkout lg3d-core to get this
source.
Proposals
- ProjectWonderlandFileSystem - A proposal for representing Wonderland worlds on disk with a series of XML files
- WonderlandWhiteboard - An area to focus in-world whiteboard work (record proposed feature-list, record other whiteboard-related conclusions from the forums, etc)
Desired Features
This is a list of potential new features to add. If you are thinking of contributing to the project, please review this list and see if you might be able to build any of these features. Please feel free to add to this list as you think of new ideas that would enhance the Wonderland environment.
ReleasePlans?
About the Developers
WonderlandDeveloperProfiles
WonderlandSupportedPlatforms? | | | \ No newline at end of file | |
> > |
|
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | | | |
> > | 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. | | | Documentation | |
> > | End User
| | | Architecture documents
|
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | | API Cleanup
- Post 0.3 release we plan to spend some time cleaning up the API to make the platform easier to use and more extensible. Check ApiCleanup? for details.
| |
> > | Performance, and how you can help
Project Wonderland provides a flexible platform that should run on a wide array of hardware with varying performance characteristics. One of the critical elements is graphical performance which has not traditionally been important to many users, this is obviously changing with the rich interfaces being created in most operating systems (Compiz on Unix, Aqua in OSX and Aeroglass in Vista) but there are lots machines deployed with lower end hardware. When building a virtual environment the most critical aspect that will affect performance is the complexity of the art (amount of geometry, size of textures etc). For the sample world, MPK20, included in Project Wonderland the art is targeted at a mid range graphics machine, for example GeForce? Go 5200 card in a laptop should provide good performance. If you run the wonderland client and observe poor performance there are a number of things you can do to improve it
- Check you have the latest graphics drivers installed for your hardware (this is especially important on linux which does not normally include hardware accelerated graphics drivers)
- Make the Wonderland window smaller.
- Lower the desired frame rate of the wonderland client (under the View->Max Frame Rate menu)
This PerformancePage provides information on measured performance on different platforms. If you have any questions please post to the forums. | | | 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.... |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | | 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? classes). 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) which is hard coded in WorldRootCellGLO?, if you want to alter the world content you will need to edit this file. The j3s files are created using the J3dFly? project (j3dfly.dev.java.net) from x3d files (there is also a 3ds loader and various others are available online of varying quality, but more are needed, see Collada loader project below), I'll document the conversion process in the next section (TODO). The other way you can add content to the world is to add a Java 3D graph, I'd suggest using the SlideShowCellGLO? and SlideShowCell? classes as the basis for creating your own cell types to which you can attach your own Java 3D graph. | > > | 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) which is hard coded in WorldRootCellGLO, if you want to alter the world content you will need to edit this file. For more details on the specific classes involved, see ProjectWonderlandArchitecture.
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" below, as well as ProjectWonderlandBlenderImport. 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, you can use the Wonderland module system. See the sample module in the Wonderland modules directory for an example. | | | 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). | | | | |
> > | Documentation
Architecture documents
Tutorials and HOWTOs
Developer Notes
Event Handling for 3D Objects
The way you add an event handler to an object in the world is to make the object a child of an J3dLgBranchGroup. This is a type of Java3D scene graph
node on which you can register keyboard and mouse listeners. In Wonderland, whenever an event happens over a visible object in the scene graph
the system starts searching for an event listener. It works its way up the scene graph toward the graph's root. Along the way, whenever it encounters
a J3dLgBranchGroup it calls the listeners that have been registered with that group.
There is code in the appshare directory which demonstrates how to initialize a J3dLgBranchGroup, how to register listeners with it,
and how to implement those listeners. Check out lg3d-wonderland/src/classes/org/jdesktop/lg3d/wonderland/appshare/Gui.java,
especially the method initEventHandling. Note that several of the classes of the Wonderland event system are defined in the source
code for the lg3d-core java.net project. Go to the parent directory of lg3d-wonderland and do a cvs checkout lg3d-core to get this
source.
Proposals
| | | Desired Features | | | ReleasePlans? | |
< < | User Authentication
ProjectWonderlandAuthentication
Documentation
Architecture documents
Tutorials and HOWTOs
Developer Notes
Event Handling for 3D Objects
The way you add an event handler to an object in the world is to make the object a child of an J3dLgBranchGroup. This is a type of Java3D scene graph
node on which you can register keyboard and mouse listeners. In Wonderland, whenever an event happens over a visible object in the scene graph
the system starts searching for an event listener. It works its way up the scene graph toward the graph's root. Along the way, whenever it encounters
a J3dLgBranchGroup it calls the listeners that have been registered with that group.
There is code in the appshare directory which demonstrates how to initialize a J3dLgBranchGroup, how to register listeners with it,
and how to implement those listeners. Check out lg3d-wonderland/src/classes/org/jdesktop/lg3d/wonderland/appshare/Gui.java,
especially the method initEventHandling. Note that several of the classes of the Wonderland event system are defined in the source
code for the lg3d-core java.net project. Go to the parent directory of lg3d-wonderland and do a cvs checkout lg3d-core to get this
source.
Proposals
| | | About the Developers
WonderlandDeveloperProfiles |
| |
| META TOPICPARENT | name="WebHome" |
Home | Changes | Index | Search | Go <-- This creates the navigation links to : Home | Help | Index | etc. --> | | | | |
> > | Developer Notes
Event Handling for 3D Objects
The way you add an event handler to an object in the world is to make the object a child of an J3dLgBranchGroup. This is a type of Java3D scene graph
node on which you can register keyboard and mouse listeners. In Wonderland, whenever an event happens over a visible object in the scene graph
the system starts searching for an event listener. It works its way up the scene graph toward the graph's root. Along the way, whenever it encounters
a J3dLgBranchGroup it calls the listeners that have been registered with that group.
There is code in the appshare directory which demonstrates how to initialize a J3dLgBranchGroup, how to register listeners with it,
and how to implement those listeners. Check out lg3d-wonderland/src/classes/org/jdesktop/lg3d/wonderland/appshare/Gui.java,
especially the method initEventHandling. Note that several of the classes of the Wonderland event system are defined in the source
code for the lg3d-core java.net project. Go to the parent directory of lg3d-wonderland and do a cvs checkout lg3d-core to get this
source. | | | Proposals
|
|