Thoughts on OpenSim, interview on UgoTrade

Tish Shute very kindly asked me to do an interview for her excellent blog over on Ugotrade. In the interview I discuss where OpenSim fits in with the rest of the Web and particularly how some of the recent work i’ve been doing makes it a more viable platform for consuming data and services from websites.

You can find the interview here.

Web 2.0 to OpenSim made easy (JSON support added)

I’ve been tracking the progress of the OpenSim project for quite some time now and gradually delving deeper into the midst of this little open-source wonder.

For those of you who haven’t come across OpenSim, or have heard of it but haven’t investigated in too much detail; OpenSim is a Virtual Worlds platform built from the ground up which uses the Second Life protocol. Initially OpenSim has set out to emulate the current function of the Second Life servers. This means that you use the Second Life client to log onto an OpenSim server.

OpenSim has been built in a modular fashion, meaning that particular modules can be swapped in and out depending on the purpose of the Virtual World you wish to run. At the moment the modules are limited to things like… support for different databases, physics engines, scripting engines etc.

In the future I expect to see a whole raft of new modules ranging from the important but slightly mundane, authentication e.g. LDAP, OpenID etc. to plugins allowing different client types e.g. Flash, Unity etc. and modules for payment systems etc.

At the moment OpenSim is still in alpha, with stability a high priority. Already though it is becoming well fleshed out with building, avatar customization the ability to connect multiple sims (islands) together and a healthy base of scripting available enabling the majority of existing LSL scripts to run and also allowing c# and other languages to be used.

In addition to the LSL scripting ported from Second Life there are extra API calls that can be made that enable function such as loading images from the web directly onto objects in world. There is also a scripting API that lets you format text and images on objects.

As I have become more involved in OpenSim and got to learn how it works a bit more I thought it time to start contributing something towards the codebase. A long time ago in Second Life I created a translation device that listened to your conversation and sent the text out to Google to be translated, it then read out the translation in world.

There are many other services in Second Life that use this pattern of utilizing services around the Web. The LSL scripting language however is not good at handling the formats that most Web 2.0 APIs and services speak. In fact may SL gadgets and devices rely on custom web server scripts to speak to the outside service and cut down the data drastically before its passed back into SL where the gadget uses it. This is a major pain in the ass as any SL gadget creator will tell you.

One of the most common formats used by Web 2.0 service APIs (Google,Flickr, Yahoo etc.) is called JSON (or javascript object notation). JSON is a simple way of describing objects, however it can come in many shapes and sizes making it almost possible to consume directly in SL or OpenSim.

For that reason my first contribution to the OpenSim project is to implement a scripting function called osParseJSON, which should hopefully open the flood gates for people who want to make the most of the Web 2.0 services they use every day and get that data into OpenSim.

For now I’ve written a simple example, that uses Googles translation API. The example lets you translate between 23 different languages.

2D to 3D but with more Wow factor.

Ian has previously covered software and methods for taking 2d images to 3d models here on Eightbar. Michael Ackerbauer here at IBM just brought this research from Volker Blanz and Thomas Vetter to my attention. I think you’ll agree it’s pretty awesome. Now just to find out where I can get my hands on it… Googles Virtual World ?

After months and months of rumour about Google creating a virtual world has sprung up seemingly from nowhere, I caught wind of it via Al Kronos’ twitterings and went off to investigate.

It’s a cutesy looking ‘create your own room, invite your friends’ and embed on your website type world with a default set of content that can be expanded by splashing out more cash in the shop.

Of course step one is to create somewhere to congregate and it would be wrong not to stick the Eightbar flag straight in to claim a spot. So here’s the Eightbar desert island, see if you can get in.

I have to say its not quite what I was expecting from Google as the social room on a web page is quite a common concept already.

Sony PS3 Virtual World

OK I’m pulling this straight from 3pointD, but this could be a biggee. Sony showed this video at the Game Developers Conference, a PS3 based virtual world using the latest physics and graphics engines.

“Home” looks stunning and technology rich with VOIP, photo, music and video sharing, the user created content aspects may not be there but the social aspects certainly seem to be. The stated ability to meet friends and head off into multiplayer games is a powerful one indeed, as a result the environment will no doubt gain traction and may become a strong differentiating factor for the PS3.

