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

Stephen Potter, AIAI, University of Edinburgh
Updated: Mon Jul 21 13:18:46 2008

Configuring and Running I-X for the Virtual World of Whisky I-Room demonstration

These instructions assume that you have already set-up your I-Room seminar space in Second Life; if you have not done so, instructions can be found here. The current I-X application (of which this documentation forms a part) contains all the I-X elements that you need to run the demonstration.

It is assumed that you have downloaded and installed I-X, and added to the the I-X Virtual World of Whisky I-Room add-on application into <ix-base>/apps/<app-name>. All references to filenames below are relative to the application base.

Configuring the I-X I-Room Components

It will usually be necessary to configure your system before running the demonstration. The following steps should help you to do this.

  1. Configuration of I-X Second Life agent

    In addition to the generic I-X parameters, the file config/sl-agent.props contains a number of parameters specific to this agent that you may need to change - in particular, you will probably have to change the value of sl-channel-id.

    sl-channel-id
    specifies the UUID of the XML-RPC channel used by the I-X Helper Robot object in Second Life (the Robot should announce this UUID when it is 'switched on' (ie touched by an avatar). Example:
    sl-channel-id=fc38f726-2e1f-95aa-79a8-ca60ab3810bb
    sl-xmlrpc-server
    specifies the URI of the Linden Labs XML-RPC server for Second Life. It should normally not be necessary to change the value of this parameter. Example:
    sl-xmlrpc-server=http://xmlrpc.secondlife.com/cgi-bin/xmlrpc.cgi
    sl-controller
    specifies the ipc name of the I-X 'controller' Process Panel that is the used to run the seminar that is held in Second Life. In other words, this will be the IPC name of the seminar tutor's Panel, as specified in the parameters for that panel (see below). Example:
    sl-controller=tutor

    The following are recommended values for some of the generic I-X parameters for this agent (and the instructions and examples in this documentation will assume that these are the values that have been supplied):

    ipc
    Use the I-X XML communications strategy:
    ipc=xml
    ipc-name
    Denote this agent with the name "sl-agent" for communications purposes:
    ipc-name=sl-agent
    name-server
    Use the I-X XML name-server running on the current computer:
    name-server=localhost:5555


  2. Configuration of I-X Tutor Process Panel

    Similarly, the file config/sl-process-panel.props contains a number of parameters specific to the I-X Process Panel that will be used by the seminar tutor.

    second-life-agent
    gives the IPC name of the I-X Second Life agent; this value has to be the same as the IPC name that is specified by the value of the ipc-name parameter of the I-X Second Life agent (see above). Example:
    second-life-agent=sl-agent

    One useful functionality that the I-Room application supports is that of displaying images (and other documents) on the screens in the room. This is done by serving the content off a web-server; this may be an existing web-server or else it could be an I-Serve web server (part of the I-X tool suite) running locally (see below). In either case, the I-X tutor panel will probably need to have direct write access (if use is to be made of the matrix functionality to generate content dynamically during the meeting - see below) to some part of the document directory tree for the server in question and the following parameters specify the information that the panel requires.

    image-directory
    specifies the default local (relative) location for any images that the tutor may want to have displayed in I-X (and from there in the Second Life I-Room) during the meeting. Example:
    image-directory=tmp
    web-directory
    specifies the local (relative) directory that is the document root for the web server that is being used to serve (image and any other) URLs into Second Life. Example:
    web-directory=tmp
    url-base
    specifies the full URL that identifies the web directory. Example:
    url-base=http://[domain]:[port]/[directory]/

    The following are the recommended settings for several of the general I-X parameters for this application:

    font-increment
    specifies an increment in the standard font size; this is helpful when displaying panel contents on a screen in the I-Room in Second Life. Recommended setting:
    font-increment=6
    domain
    specify the initial set of refinements in the domain. In this case, domain-library/vwow.lsp contains some sample tutorial processes. For more about these processes see here. Recommended setting:
    domain=domain-library/vwow.lsp
    test-menu
    specifies the contents of the panel's test menu. In this case, the file config/vwow-testmenu.xml provides some convenient functionality. Recommended setting:
    test-menu=config/vwow-testmenu.xml
    extension-classes
    specifies code offering various extended functionalities that may be useful for this application. Here:
    • MosaicBuilderExtension provides a tool that generates a single 'mosaic' or matrix of all currently visible I-X screens; this is used to overcome a restriction of Second Life and allow multiple images to be simultaneously viewed in the I-Room.
    • ImageViewerExtension allows images to be viewed in I-X windows; this then allows them to be included as elements of the matrix.
    • NLG... for customised natural language generators.
    Recommended setting:
    extension-classes=ix.ip2.MosaicBuilderExtension,ix.ip2.ImageViewerExtension

    The following are recommended values for some of the generic I-X parameters for this agent (and the instructions and examples in this documentation will assume that these are the values that have been supplied):

    ipc
    Use the I-X XML communications strategy:
    ipc=xml
    ipc-name
    Denote this agent with the name "tutor" for communications purposes:
    ipc-name=tutor
    run-name-server
    Run an I-X XML name-server on the current computer:
    run-name-server


  3. Configuration of I-Serve Web Server [optional]

    As mentioned above, in order to serve content (primarily graphic images) into Second Life, it is necessary that this content be accessible on a web server (given a URL). Hence it is necessary to either be able to write the content (some of which may be generated dynamically during the meeting) into the document directory structure of an existing web server or, as an alternative, to run I-Serve, the I-X web server. Note that if this content is to be viewed by all participants in the meeting, then each of them must be able to access the content directly (as a test, they should be able to view the content URL directly in a web browser). If using I-Serve, enabling this will probably require ports to be opened through firewalls, and, depending on the local arrangements, this might need the help of local computing support staff.

    If you intend to use I-Serve, the file config/sl-server.props contains are a couple of parameters controlling the behaviour of the server. Note that you should ensure that these settings are consistent with the parameter values supplied to the tutor Process Panel above; in particular, the value of web-directory should be the same as http-root-directory.

    http-root-directory
    specifies local directory (relative to the application root) which corresponds to the root of the document directory tree for the server (the default URL of this root is http://[domain-name]:[port]/files/). Example:
    http-root-directory=tmp
    http-server-port
    specifies the port on which the server is to listen for HTTP requests (and which will need to be opened through any firewalls between the computer on which I-Serve runs and the computers used by the participants to join the meeting in Second Life). Example:
    http-server-port=5040

Running the I-X I-Room Components

After having made any required changes to the properties files, the application can be started (on Windows) with the following sequence of steps:

  1. Ensure that the I-X Helper Robot object in Second Life is running (its UUID should be that specified in the sl-agent.props file).
  2. If required, start the I-Serve web server by double-clicking on the file scripts/win/run-i-serve.bat.
  3. Start the Tutor Process Panel by double-clicking on the file scripts/win/run-process-panel.bat.
  4. Start the I-X Second Life agent by double-clicking on the file scripts/win/run-sl-agent.bat.