Posted by: Peter Quirk | November 9, 2008

Recording and sharing realXtend machinima

Since support for recording video dropped out of the Second Life viewer, and by extension, the OpenSim and realXtend viewers, I’ve been looking around for a good tool to record machinima. Machinima are great for demonstrating ideas to people who can’t/won’t install the viewer, for promoting your designs, or for building tutorials, amongst other things.

Here are some techniques I’ve tried: Read More…


Living up to its clever name, the new SLim™ client from Linden Lab and Vivox doesn’t work with my corporate firewall. I can’t even login from work, though it works just fine from home. You’d think that the designers of this product would try to address the very real issues that corporate users have complained about for years in the standard client by designing something that uses HTTP protocols on standard ports. I’d be happy if they separated text and voice chat into separate modules so that the security folks who are rightly worried about VoIP security and spoofing can block that while allowing text chat which is amenable to compliance analysis.

Posted by: Peter Quirk | October 24, 2008

A reflection on in-world collaboration

The project I’ve been working on was inspired by a chance on-line conversation with a colleague many months ago. I have posted numerous articles about virtual worlds on our corporate social network ever since it went live ( and before that on a couple of other platforms). One article about virtual workplaces resulted in Paul, a home-based worker, suggesting to me me that we build a virtual workplace for him and his team.

When Paul worked in the office he derived a lot of value from overhearing the conversations of the other members of his small team as they responded to customer questions about the application they support. He not only learned on the job, but was able to contribute his knowledge to others when heard them struggling with a customer situation. At some point, the team was relocated to home offices and he lost that tight-knit connection to the other team members. He knew from a brief encounter with  the Second Life™ world that he could recreate that sense of working clsoely with others in a virtual world.

I hacked the living room scene in the starter island of realXtend to include three desks, three office chairs and three PCs to create a warm, homely office environment. When I was happy with it, I invited Paul to see it.

Initial home office concept

Initial home office concept

That was a small disaster and a learning moment. Firstly, the space was too small. Secondly, the combination of a newbie and a island with nothing locked down resulted in stuff being moved everytime he touched something.

At the same time I was developing some other islands for possible use as collaborative meeting places for distributed teams. These had to be as unlike our existing meeting places as possible if they were to add any value. I wanted to create places where people would collaborate on the development of presentations, or brainstorm about things, or simply hang out and get to know each other.

When EMC announced its second Innovation Conference, I decided to develop the workplace idea for Paul and a meeting place idea for distributed engineering teams. Paul became heavily invested in the workplace project and helped to define its key characteristics:

  • it had to be a corporate-looking place where he and his team members see and hear other.
  • it had to be something that his management would recognize as an EMC workplace and would see that serious work was taking place here.

I photographed some interior and exterior walls in the building I work in and quickly put together a representation of a building and showed it to Paul. He liked it a lot and added another requirement:

  • the place must include a “library” where his in-world customers could browse reference materials about the application and learn how to use it.

I made the building larger and added a series of wall panels on which were suspended frames for PowerPoint slides. The building is two stories high from the outside, but inside it appears to be a single storey with a high ceiling. (Note the Trompe L’Oeil of the windows in the scenes below.) The entrance is very large and easy to navigate for newbies. There are no doors to manipulate. Paul has add the training content he wanted and scripted the slides to launch browser sessions linked to deeper content. Over time we’ve added a small lounge area for informal conversations. In another corner I’m assembling racks of equipment on a raised floor to demonstrate some system management ideas which are not yet scripted.

During this period of development the virtual workplace submission made it to the finals of the competition, for which we had to prepare a poster in a science fair format. We hurried our design along to the point where we could so some photo shoots. We collaborated on the design of the poster by email (since it was a Word document) and continued to fight bugs in the realXtend platform (as described in my previous post.)

One week ago, Paul and I finally met in real life. We did a demo of the workplace for his manager. I’m pleased to say that Paul’s manager “gets it” and can already see additional applications for the platform as a training vehicle for new users. Paul tells me that another manager in his group also “got it” as soon as he saw the virtual workplace on Paul’s desktop wallpaper. That manager is a gamer.

