You wait years for a virtual world viewer in the browser then suddenly they are everywhere. There has been a raft of browser-based 3D environment announcements over the past couple of weeks. Second Life trialled their cloud-rendering viewer, allowing you to drop into selected SL locations just using your browser and a suitably high speed net connection. Rezzable have been teasing the Web and LinkedIn communities with a 'coming very soon' browser-based viewer for OpenSim based on Unity 3D. Former Linden Lab employee Chris Collins company Tipodean Technologies made a similar announcement of their Canvas viewer for Second Life and OpenSim (licensed from IBM) again based on Unity 3D. The high fidelity virtual environments of Blue Mars, such as the business focussed virtual district of OnLand, will soon be available in a browser using server-side rendering and streaming. VastPark are also known to have done some work on a WebGL-based viewer for their virtual environments. Probably most impressive of all was the appearance two days ago of KataSpace built on the Sirikata virtual world server, using WebGL and requiring no plugins or downloads at all for cutting edge browsers.

On top of these browser-based viewers for existing virtual world platforms there are now a number of virtual environments specifically designed to run in the browser. ReactionGrid are already selling instances of their Jibe Unity-based virtual environment which runs happily in most browsers, SineWave have a platform that underpins the Indian virtual world GoJiyo amongst others. More specifically targetted at collaboration, Assemblive have a 3D unity-based meeting solution and Web.Alive runs in the browser via their own plugin. It seems inevitable that running your 3D immersive environment or world in a browser is going to happen. Why?

The GoJiyo virtual world in a browser

At first sight, providing a browser-based view into virtual environments seems logical, maybe essential. We increasingly do nearly everything from our browsers and needing to download a large separate client application to do anything just seems so 20th Century. Integration with web-based social networking such as Facebook is seen as essential. People want to be able to quickly 'try' things and having the 3D world appear in the browser clearly lowers the barriers for entry and so should drive up adoption. This is the Second Life web-viewer model - allow people to easily and quickly see what they are missing and join in. If what you want is to be able to attend an event or explore a gallery in 3D with your freinds then having the world in your browser makes sense. However, viewers based on rendering Second Life or OpenSim environments in a browser using Unity 3D or WebGL have substantial technical limitations due to the need to convert the protocols and geometry data that the normal viewer uses into something that can be used in the browser-based renderers (very insightful technical post here) - don't expect Unity based viewers for OpenSim or SL to look as good or perform as well as the full clients.

What about the growing 'serious' use of 3D spaces for online collaboration? At first glance the browser-based 3D space seems to have a lot going for it here too, especially if it is part of a web-based collaboration toolkit. Installing large client applications onto corporate desktops can require a lot of red tape and browser-based viewers can be easier to run through firewalls. However at this point we should start looking at why we're using a 3D space to collaborate at all. The key feature we want is immersion, that feeling of actually sharing a space with your collaborators. One way to help this sense of immersion is to make the 3D space fill your screen, to remove the distracting clutter that isn't shared with the other particpants. Ideally all UI clutter should be reduced or removed to let you really feel 'in' that space. A good model might be embedded video players - the best of these allow you to go full screen and the control bar hides or fades unless hovered over, allowing you to totally focus on the content, to be drawn into it. The ideal virtual environment viewer should operate like that too. Having the scene fullscreen also allows you to properly make out the all-important avatars of the other attendees, to see where they are looking and see any lip-sync or other animations if your platform supports these features. Solutions using the Unity browser plugin such as Jibe have a fullscreen mode, and if fullscreen is the most useful way to use these environments, the browser simply becomes a delivery mechanism for the software.

A rich collaborative meeting environment

There is a reasonable chance that you may be meeting or collaborating around some 2D content - a presentation, web page or documents. To maintain the immersion, the best place for this content I believe is in the 3D space - document and browser panels on the walls of the 3D space that you can point at and feel are properly shared. The ability to point at a presentation or document that you instinctively know is being shared with your colleagues is a unique feature of 3D environments that I've written about before. Dedicated clients such as the Blue Mars client or viewers based on the Second Life codebase will typically support display of rich media on surfaces in the 3D space, and some allow interaction with the displayed web pages and content. Since Cloud-rendering uses the full client, this would also work in a browser, although cloud-rendering has it's own issues for corporate adoption, both security concerns and the huge bandwidth requirements if more than a few of the collaborators happen to be in the same real location. Unity won't give us truly shared co-browsing of documents or web content, so my guess is that the Unity-based viewers won't support rich media on panels - they will support presentations if the content can be converted to images that can be glued onto a panel as a texture. It might be possible to create a plugin for Unity based on something like the Awesomium embeddable WebKit browser engine - Web.Alive have done this and are to my knowledge the only browser-based virtual environment right now that supports properly embedded web content. However, browser-based 3D meeting solutions like Assemblive typically expect that you won't embed your 2D media into the 3D space, but that the 3D space exists alongside the 2D content in the browser. For me that begins to break the immersive spell.

The other absolute essential for serious adoption of 3D collaboration spaces is high quality voice communication. Quite a few of the browser-based solutions support voice in some form - Web.Alive, Jibe, Assemblive and Canvas as well as the SineWave environments. However, I'm not aware that the voice integration extends to the immersion-enhancing lip-sync or voice gestures that some full 3D clients can support.

I'm excited by the work that's being done on enabling 3D spaces to be explored from the browser, and I certainly love the convenience of being able to just enter a name in a form on a web page and jump into a 3D space. Anything that increases visibility and adoption of these technologies I think is positive. Browser based viewers definitely have their place. However, with the exception of Web.Alive, support for rich media and tightly integrated voice in these environments is not yet good enough for many meeting and collaboration use cases and for that you may still need to resort to a full client.