Anarkik eightbar

Ann Marie Shillito from Anarkik 3D visited the eightbar crowd in Hursley (thanks to epred for inviting a bunch of us hangers-on along!).

Anarkik are involved with haptic input devices and have developed some really nice software which enables users to interact with virtual worlds and 3D modelling tools using a consumer-priced haptic controller which can be connected to a PC via USB.

The demo blew us away. First we had a look at how the controller could be used to drive an avatar in a virtual world (in this case, OpenSim). It’s a considerably more natural way to navigate than the keyboard and mouse setup that is provided with most 3D worlds and should lead to a lot more accessibility into these environments. The part that really impressed us was the capability of driving a CAD-like tool called Cre8 – a free download from Anarkik, for people who have the controller – to easily create three-dimensional objects by physical manipulation… both inside and out. I remember hacking around with an old 3D package called Euclid on my RISC OS machine back in the early 90s and it was a nightmare – this was sheer joy. Watch the video to see various people playing around with the haptic controller 🙂

Just to explain what is going on in the video, as it may not be entirely clear! The demos use a Novint Falcon gaming controller. To quote Anarkik, it is “like a small grounded ‘robot’ and provides the ‘force feedback’ that gives the uncanny sense of touching a virtual object. This device replaces the mouse and also provides more natural and coherent movement in 3 dimensions.” At the start, several of us have a go with the controller to drive an avatar around an OpenSim island running on the local machine, using Anarkik’s software. Around the middle of the video, we switch to using the Cre8 tool to do some simple modelling. In particular, we change the surface hardness of a sphere (where it becomes more or less soft to the touch); and then go inside the sphere and extrude the shape by pulling the controller around. Finally, there’s a brief look at some fabricated items modelled using the same software.

Anarkik also have a community called Anarkik Angels where they are looking for supporters to help crowdsource and develop the project.

[the one minor disappointment for me personally was the current lack of Mac OS X support – Windows-only at the moment – and the websites aren’t terribly Mac-friendly either. Guess it’s time to buy a Windows box just for this stuff, it’s awesome!]

All of this haptic craziness hit a lot of our interest areas – 3d printing, new ways of interacting with technology, the application of these kinds of controls to education, manufacturing, science, craft, modelling… we had some very exciting and interesting discussions and I think several of us are looking forward to playing with this technology a lot more in the future. There are a bunch of additional videos on the Anarkik website.

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.