This experience of collaborating in-world, with the help of traditional email and occasional IM, convinced me of the validity of virtual worlds for collaborative design. It doesn’t matter that we were designing a virtual building. We might as well have been designing a real building or a BPM model in pictures.

Below are a couple of pictures of the interior and exterior of the virtual support center. We haven’t invested any time in landscaping at this point since the environment is subject to a lot of change, and will be for a long while. Right now we consider this a proof-of-concept that enables discussions with management. Virtual worlds have to be seen to be understood. This tiny demo running inside the firewall is a kind of teaching tool for management and for potential users of the system.

A view from outside the building

A view from outside the building

A view inside the building. Note the trompe l'oeil of the interior windows versus the exterior view.

A view inside the building

Posted by: Peter Quirk | October 24, 2008

Remember it’s alpha code

EMC’s Innovation Conference is over so I can start to devote a little more time to writing about virtual worlds in the enterprise. For the past few weeks I have been working on my submission for a proof-of-concept for a support center for an in-house application. The effort has largely been one of debugging aspects of realXtend as it goes through an amazing amount of change. If you’ve been following the story of realXtend on the Ugotrade blog or here, you’ll know that realXtend forked from Opensim and periodically resynchronizes with it. The rate of change of both platforms has made it hard to merge the realXtend features back into Opensim easily.

Here are some statistics for both servers over the period August 21 to October 23 illustrating the amount of change in the platforms. Both development teams describe their code as in the alpha stage, and both groups note that people are doing interesting things with the code nonetheless.

Platform Total Commits Total File Changes


1016 3283


140 616


As Tish Shute noted recently, Adam Frisby of DeepThink has finally demonstrated a new plug-in architecture for OpenSim that enables the integration of realXtend features like mesh avatars as optional features. Jani Pirkola, program manager for realXtend, says that he expects his team to switch over to the plug-in architecture in December.

With that as background, it’s easy to understand how one might spend as much time on debugging as on content development. In fact, I had to deal with a major release (0.31), a move of my server to a different subnet and DNS server, two weeks of downtime during the move because of some networking components missing in the new data center, plus frequent attempts to rebuild the server code to incorporate bugs fixes that seemed relevant. All the while there were changes to UUID formats (but not consistently), additional tables being created in the databases and changes to the voicechat server which caused plenty of consternation. I noticed last night that there are patches adding an extra column to a table that was added after the 0.31 release.

This week, just prior to the Innovation Showcase I built a server from SVN version 445 and discovered that voice didn’t work properly if you had more than 1 region in a simulator. I trimmed my sails and deleted two of the regions since I only needed one to demonstrate the support center concept.

Given all that, would I recommend that you wait for realXtend to stabilize before you start experimenting with it? Probably not, but I wouldn’t set a “go live” date for a project either. There are just so many unknowns in the world of Opensim & realXtend. For example, the permissions model is not working yet. It’s hard to imagine going live when you can’t set permissions properly and be sure that new users can’t inadvertently damage something. Likewise, it’s hard to do collaborative development when you can’t edit your team member’s script inside an object. Performance at scale and network latency have not been measured with the various database options. Operational frameworks for creating users, changing passwords, managing test and production servers, etc., are practically non-existent. Even the basic procedures for upgrading from one revision to the next have to learned the hard way. (Owners of public grids are creating a variety of tools to manage their grids but a lot of this innovation is not flowing back to the core distributions.)

Bottom line: go into this with your eyes open. You are a pioneer. Your contributions through testing, bug reports, questions on forums, blogs and tweets can all help to refine the platforms and make them more stable. If you’re working on this stuff in your spare time without a development team supporting you, don’t set any expectations about when your project might be ready.

Posted by: Peter Quirk | September 30, 2008

Better, cheaper ways to video conference

James Corbett’s Vizitant blog alerted me to two interesting moves by Skype:

Skype audio is a configurable option in realXtend. It can’t currently be used to call people not in-world, but the potential is clearly there. Being able to bring an out-of-world participant into a team meeting in the virtual world via Skype video would be a killer application, especially if the reverse were possible – relaying the virtual world back to Skype. The recently added RTT (render to texture) camera feature in realXtend 0.31 might be the place to integrate a video capture hook to enable virtual world video to Skype.

