This week I've had a chance to try 'Canvas', the Unity 3D based viewer for OpenSim and SecondLife. The technology for the viewer has been licensed from IBM by Chris Collins, formerly General Manager For Enterprise at Linden Lab. Chris hopes that it will increase adoption of OpenSim and SecondLife for corporate and education sectors where the demands of the regular 'full-fat' client may be too much for the IT infrastructure. The current release is described as 'early access' or 'preview release' and access to the viewer is by request via the Tipodean website The 'preview release' nature of the product must be born in mind in what follows - the intention is to provide a realistic view of what Canvas can currently do for the benefit of those not able to access it themselves.

An OpenSim office space rendered in Firefox using Canvas

To launch the viewer, you head over to a page on the Tipodean site and enter the userid and password Chris provides. This then allows you to enter your avatar login details, along with the region and location you wish to log in to. If you plan to log in to Second Life then just press login. If you want to head to an OpenSim location you will also need to enter the login uri for your region server. I found that to enable the login button I had to close the first copy of the login dialog that appeared and reopen it from the 'login' link.

I first headed to a region in Second Life. To understand what happens on login you need to know a little about what is going on under the covers. In order for prims, terrain and avatars to be rendered by the Unity plugin, everything has to be transformed from the data that the target region server sends out. So Tipodeans servers are intercepting all the 3D data from the Second Life or OpenSim servers, transforming it and sending it to your browser, a process they call 'web-rezzing' The documentation for Canvas warns that this is a slow process - and it certainly was. After two hours of being logged in, my target region was still not fully loaded. There are many variables involved here, and I suspect there's heavy interest in Canvas and hence heavy load on the servers doing the transformation. However, the resulting textures and transformed geometry data is cached on the Tipodean servers meaning that rezzing a second time, or for subsequent avatars, is much quicker.

Second Life - not bad

Once rezzed, things look very roughly as they should. There are currently some texture bugs - some textures were misalinged or incorrectly scaled and animated textures seemed not to be animated. In addition sculpties aren't supported so many of the more organic shapes in particular will look entirely wrong. One thing that is very remarkable is that the avatar clothing is transfered across but as yet no attachments such as hair, shoes or prim clothing pieces. Also right now the avatar shape is built into Canvas and not downloaded. Other differences that you will notice are the sky - this is a prefixed Canvas sky and the terrain, although it's shape is correctly downloaded, the texture applied is again hardcoded in Canvas.

Same scene in a regular viewer and Canvas

I logged another avatar in to the same region using the normal Second Life viewer. This avatar was immediately visible in Canvas and eventually (after several minutes) their clothes updated to the correct look. However, from the perspective of the new avatar in the full viewer, the Canvas-based avatar was always just a cloud and never appeared properly. It also seemed that scripted objects were working (not suprising since the scripts run on the server) but if they moved or updated any objects those updates weren't visible in the Canvas viewer. For example, if a door was clicked in Canvas it was shown as opening in the regular viewer but never opened in Canvas. I saw no evidence of movement or updating of objects in the Canvas viewer when logged into Second Life. Movement of the avatar was also quite erratic and not at all smooth when trying to walk or fly around.

OpenSim Promising

My experience in OpenSim was substantially better. I logged into my region and even on first visit the buildings and landscape began to appear much more quickly than they had in SL. Even so, it probably took an hour at least for all textures and geometry data to be available. Clearly if you plan to use Canvas with a group, you would need to log in well in advance to ensure a faster experience for the others in the group. Since we use very few sculpties in our OpenSim builds, the result was really very good, it looked a lot as it should. Movement was generally more smooth than it had been in SL and some scripted, touch-based objects worked, and our scripted chairs moved as expected.

In the video below you will see the process of logging in to our OpenSim region with Canvas, the sim having previously been cached. There is a strange effect where texture draw distance seems to be less than the geometry draw distance, so you can see things further away but they have plain yellow or wooden or white texures. Towards the end of the video you will see an attempt to use a scripted sit which comically sends me up in the air, and also my attempt to use a scripted noteboard which reveals a bug in the way touch position is being sent through to the server. You'll also see the nice 'zoom-in and square up' button used to bring the noteboard full screen - a very useful feature. We also have panels that normally display web pages using the parcel-media facilities in OpenSim but these don't currently work in Canvas

Exploring OpenSim in Firefox using Canvas

I tried building in the regular viewer in OpenSim to see if the results appeared in Canvas - and they did, however applying textures didn't seem to work, the new prim changed to white when the texture was applied and never took on the chosen texture.

Clearly it is early days for Canvas. A number of things work well - text chat seems to work perfectly both from other avatars and scripted objects, the map loads up and avatars appear correctly on it. Geometry for normal prim-based builds seems perfect. Many textures load up correctly as do wearables. Touch events are sent through to the server. Whether it succeeds in being the lightweight viewer that it is described as is open to question - running in Firefox (Chrome and IE not currently supported) memory use reported by Windows Vista levelled out at just under 500k which is more than most regular SL and OpenSim viewers. However, there is a lot of promise, especially for OpenSim and I hope development continues - if all the issues can be ironed out it may be a way for people to join their colleagues when they otherwise may not have been able to.

Thanks to Chris Collins of Tipodean for giving me early access