Towards Wonderland 0.5

December 1, 2008

Wonderland 0.5 will be the next major release of the Wonderland toolkit.  Unlike previous releases, it is a complete rewrite of the Wonderland system.  The focus for 0.5 is on improving the graphics, extensibility, and scalability of the platform. We are working hard to get this new technology to our developers as soon as possible, so they can start experimenting with the APIs and porting their applications. We plan to release the first developer version ("dev1") of Wonderland 0.5 in the next few weeks.  This early release will have very limited functionality, suitable mainly for prototyping specific virtual world features using the new APIs.  The dev1 version will be followed by a series of developer and early-access releases, and culminating with a fully functional end-user release in the first half of 2009.

For a quick preview of Wonderland 0.5, see parts 7 and 8 of the Wonderland technical overview video.  Read on for a look at how we got here, and details about our current status and future plans.


When we started the Wonderland project almost two years ago, we had a simple goal: to create the best possible virtual world for business collaboration.  While everyone agreed there was a need, at the time we had no idea what the right solution would look like (it’s OK, we work in a research lab).  But we had to start somewhere.  We were all Java programmers, so that seemed like a natural choice.  We also knew this problem was too big for our team to solve alone, so we wanted to build something open source with community support from the very beginning.

In a four-month sprint we put together the basic architecture of Wonderland: a Java3D based world, immersive audio, shared applications, and a Darkstar based server.  At JavaOne 2007 we demoed a system that had started working only two days before the show.  Then we spent the next year fleshing out our ideas and stabilizing the system for the Wonderland 0.4 release.

Wonderland 0.5 architectureFast-forward to now. We’ve been amazed by the uptake of Wonderland, in both business and education.  But we’ve been slowed down by our architecture, which was pretty much the same one we built for that first JavaOne demo.  Several months ago, we decided to make a change. Rather than try to fix the existing version, we would start over based on all the lessons we learned as well as the great feedback we’ve gotten from our community.

We knew up front this wasn’t the fastest or easiest choice.  But over the last few weeks, as we’ve started to assemble some of the major components of our new design back into a virtual world, we can confirm that it was the right choice.

As always, we are trying to be as open and transparent as possible with our development.  We will continue to do all our work in our open source community, so you will be able to follow along and contribute through the whole development process.  Just be warned that what we have now is the foundation of a virtual world, but it is still very much under construction.  Don’t be surprised if your avatar looks like a teapot, or if you run into bugs or unimplemented interfaces. To see the latest information about the release as it progresses, go to our 0.5 documentation page:

Now that we are well on our way to a 0.5 release, I wanted to answer some of the biggest questions people have about it: 

What are the goals for 0.5?

We’ve been joking that the answer to any question about Wonderland is that it will be fixed in 0.5.  While we won’t be able to do everything, we have an ambitious set of goals for our next major release:

  • Significantly improve the look of Wonderland by upgrading the core graphics engine, avatar system and HUD.
  • Redesign the Wonderland user interface to address usability problems.
  • Focus on extensibility with a new module system and stable, documented APIs.
  • Increase performance to allow significantly more people to use a single virtual space.
  • Support federation, allowing users to seamlessly move between Wonderland worlds.
  • Add management tools and interfaces to improve the setup experience for Wonderland servers.
  • Implement a full-featured and robust security system.

Wonderland 0.5 avatar

To support these goals, we’ve been working on a ton of new features.  We’ve moved our core graphics to be based on the more modern jMonkeyEngine.  We’ve reimplemented avatars from scratch.  We’ve added support for the COLLADA graphics format, which gives us access to new tools like Softimage and Sketchup.  We’ve started a new project to improve the performance of graphics and avatars (more about that soon).  We’ve built a module and server management system based on embedded Glassfish.  We’ve modularized the shared application code, to make it easier to add new kinds of applications, including Swing apps.  And we have rearchitected the server for improved scalability and reliability.

All this is just the beginning. Now that these foundation technologies are starting to come together, we can get back to our original goal: figuring out how to turn all of this into the best possible collaboration environment.

Is there a plan and a schedule?

Yes and mostly.  We have divided the development up into two phases.  The first phase, known as the "dev" releases, is focused on defining and implementing the core Wonderland APIs.  The goal is to get the new architecture and interfaces into the hands of developers as soon as possible.  The core APIs for new graphics, modules, audio, and application sharing are already defined and mostly implemented.  Others like the HUD and security APIs are coming soon.  But many of the features of the existing Wonderland world, like the PDF viewer, X11 apps, and the virtual telephone are not yet started.  The "dev1" release is targeted around early December, and we plan to have updated dev releases every few weeks after that.  You can see the full plan here.

Over the first half of next year, we will focus on turning the developer release into an end-user release.  This phase will be focused on the entire Wonderland experience, including the in-world user interface, in-world applications, and performance, as well as the tools for creating artwork, avatars and scripts.  We do not have a specific schedule for this phase yet.

Where are we today?

As I said earlier, what we have now have the building blocks for a virtual world, but not the world itself. We recently completed our first milestone, the basic ability add custom cells.  We are finishing up the dev1 release, with integrated audio, improved module support and basic tutorials. While it is not enabled by default, we also have the beginning of the new avatar system implemented.

We don’t have a whole lot for end users at this point, but there are some interesting resources for developers.  We have posted several design documents, APIs and specifications on the 0.5 technical page.  For those who like to live on the bleeding edge, we have some of the first tutorials and articles available now, which show you how build and run Wonderland as well as how to build a simple custom cell.

What can I do to help?

If you are a developer, there are lots of ways you can help us:

  • Read a document and post comments on the forum
  • Create a proposal and link to it in the proposals section of the wiki
  • Read and comment on the API javadocs
  • Try out and comment on the tutorials

Once we have the core of the system up and running, we also hope to see people developing and contributing modules to extend the Wonderland core.  We even have a small feature wishlist and a list of projects suitable for students for those who want to contribute but don’t know where to start.

If you are an end user, think about how you would want to tailor Wonderland for your specific use. Post ideas and mockups in the proposals or feature wishlist sections, or start a discussion on the forum. Of course we won’t be able to implement every idea, but you may inspire someone else in the community to try it out.

We’ll see you in Wonderland 0.5!


%d bloggers like this: