Wednesday, December 3, 2008

Demo for MXP Virtual Reality Protocol

Interactive bubble bouncer demonstrates MXP in real interactive multiuser environment. MXP is an open distributed virtual environment protocol with some novel ideas builtin. Detailed MXP specification can be found from:

MXP is one candidate to become standard means of client to server communication and server to server interoperability. Typical applications would be systems like OpenSim, SecondLife, realXtend and their interoperation.

Interactive bubble bouncer demo client can be downloaded from:

Client requires modern 3d video card (shared profile 2.0), Microsoft Windows with .NET Framework 3.5 and XNA runtime. If you do not have them you can download them install time.

If these requirements are too much you can check the video:

Saturday, November 29, 2008

Metaverse eXchange Protocol (MXP) - A Practical Virtual Reality Protocol

We have been working closely with Ben Lindquist (, Ryan McDougall ( and Jon Watte ( to create a practical virtual reality protocol specification. Metaverse eXchange Protocol (MXP) is currently in 0.3 draft phase and a C# reference implementation exists. Detailed specification, source codes and binaries can be found from the following address:

MXP is a UDP binary protocol offering structured messages for distributed 3d simulations. MXP has well defined scope but extendability and flexibility has not been forgotten. It carries as payload a genre specific protocol which is used to communicate for example animation sequences and interactions. MXP has well defined domain model and use cases which are good read for those who are interested in this area of expertice. MXP leverages novel ideas enabling unpreceded level of virtual environment scalability and interoperability.

Current proof of concept implementation demonstrates 100 moving objects with client bandwidth use of 75 kbps (bits per second) without optimized version of movement message. Optimized movement messages will theoretically offer 15 kbps bandwidth for 100 objects and 1.5Mbps for 10 000 objects.

MXP supports bubble cloud concept on both client to server and server to server messaging. Bubble cloud concept consists of linked spherical server bubbles which may overlap and be sized and arranged in any 3 dimensional configuration. Clients roam between bubbles seemlessly in analogy with mobile devices and base stations. Bubbles exchange information about objects they contain so that clients connected to one bubble observe objects from the neighbouring bubbles as well. Any client may inject objects to the bubble in the boundaries of access rights.

We are looking for more people willing to join this community effort and projects like realXtend and OpenSim which are able to give us requirements and use cases for the specification work. More details can be found from the following address:

Sunday, October 19, 2008

Improving Second Life and OpenSim Grid Configuration

Second Life, OpenSim and many other virtual environment implementations apply simple grid configuration consisting of single layer of cubes. This is the most simple way to divide virtual space to separate simulation nodes in other words to do spatial load balancing:

While this configuration is simple and effective it is possible to improve it significantly to provide better performance, redundancy and local load balancing. In redundant grid one simulation node may shutdown and the grid remains accessible in that location. Local load balancing means that the same space is simulated by several simulations which exchange state information. One such configuration is dual cubic lattice:The following page contains example calculation estimating that redundant dual cubic lattice provides 25% more objects and 100% more clients with the same bandwidth usage and same maximum object size as simple cubic lattice. The example assumes that network capacity is the limiting performance factor:

Advanced Grid Configurations at

25% more objects is not that much but double the amount of clients and simulation redundancy are remarkable improvements.

Sunday, October 5, 2008

OpenSim Starts a New Era?

Thanks to Chris Thorne I found the OpenSim project. There is a great promise in this project as there are major corporations behind it and they all have ambitious plans for the future of virtual environments. It is an open source virtual world server written with C#. The server functions with the open source SecondLife client and there are tens of grids in the grid list. Grid is a synonym for cluster or network of servers forming together a virtual world. I want to contribute to the effort myself with a node or two. Now now, which grid to choose?

The functional clients seem to be branches from the open source SecondLife client and as such have the same glitches and usability problems. It would be great to see a bravely redesigned client with good usability and smooth functionality. SecondLife and the OpenSim clients remind me of the good old rule: "Prefer quality over quantity".

Why is it that still even now after all these years the avatar in SecondLife moon walks like a zombie. Creative directors need to appreciate how important immersion is in 3d environments and how fragile it is.

Thursday, September 25, 2008

Open Themes - Key to Coherent Media

There are great amount of 3d models, sounds and music available as open source in the Internet. Building a good user experience from these incoherent sources is problematic. Open themes: color packs, style guides and examples would be an important catalyst for open virtual reality development. Once a theme exist the open media could be themed accordingly to become an open media pack with unified style and standard media formats like Collada. This would inspire more artists and developers to participate in the effort and give open virtual environments more polished and professional look. If you find such theme projects please let me know.

Tuesday, September 23, 2008

Virtual Brought to Real World

Polygon Playground is an innovative way to bring virtual phenomenon to real world for children and adults to play with. The video is worth watching. Reminds me of science fiction movies.

Thursday, September 18, 2008

Vision, Theory, Standards and Engineering

The trend has been visible in many areas of computing...

A great vision has been evolved by theorists and scholars to in depth model. The model albeit being detailed is not practical and subsequent standard have the same nature. Which brings us to the standard compliant implementations that do not work, implementations that do work but are nothing alike the standard and finally the implementations that claim to implement the standards but actually provide inadequate standard interfaces and actual operation is based on proprietary interfaces.

After this the path is forked. Some standards embrace solutions from the working implementations and fulfill their potential. Others do not evolve but stubbornly rely on the original theoretical models and actually hinder the development instead of accelerating it.

My current observation is that unfortunately the latter is the case with virtual reality related standards. It is quite obvious that there are very well functioning implementations like World of Warcraft and other massively multiplayer online role playing games. The existing commercial and non commercial social 3d worlds in contrast are painfully cumbersome.

The worst engineering misconception is that virtual reality is web in 3d. That alone brings many misleading ideas to the table. For example dynamic object loading which is visible to the user breaks the immersion. Another good example is that 3d protocols and model formats are TCP and XML based. 3d has more data and binary formats are practical in model presentations. At minimum XML ought to be encoded to binary format when larger models are in question. Grammar could be the same but encoding more efficient. Virtual reality has dynamics which do not exist in web and again practical engineering solution is to use UDP based messaging. Communicating the dynamics requires massive amount of messaging between client and server creating encoding performance bottlenecks if XML is used.

It is high time that the standards are re-evaluated from engineering perspective and solutions from MMORG genre are adopted to standards. There is no need to worry about backwards compatibility as long as there are no well functioning implementations. I would also like to question if competing standards are actually a bad thing. Little competition has always been a good thing. It forces the opponents to go for the best possible result they can achieve.

We have the technology and we have the knowledge today. We only need to ask the right questions. What is the minimal standard required to realize virtual environments? The first rule of software design is to solve the known problem with minimal complexity. Same principle should be applied to standards.

Future Wikia Vision about Virtual Reality

I recommended this Future Wikia article for anybody interested in virtual reality. If you think you have a vision yourself then contributing to this article is definitely a way to get your voice heard:

Tuesday, September 9, 2008

Popular Open Source 3D Engine

When I started to talk about the open source 3D engines one of my friends pointed out that Ogre3D should not be forgotten:

Ogre3D is one of the most popular open source engines and has many stunningly beautiful rendering features.

Monday, September 8, 2008

Development in the Open Source SceneGraph Arena

Thanks to the VR news I stumbled on OpenSceneGraph which looks like a solid c++ based open source 3d engine with several applications and active development:

One example of the applications:

OpenSceneGraph may turn out to be the future standard for open source 3d. Solid open source technology combined with solid standard will make the basis for global integrated virtual environments.

Sunday, September 7, 2008

Following News about Virtual Reality

I recommend following News Predator and especially the Virtual Reality category for latest information in the VR field. The nice thing is that if you happen to know additional news feeds to the ones listed at Sources page you can always submit those yourself for others to enjoy.

The site also includes various other categories but VR category seems especially useful as there are not many if any good VR aggregate feeds about.