I-X Second Life Demonstration: Virtual World of Whisky I-Room

Stephen Potter, AIAI, University of Edinburgh
Updated: Mon Jul 21 13:26:59 2008

Second Life I-Room Setup

Before holding your meeting in Second Life, you will first need to set up your virtual I-Room space. To do this, you will need to be able to create and edit objects within some region in Second Life.

I-Room Helper Robot

The minimum requirement for a virtual I-Room is that you have an "I-X Helper Robot" - this acts as the in-world bridge to the external I-X components. A robot can be collected from this location in Second Life; alternatively, you can create your own object and, within this object, create two new scripts, and paste into the first the contents of resources/I-RoomHelp.lsl and into the second the contents of resources/I-RoomHelpComms.lsl, and ensure that the scripts are running. In addition, you should create a notecard called "I-Room Setup"; the file resources/I-RoomSetup.txt gives an example of the content of this notecard which you should tailor to your own I-Room. One of the roles of the Helper Robot is to act as an intermediary for controlling any other virtual objects in the I-Room, and this notecard provides the means by which this is done. Each I-Room object (including the Helper Robot) that offers a useful capability to the room 'listens' on a designated (and usually unique) chat channel in Second Life; messages - usually assumed to be command to perform some appropriate action - on this channel are assumed to be intended for the object, which should respond appropriately. (Note that for the purposes of this documentation we shall assume that the Robot is listening on channel 9 - and, hence, chat directed at the Robot should be prefixed with /9 - although this can be altered by changing the variable channel in the I-RoomHelp script.) Rather than remembering which object performs which action, and then on what channel that object is listening, the Helper Robot, provides a mechanism for relaying commands to the appropriate objects (and hence provides a single point of contact for all commands in the I-Room). This mechanism is configured by the contents of the notecard. Each line of the notecard contains one of three things:

Hence, the contents of a notecard might read something like:
# This line is a comment and will be ignored.
channel screen1 10
capability screen1 display
channel screen2 11
capability screen2 display

This declares two capable objects in the I-Room, both having the capability "display" (with, we'll assume in this case, the URL of the image to display as an additional parameter). The notecard is read when the Robot is switched on. Now, a user of the I-Room can interact with these objects in one of three ways:

Once you have modified the notecard to reflect the contents of your I-Room, you should now be able to start the I-X Helper Robot by 'touching' it through your avatar in Second Life. Once it has initialised, it should report the UUID of its communications channel on the open chat channel (this UUID is needed to correctly set up the Second Life I-X agent).

I-Room Screens

In addition to the Helper Robot, if your meeting contains any sort of visual content, you will probably want one or more I-Room Screen objects (the number will be governed by the number of images that you may want to simulateously display). However, in order to add screens to your own I-Room, you must have the ability to 'deed' each screen object to the group which owns the parcel of land in question. (This is due to the constraints placed on objects that alter the media texture in Second Life.)

A screen can be found along with the helper robot in Second Life. Alternatively, you can create your own object, being sure to position and size it appropriately (so the images will be clearly visible to the meeting participants), and adding the default media texture and creating a new script into which you should paste the contents of the file resources/I-RoomDisplay.lsl. You may need to modify this script so that the variable channel is set to some unique positive integer (for instance, if you want to have more than one screen in your I-Room, you should ensure that each is listening on a unique channel). This is the chat channel on which the object will listen for instructions (including those from the Helper Robot). Finally, you should deed your screen object to the group.

A screen offers one basic functionality to the I-Room: it is used to display images found in URLs, and is controlled by chat on the designated channel, either with a direct display command on the designated channel (e.g., <channel-number> display http://someurl) or through the Helper Robot, if the screen's details have been included in the Robot's notecard (see above).

Additional I-Room Furniture

Feel free to add any additional furniture to your I-Room. Some of this may be primarily cosmetic - chairs for avatars to sit on, tables, etc - and may be found at the various locations offering objects within Second Life. However, you may find that you need to extend the capabilities of the I-Room by developing your own objects and placing them in the room. If so, you can use the I-RoomDisplay script for the screen as a model for controlling the functionality of your object and the notecard facility of the Helper Robot to make this functionality available in a convenient fashion to the users of your I-Room.