In my September 12th blog post, 0.5 Preview is on the Way, I highlighted the new Wonderland feature called Capabilities. The first video on this page provides a more in-depth look at several of the capabilities that come with the Wonderland v0.5 Preview1 release. Since security is such an important topic, there is a separate video focused entirely on the security capability. Here’s a short description of the capabilities included in the video clips:
Audio Capabilities – Provides the ability to add recorded audio or an audio stream from the web to any object. You may also select from several options for playing the audio, including always, when an avatar is in proximity, or manually via a "Play" command on the right-click context menu.
Cone of Silence – This allows you to associate a sound-proof area – cone of silence – with any object. People outside can’t hear what’s being said inside, but you can opt for some amount of outside audio to penetrate the cone. In the nightly builds there is now a feature that allows you to visually see the bounding box (or sphere) of the cone of silence and adjust its size.
Container – This capability is used to group objects. Any object created while an avatar is within the bounds of a container will be associated with that container. All the objects in the container object can be moved as a group. Security properties applied to the parent object will also be inherited by all the other objects included in the container. You can use the World Hierarchy pane in the Cell Editor, which you’ll find in the Wonderland Tools menu, to view how objects are grouped. You can also drag and drop objects onto one another in the World Hierarchy pane to create and edit groups.
Portal – Using this capability, any object can be turned into a portal. Portals can take users to another location on the same server or to a location on a different server. Portals are part of the support for federation in 0.5, where Wonderland servers can be linked together as easily as web sites.
Security – This capability is used to individually protect objects in the world. Users can restrict what other users can see or do to objects they own by enabling or disabling view and modify access. Object-level security works in conjunction with another new Wonderland feature called Groups. You can create and edit groups using either the in-world Groups editor (select "Groups…" from the Edit menu) or the Group Editor in the Server Admin Console.
Some combinations of capabilities are particularly helpful. For example, combine a portal with the security capability so that only a subset of users can see the portal. This provides an extra level of protection for areas you wish to secure.
The security video also demonstrates how you can combine the container, cone-of-silence, and security capabilities to create a private, sound-proof space in the middle of a public area. By protecting the interior shell of a building, all users can see the exterior shell, but only authorized users may enter the private space. Even if unauthorized users attempt to enter the protected space by turning off collision, neither the interior of the space or the audio within that space will be seen or heard by the unauthorized person.
Write Your Own Capability
While we provide a few important capabilities, any developer may create a new capability. One capability that has already been contributed by a community member is a Clickable Link capability. When you apply this capability, you can enter a URL in the Clickable Link property sheet. After doing so, that URL will launch in an external browser window whenever a user clicks on the in-world object. If you want to experiment with this capability, you can download the module by right-clicking on the jar file link below and saving the file on your desktop:
To install it on your own server, simply navigate to the Manage Modules section of the Wonderland Server Admin console, scroll to the bottom of the page, and click the "Browse…" button. Once you locate the jar file you just saved, click on "Install." You should get a message that the module was successfully installed.
Jordan is writing a developer-level tutorial on how to write new capabilities, so that will be coming soon. In the mean time, you can use clickablelink module in the "unstable" section of the wonderland-modules workspace as an example if you’re inspired to try your hand at writing a new one. Here’s where you can find it in the source code repository: