Who, What, Why?
Enterprise uses of Immersive Environments and Virtual World technology for collaboration. As CTO of vComm Solutions and co-founder of Flying Island I'm particularly interested in the ways that collaborative 3D immersive environments might help bring dispersed teams together

Neil Canham
Year Archive
User name:
Remember me 
This Month
December 2010
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
View Article  Virtual Worlds in the Browser - Spoiled for Choice?
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.    more »
View Article  Second Life running in a Browser
It's here - the much vaunted Second Life running in a browser - using cloud rendering / streaming service Gaikai. Here's a video of my first use, in Chrome. Worked remarkably smoothly, except that changing appearance didn't always respond to my clicks and even then sometimes just didn't work. First place I was dropped was not very interesting and empty (see video). However, it works - from the timer it seems you get an hour to explore select destinations, during which you can obviously sign up at any point for a full account. This is exactly as needed a way to drop into events and places of interest for 'a quick look'. Cloud rendering is expensive,so the one hour limit seems reasonable, given that there is as yet no measure of how many 'guests' will convert into real accounts - which has to be the ambition - there's no way to participate in the economy of SL as a guest.

If you want to try simply go to http://interest.secondlife.com/beta and wait. The only disconcerting thing is that you don't get to choose anything at all before being dropped in world, so I started as a girl. This is not quite purist "one click and you are in" - they are capturing your email so they can pester you to sign up later I guess.Normal 'ALT' camera controls work, and work very smoothly. I'm now a lot more interested in cloud rendering than I was 15 minutes ago.

I've spent a bit more time with this now. Seems that going back in with the same email address resets the 60 minute timer, so right now you could effectively keep coming back as a guest as often as you like. Contrary to first reports, it is a flash based viewer, at least in Chrome. There are 30 destinations, very varied. Some are quite busy - just depends what timezone they are in and whether there is actually an event on at the time. It's still SL though, which is good and bad. The second time I jumped in, I landed in a shop underneath someone else. I could hear music, but there was nothing to indicate to me that actually this was also a concert venue and I needed to walk through the shop to the concert. Concert was busy - and therefore laggy - someone did eventually welcome me, and I typed 'thanks' - and the typing animation started 20 seconds later, and never stopped.

I then jumped to a Caribbean destination and the first to things that rezzed right next to me were pose balls labelled Massage M and Massage F. All quite disconcerting and confusing for new users.

This is a huge step for Second Life and virtual worlds in general. For me the jury is out on the business model - given the costs of cloud rendering - how do you pay for it? A clue is that Gaikai describe themselves as a game advertising service, not a cloud rendering service for games. Having tons of people connected for long periods 'really' playing would require them to pay a substantial subscription. Still, it seems the viewer technology is ready to bring lots of people into Second Life. But the Second Life world itself might not be.
View Article  OpenSim - How many people can you handle?
Exactly how many people can a region in OpenSim support? How many people could meet for business meetings or presentations in an OpenSim region? Allow me to illustrate with this piece of string and a tape measure. There are unfortunately many variables to consider, so much so that it is almost impossible to give any hard and fast rules. For example - how complex is the 3D 'static' environment (how many prims are there?), how many scripts are running in active objects, how many event listeners are running in those scripts? What will the people be doing - if they are constantly moving about and even crossing region boundaries, there will be a lot more load on the server to deliver new 3D data and textures whereas if they are simply sat in a chair in an office, there will be almost no strain, the only data being sent around typically being where the avatar is looking and maybe gestures (and of course voice traffic). Are the users interacting with in-world tools and obects such as display panels, noteboards or camera control objects? Finally we have infrastructure variables - what CPU is being used, how many cores, how much memory and what operating system (Windows and hence .NET or linux and Mono.)

All of this uncertainty is fine and accepted if your users are pioneers of virtual worlds, creating social spaces, playing with the technology, enjoying the feeling of being into something at the start. It may even be acceptable or at least accepted by educators who may be willing to deal with the uncertainty to get the well documented educational gains and low costs of OpenSim. But if you expect business users to pay to use a service based on OpenSim, you need some better answers.

The only real way to find out how many avatars your environment can handle is to log lots of folk into it and see what happens. There's nothing quite the same as a bunch of real 3D clients connected from a range of IP addresses all downloading textures and receiving updates. However, this may not be practical if you don't have a huge team of people to hand. You can try running multiple clients yourself, but a full 3D viewer such as Imprudence or SL Viewer 2 is a heavy weight beast, even the best of PCs may struggle with more than a few client instances. Another option is a lightweight non-graphical viewer such as Radegast. This allows you to log in, interact with objects and move about but consumes about a third the resources allowing you to run many more clients on each PC. Since it isn't downloading the textures this most closely resembles the scenario of users staying roughly in one place, as they might for a business meeting. The next option if you are technically adept is to use libopenmv - the C# client library that allows you to write your own clients that can connect to OpenSim and SecondLife (and that underpins Radegast and OpenSim itself). This comes with an example app 'TestClient' which provides the ability to log an AV in and do some simple things. From that starting point, you could go on to automate the process of logging in many accounts and log the resulting stats from the sim. You could also automate some typical actions such as sitting on chairs, changing presentation slides and so on.

At the end of this process you will have some numbers. Lets say that you find that on current hardware in the environment you plan to use you start hitting unacceptable performace with 25 users logged in. What to do? If your customer only needs a maximum of 20 users you can go back to the couch, but we need an option for when they come back and say "We love it, can we have 100 people meeting at once?". If those 100 people want to meet in the same space and all interact, then with OpenSim you may have a problem right now. However, if what you want is simply to have more people meeting in small groups, campus-like then here are two immediate options:

1. Create a grid - connect 4 regions each of which can support 25 users, ensure that when launching a meeting users are routed to a sim with capacity
2. Create stand alone regions - again with intelligent routing

Currently there is no mechanism in OpenSim for limiting the number of users who can attempt to log into a region - at some point the experience will begin to degrade for users already logged in as more people join, then at some point new users may find they can't log in or they can but everything has ground to a halt. This assumes that the route in is directly from the client. It would be nice if there was a configurable 'max_users' setting, resulting in a nice friendly eror messages for connections above that number, maybe I should write one. However, if you launch the viewer from your own web-client as we do then you have more options. Before starting the viewer, you could check how many users are logged in, and change the loginUri dynamically to another region in the grid. Or you could exploit a room reservation system - limit the number of users that can use each of several meeting spaces, and ensure that the total can't exceed your known limit (say 25, 40, whatever your load testing revealed) - then effectively the reservation system is looking after the limit for you. Once all the spaces in the first region are booked, people will automatically only have the option of reserving spaces in the second region. They won't even need to know that these spaces are in different regions if the spaces are reserved by name - "Meeting Room 1" etc. Even better, these regions could be spawned on demand since the reservation system knows in advance how they are needed and can fire them up (say on Amazon EC2) just before they are required.

Do you have experience with opensim hosting? How many avatars can you comfortably host on a region? Let me know, if enough people respond I'll try to summarise the results.
View Article  Guacamole - Painless Desktop Sharing for Browsers, SL and soon OpenSim
There are two ways of looking at what I'm going to describe in this article. One is the sober, enterprise collaboration value-add of a stunning simple piece of technology. The other is "Woah dude, that's awesome cool!" - which one will you be?

Desktop sharing is one of the staples of online collaboration - being able to bring up something, be it a document, a presentation, or a new application that you want to demo, preferably whilst talking to your colaborators on the phone or over VoIP is highly useful. VNC has long been one of the ways to do this, run a small server process on your machine and clients on the others, voila the clients can all see your desktop. Lately a number of flash or java based alternatives have appeared, as part of online collaboration suites such as WebEx and DimDim. Some of these have been used effectively in the 3D immersive environments of Second Life thanks to the Shared Media support that comes with Viewer 2. In all cases though these things require you to have an account, sometimes paid, and to rely on external services and plugins. Wouldn't it be nice if you could just ask your viewers to point their browsers at your machine and magically see it? Well now thanks to a remarkable little piece of open source software called Guacamole, you can!