Anyway take a look at the video on 3pointD and form your own opinion.

Everyware and nowhere baby thats where its at..

Apologies for the title but I just needed some way to work in the name of the book i’m reading, “Everyware” by Adam Greenfield. Adam manages to get through an impressive list of technology areas in the book, neatly knitting together a story of ubiquitous computing that encompasses the more obvious topics of RFID, Motes, Mesh Networks and Mobile Devices with Web Mashups, IPV6 and a plethora of everyday gadgets.

Adams vision of Everyware is one of almost effortless and unknowinging interactions with our surroundings, surrounding that are actually networked devices receiving and broadcasting information, which is collated, distributed and presented to users (I prefer participants) in intuitive, helpful and appropriate ways. It’s a nice vision although occasionally a little scary. He doesn’t present it as any kind of Utopian future but more one that we are almost unknowingly creating often in isolation through small advances here and there in different fields of technology. The book also covers a lot of ground on the social, moral and privacy aspects of such a future.

The theme struck a chord with me simply for the fact that we use a lot of these technologies here in the Emerging Tech group in Hursley (well we are emerging tech after all) . Motes, Zigbee enabled devices, RFID and other funky Gizmos can usually be found spilling out from under Dave Conway-Jones office door. (shhh don’t tell the inspectors! )

Dave and other folks like Andy Stanford-Clark (No you don’t have to have a double barrelled name to work here) are experts in hooking up this kit up to messaging technologies like MQTT so that we can take real world sensor inputs and make them available to any other devices or computers that have expressed an interest in these events. The beauty of MQTT is that the client is so small you can run it on just about any device making it both a publisher and a subscriber of information.

Any of this starting to sound like Everyware yet ? In fact in his book Adam talks about the concept of an Event Heap which is used to communicate events to other interested devices. This is almost exactly the same principle as the Publish Subscribe (pubsub) mechanism MQTT uses which makes it such and effective tool for communicating realtime events around any local or remotely distributed system.

If you make it into Hursley at any point then maybe you’ll get time to come and visit Dave’s Pervasive lab where you can see all manner of Everyware enabling technology in use.

SL Projects to watch out for

The community around Second life is building up and there are more and more skilled people joining in, as a result some pretty interesting projects are starting to emerge in the secondlife forums, here’s a heads up of a few that i think are especially interesting…

Second Life Protocol
First up there is the SL Protocol Reverse Engineering effort being run by Reuben Stein, this has fired up an interesting discussion thread on the SL forum, the initial posting sparked some serious debate with Reuben being accused of all sorts of things including illegal reverse engineering and opening up SL to a host of security problems. Luckily Phoenix Linden stepped in on behalf of the SL development team to clarify that Linden Labs were in support of the Reverse engineering effort providing it was good natured and not to the detriment of the community.

After this post a few more people emerged and admitted they had been looking at the protocol for some time, a few had actually written bots that work in SL (something that was not widely known before). In addition it was revealed that the entire protocol was described in a file present in everyones install directory and protected only by a simple bit of XOR encoding.

One of the most interesting things to come out of the project (or be uncovered by the project publicity) is the libsecondlife library project coded by Eddy Stryker which provides a C API for writing Secondlife clients, I’ll be having a play with this soon if i get time.

Offline Builder and .obj importer
The Offline builder is a Second life plugin written for the popular Blender an open source 3D editing tool. It gives you a panel in Blender that gives access to the primitives types and options that you have in SL itself.

This tool written by Jeffrey Gomez has tremendous potential, it’s in beta stage at the moment and the functionality to import the objects you create into SL isn’t built in yet, however the ability to build offline and import in will certainly lead to more ambitious projects and a greater audience of content creators.

For the time being Jeffrey has written a 3D model importer script which you can use to get objects inside SL.

Whats next …?

Offline scripting
Another amazingly useful bit of tooling would be a virtual machine to test Second Life scipts out in, I haven’t seen anybody having done this yet but please let me know if you have. I guess that some people are waiting until Linden Labs adopts Mono as thein game scripting engine.

SL offline chat client
I know that some people have already started looking at this one, but with the sudden amount of information available on the SL protocol it’s only a matter of time before IM clients and plugins start to appear.