Real Life Control Panel for Second Life

January 24, 2007

One of the things that have fascinated me since I joined Second Life has been mixed reality events. Just as I joined, my friend Hiro Pendragon was working on The Happening. I thought that was pretty neat and have watched the new events since, even built a few gadgets of my own. I just finished another one, a real life control panel linked through into Second Life. My friend Bill Ward built a small control box, just like this:

which I then hooked to my computer just like this:

Connected to computer

and built a representation of in Second Life like this:

Second Life Controller

The two are now entangled together through a Python web server so that turning the knob on the real world one, or pushing a button, changes the same on the one in Second Life.

What for? Well, the same techniques can connect other real world objects to other SL objects. We’ll probably be connecting the panel to trains and fireworks, maybe a few other things soon, and then working on other panels and in-world applications.

You can see the RL and SL panels at my display gallery in Pi. Or as best as can be shown in the larger picture below:

Both controllers in SL

That’s Bill(Williem Leandros) on the left, myself on the right, and Rhiannon Chatnoir looking on in the middle.

13 Responses to “Real Life Control Panel for Second Life”


  1. This is awesome. I have been wondering what that was. I also wondered why, when I clicked it, nothing happened. Nothing I could see anyway 😉

  2. Rik Riel Says:

    Wow, so many tremendous applications to this. Here’s a couple thoughts:

    * Creating a controller with force-feedback that rumbled when you ran into other SL objects. Great for driving and flying in SL.
    * A DJ controller for more naturally queuing tracks and mixing at virtual gigs.
    * Avatars being able to control a real world robot that they could see via streaming video

    Good work!

  3. ciemaar Says:

    Otakupope: Heh, I was wondering if anyone had noticed the box as I was building it. Feedback from SL is coded in but not really hooked up for this demo, the second light from the right does blink in SL and RL and the blinking is driven from the SL side, other feedback is not attached due to lack of servo motors.

    Rik: Yep, on the DJ line we’ve been thinking much more lighting control, at a virtual or mixed reality gig you could control both sets of lights.

  4. in kenzo Says:

    Very nice! Please bring this to the NMConnect show and let’s look at this more!

    http://www.nmc.org/campus/NMConnect

    We are looking for more interactive breakthroughs from talented builders and scripters inworld so bring your work and bring friends.

  5. ciemaar Says:

    Cool, we are definately interested in the art that can be based off of this, both building some ourselves and working with artists possibly. I couldn’t see from your site though whether your show has a real world component, does it?

  6. Robert Berger Says:

    Hi,
    I went to the SLURL and there’s nothing there except a protected home for rent. Is the SLURL correct? Or am I doing something wrong. I’m going to:
    http://slurl.com/secondlife/Pi/112/243/33


  7. […] entrada donde vemos la utilización de un control interactuando sobre SL – […]

  8. Thomas Says:

    So how can you make SL objects control real-world devices?

  9. ciemaar Says:

    The channel is two way already, when the control panel is running the second red light blinks both in real life and in Second Life. This blink is controlled from the LSL script in the panel. Depending on what’s being controlled I can use http request, XMLRPC, or (theoretically) e-mail for the outbound channel.

  10. TM Says:

    Which Python HTTP server were you using? Were you able to receive the special headers SL sends along with ever HTTP request, such as HTTP-X-SecondLife-Object-Name? I’m using Python’s cgi and CGIHTTPServer modules for my server and everything is working fine except that the special SL headers aren’t showing up in form.headers, where form=cgi.FieldStorage(). Any tips are appreciated. Thanks!

  11. iblis Says:

    TM: You should be able to access those special headers fairly easily using mod_python’s apache module, though I could have sworn that the vanilla cgi/CGIHTTPServer modules could do so as well.


Leave a reply to iblis Cancel reply