Guacamole is a small java web application that you install on the same machine that your VNC server is running on. It talks to the VNC server and renders HTML5 from it. So the viewer connects their browser to the web app running on your server and as long as the browser is HTML5-capable they get desktop sharing. Just like that, no plugins at the client end. The Shared Media in Second Life and now being tested in OpenSim is HTML5-capable, so this means simple desktop sharing in our 3D environments.

Here's a quick video - the second half is the obligatory 'world-within-world' demo of logging into OpenSim using a panel that is on the wall in Second Life.

This is a great way to do demos and training, everyone can access and interact with the desktop assuming that the Shared Media is set up to allow that. Also, it is possible to have dedicated 'virtual' desktops for your virtual office by running your desktop in the cloud (EC2 or some VPS) and adding Guacamole to it. I love it!
View Article  Whisper - New Voice Solution for OpenSim
Today vComm Solutions of Switzerland have released Whisper, a high quality voice solution for OpenSim based on the popular Mumble open source VoIP client. The key feature of this solution is that it enables avatar lip sync and speaker indication to work correctly, in addition to providing very stable, high quality voice. The code will be released as open source soon but in the meantime the client is being provided as a windows download that can be tested against a demo OSGrid region, kindly provided by Snoopy Pfeffer of Dreamland Metaverse.

Recently there has been a huge amount of interest in OpenSim, as an Open Source and low cost alternative to the kind of virtual world environments provided by Second Life. The server side of OpenSim is an open source framework for creating virtual environments, but crucially it supports the protocols used by the Second Life viewer, and the many third party viewers based on it, as well as supporting much of the same scripting functionality in the 3D environments. This has allowed low cost grids and stand-alone 3D regions to spring up as an attractive alternative to Second Life for educators and businesses wanting to explore 3D environments for collaboration. However, voice has been one of the few areas in which OpenSim suffered in comparison with Second Life. The voice-over-IP that is integrated in Second Life provides high quality spatial sound and is hooked into the viewer to give indication of who is speaking, body animations and a crude form of mouth movement or lip sync during speech. The voice solution in Second Life relies upon Vivox, and the client portion is managed by the SLVoice executable, separate to the main Second Life viewer process. SLVoice and the viewer then communicate with each other to provide the various speech related features. Ideally OpenSim servers would simply provide Vivox-based voice, but Vivox typically requires tens of thousands of licenses to be purchased, which is of no use to the majority of OpenSim deployments. There has been talk of a small scale type of licensing for Vivox but nothing has so far come of it as far as I know. Additionally, an open source virtual world server ideally should have an open source voice component to go with it!

Mumble is an open souce 'voice chat application for groups' popular for online gaming, capable of providing high quality spatial audio via it's server component Murmur. The Whisper solution from vComm was the idea of Volker Gaessler, founder of vComm, and works by replacing the SLVoice executable with a Mumble client that looks exactly the same to the viewer process. This new SLVoice executable then communicates with an instance of Murmur associated with the OpenSim region. If you need to use the same viewer with Second Life or with an open sim region that requires the original SLVoice, a script is provided to switch the old executable back. Management of the voice server is via an OpenSim region module that handles registering voice parcels and users, communicating with Murmur via the ICE remote procedure call mechanism.

So how does Whisper perform in practice? At Flying Island we've been trialling Whisper in OpenSim as part of our Roobaab collaboration product, and we've been very impressed. Currently the sound is not spatial and is auto-levelled, so wherever you are on the land parcel you will hear your colleagues with the same volume. For typical meeting scenarios, this is actually fine - we are able to drop straight into meetings and begin talking with no need to adjust sound volumes, none of the eternal fiddling with settings that seemed to plague most SL voice meetings. The quality is superb, and we've had no real issues. I can say that for our use case Whisper has really made a huge difference and I have no hesitation in using it with clients, integrated into Roobaab.

vComm plan to continue development to add the option of spatial sound, private voice calls in addition to the current parcel-wide voice, and compatibility with the modified voice element in Linden Labs 'Viewer 2'. There are also plans to automate the switch from mumble based voice to vivox or freeswitch. Right now you can try Whisper for yourself using instructions here and logging into the OSGrid sim "Mumble Sandbox" - you'll need an account on OSGrid of course, which are free if you don't already have one.

This is a big step forward for OpenSim adoption - congratulations to Volker and Snoopy and everyone involved.
View Article  Why virtual worlds shouldn't chase the shiny

One of the things that environments that use the Second Life family of virtual world viewers are often criticised for is poor graphics, compared to the latest games (or even games from 5 or 6 years ago).  Usually this is defended in several ways - that the content is user generated, so isn't optimsed the way that game art is, that just dropping into a random space in a grid like Second Life or Reaction Grid isn't a fair test since again it's user generated, and there are beautiful and breath-taking places if you know where to look, that the graphics artefacts have to be streamed and aren't supplied preloaded on a DVD and so on.  All of this is true.   It is also true that the graphical environments rendered by games are typically richer and more detailed than even the best Second Life and OpenSim environments, if you have the necessary hardware in the form of a modern console or graphics card.  So it might seem natural to respond by striving to improve the graphical quality, to compete.  The futility of this approach was recently highlighted starkly during an 'office hours' discussion from a staffer at Linden Labs, the makers of Second Life.  They posed the question "what percentage of residents (users) would you all guess have 'class 0' (basic Intel motherboard) graphics hardware?". Various guesses were proffered before the answer gathered from Lindens own connection data was revealed - a massive 60%.  This is across the board as a percentage of all users.  If you are in a more constrained environment, such as a corporate office environment, my experience is the figure would be substantially higher. 

So aiming for graphical richness will have the effect of creating wonderful eye-candy that an ever decreasing set of people can access.  The Blue Mars virtual world is a case in point - based on the Crysis graphics engine, it requires high performance hardware to participate.  This approach also sets a precedent for constantly trying to keep up with the latest graphics developments which in turn keeps the potential audience low.  In an ideal world the graphics would degrade gracefully across all platforms, giving a cutting edge look for the best hardware but still run on the low end.  The challenge here is in the content generation, since to do that would require users producing content at a variety of levels of detail (this will be required  to some extent in the forthcoming 'mesh imports').

Now I am aware that I'm ignoring one important sector of virtual world users - and it's one of the few strong growth areas of Second Life - it's use as a platform for machinima. I think the approach here should be the one that is already being taken - most people serious about creating machinima in SL use a customised viewer with improved lighting and shadows that needs some serious computing horsepower to run effectively. In any case, if the ambition is to increase the number of users of virtual worlds significantly and make such environments a realistic, desirable choice for collaborating and social interaction, we shouldn't be catering specifically for a narrow minority (leaving aside the undeniably positive effect that great looking machinima clearly have). But all things considered, that 60% is timely reminder that to produce social or collaborative environments we should be targeting the mainstream and not the elite if we want to succeed.  Graphics alone do not make an environment engaging or immersive, something Nintendo understood very well with the Wii and DS.  Content and ease of interaction are the key.

(This article is based on one I wrote originally for Flying Island)

    follow me on Twitter
    Recent Visitors
    antojames - Tue 13 Mar 2012 10:04 GMT 
    Ascetshoisilt - Thu 08 Mar 2012 06:23 GMT 
    keithferrer - Wed 15 Feb 2012 04:12 GMT 
    june - Thu 09 Feb 2012 06:46 GMT 
    Rite - Tue 07 Feb 2012 06:36 GMT