Posted by: Peter Quirk | September 29, 2008

Bizarre device for telepresence – why not use virtual worlds?

Today I saw a description of the TiLR telerobot, a remote controlled camera & screen that is supposed to stand in for you at a meeting. It’s value proposition is that it is cheaper than Cisco’s Telepresence and mobile enough to be moved between meeting rooms.

Compare it with the flexibility afforded by a virtual world client of virtually any kind, running on any PC. The telerobot can only look, listen and talk. Your avatar in a virtual world setting can do all that for a whole lot less money, and it can demonstrate concepts, guide you through a prototype design, show you a web page, show you a streaming video, present you with a gift, add you to group of friends, manipulate a molecule, perform in a live concert, run a training session – the list goes on. With virtual worlds appearing on high-end phones, or being streamed via the Vollee service to phones with video support, it’s hard to imagine anything more mobile and more flexible for remote meetings.

Posted by: Peter Quirk | September 28, 2008

Preserving the illusion of the avatar

The immersive experience of a virtual world requires that you suspend belief and become one with your avatar. That identification with the avatar can be broken easily if you get too close your avatar in flycam mode and discover that the avatar is hollow and invisible from the inside. A quick way to ameliorate the problem is to adjust the “camera nearclip” value in the app_settings\ogre_scene.xml file in the realXtend viewer. By default the nearclip value is 0.2. I found that the following setting gave me much more satisfactory results as I flew around my avatar with my Logitech SpaceNavigator doing close-up photography.

<camera farclip=”1000″ nearclip=”0.05″ fov=”60″ />

Thanks to the realXtend team for the suggestion. I’d still like to see solid avatars using collision meshes that prevent the camera from entering the avatar’s mesh.


Posted by: Peter Quirk | September 24, 2008

Migrating to realXtend 0.31 (updated 9/28/08)

Fetch the release

The realXtend 0.31 binaries are now available at The documentation on how to migrate a 0.3 system to 0.31 is not ready yet, so here’s my best guess at how to do it. It’s not really a guess – this worked for me, but there may be things that get overwritten that I don’t see. If you’re playing around with realXtend for the first time, just follow the instructions in the new documentation wiki.

Copying files over

The first thing is that we’re not going to make any changes to the existing setup in case you need to revert to it. Unzip the new server binaries into a new directory, and copy the following files from your 0.3 setup into the 0.31 folder.

  • Authentication\authentication.db
  • Authentication\AuthenticationSettings.xml
  • Authentication\HttpSettings.xml
  • Authentication\sqliteSettings.xml (or whichever database settings file you use)
  • AvatarStorage\AvatarStorage.db
  • AvatarStorage\InventoryStore.db (not strictly necessary if you haven’t added any new folders to the inventory structure)
  • AvatarStorage\HttpSettings.xml
  • AvatarStorage\sqliteSettings.xml (or whichever database settings file you use)
  • rexserver\estate_settings.xml
  • rexserver\regions\*.xml
  • rexserver\Opensim.db
  • rexserver\AssetStorage.db
  • rexserver\InventoryStore.db
  • rexserver\truststore.xml
  • rexserver\OpenSim.ini (though I would recommend that you merge your customizations into the new file)

If you did more extensive customization, you might need to copy over terrain files, startup_commands.txt, shutdown_commands.txt, server-side scripts invoked from the opensim.exe console window, and python scripts in the rexserver\ScriptEngines\PythonScripts hierarchy. If you’ve modified in the rxcore directory, copy it over too.

Update 9/28/08: The realXtend team is now maintaining a more complete copy of these instructions on the documentation wiki. Feel free to register and make your own additions to the instructions if you discover something useful.

The batch file for starting the services is now smart enough to work anywhere, so you don’t need to tailor the pathnames.

New settings

There’s a new feature in 0.31 that provides more flexibility in a collaborative building setting given that groups are not implemented yet. If you set
serverside_object_permissions = True
in the [Startup] section of OpenSim.ini, the file adminsandbuilders.txt will be processed. This file contains the following:

‘List here people you want to have certain rights at the server, when
‘the serverside_object_permissions is set true from the OpenSim.ini.
‘If the user isn’t on this list, he only has rights to visit the world,
‘but no building/editing rights on objects. Administrator created objects
‘are not editable by the builder. Use the console command “refresh-builderlist”
‘to enforce the changed rights if the server is running. Please note that
‘when granting rights, the user needs to log in before (s)he really can use them.
‘account@domain administrator
‘account@domain builder

Some new features

When you start the viewer you’ll notice a number of cosmetic and functional improvements. My favorite new feature is support for my Logitech 3DConnexion SpaceNavigator mouse! Another small improvement is that there’s no longer a need to create a script in your inventory and drag it to the contents tab of an object. Other changes, extracted from the readme.txt file are listed below. I don’t know what some of these (like Postprocessing effects) mean!

realXtend v 0.31 features:
– Uses KirstenLee Cinquetti’s OpenLife R15 viewer as a base (which in turn is based on Second Life viewer 1.20.13)
– Postprocessing effects, both serverside & user controlled
– Smooth teleport to another world/grid, without shutting down the viewer
– New UI icons/buttons
– Serverside control of fog parameters
– World addresses stored in the address bar are also shown in the login window “Connect to” combobox
– XY flip controls in the image upload preview window
– 3D model UV coordinate flip controls, accessed through “Mesh Edit” button in the object edit tools / Rex subpanel
– VOIP improvements
– Possibility to define turning animations for avatars
– Camera view editor
– Asset browser, so far for textures
– Object list
– Experimental client-side lightmapping
– Render-to-texture camera and viewports
– Skype plugin enable/disable from within the viewer
– Support for two-sided particles

Asset Browser

The Asset browser is a new feature that is well-suited to examining your textures (and that’s all at the moment). Here’s a screenshot of the interface:

The Asset Browser in the realXtend 0.31 viewer




The Asset Browser in the realXtend 0.31 viewer

Defining gestures 

You’ll aslo notice that it’s possible to define gestures at last. Here’s a simple welcome wave:

Defining a simple gesture

Defining a simple gesture

In a later article I’ll try to describe how to create a new animation that can be used in a gesture sequence. For those who want to explore the feature before then, try downloading a .bvh file from one of the many sites providing free animations. You must use an animation designed for a bipedal skeleton. Generally, the names of the bones in the skeleton don’t match those used by the rex avatars. You have to change the bone names to match those shown in the advanced panel of the avatar generator application. If all goes well, you should be able to upload the animation and use it in gestures. There’s some discussion of the topic on this thread on the realXtend community forums.
In the next article I’ll discuss camera viewports and RTT (render to texture) cameras.
Posted by: Peter Quirk | September 24, 2008

realXtend 0.31 delayed by a day or two

A couple of show-stopper bugs were discovered on the morning of Sept. 23, causing the release to be delayed by a day or two. The code could appear as early as this afternoon.

Posted by: Peter Quirk | September 22, 2008

realXtend 0.31 should be available tomorrow

Barring last minute show-stoppers, realXtend 0.31 will be available tomorrow afternoon (Finnish time). In keeping with the promise to produce a stable platform, a significant number of bug fixes are associated with stability.

Among the new features in the viewer that we can expect to see in the code (and hopefully in the documentation) are:

  • friends can send teleport requests to each other
  • ability to name people who can build on land without requiring ownership privilege
  • custom animations can be played by name
  • all new objects have a sample script which you can edit. Previously you had to drag a script from inventory before you could edit the script.
  • standing up now moves your avatar to a position in front of an object that it was sitting on, rather than placing the avatar in top of the object
  • a new camera feature enables you to create a camera which renders to a texture (imagine a security camera displaying on a TV screen in a virtual control room), or renders to a viewport in the viewer. The latter feature enables multiple views of the same object as in Blender. This could make building a little easier.

More news tomorrow when I download it and explore the features!

« Newer Posts - Older Posts »