VR Juggler JCONF files for a three-wall CAVE(TM)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


JConfs for METaL

METaL - The Multimodal Experience Testbed and Laboratory


METaL is a 3-wall virtual reality system used by Judy M. Vance, Ph.D.'s research team at the Iowa State University Virtual Reality Applications Center. The primary software run on this system is built on the VR Juggler open-source VR software framework, originally developed at Iowa State University and now widely used. This repository contains the JCONF files for configuring VR Juggler applications to run in METaL. They are on Git so that changes and modifications may be tracked, and are shared on GitHub for easier collaborations and so that they may serve as examples for others wishing to use VR Juggler.

These files are for use with the VR Juggler 3.0 series.

Which Config Files to Use - The tl;dr Version

This one:

  • METaL.tracked.stereo.reordered.withwand.jconf

which does exactly the same thing as loading these three:

  • METaL.tracked.stereo.reordered.jconf
  • mixins/METaL.treetarget.aswand.jconf
  • mixins/METaL.wiimotewandbuttons.jconf

Which Config Files to Use?

You'll use exactly one "main" jconf file, and possible one or more "mix-in" jconf files to add functionality.

You must use one "main" jconf file setting up displays and head tracking. Usually, for full functionality, this will be METaL.tracked.stereo.jconf or METaL.tracked.stereo.reordered.jconf (see below).

  • The "main" jconf files in the base directory select some subset of the config files in components to load in order to provide the desired functionality. So, you don't ever need to directly load a file from components, just pick the right main file and it'll be handled for you.

    Decide which to use based on these criteria:

    • Stereo or mono? Usually, you'll want stereo, except for things like photo shoots.

    • Do the desktop displays seem to be in the "wrong" order? Then we are still troubleshooting so must have these in an order that works better for non-VR Juggler software, sorry. Use a main file with reordered in the filename.

    • Are you using a build of VR Juggler earlier than r21659? (This came after 3.0.0 but before 3.0.1, and contains fixes by Ryan Pavlik to allow the DTrack driver, as well as other UDP networking code, to work properly on Windows XP.)

      • The version installed on the system is a recent SVN snapshot including this fix. Use a main jconf without vrpn in the filename, since we don't need to workaround this bug.

      • Binaries from others might be older. In this case, you'll need to use one of the configs with vrpn in the filename, and run one of the tracker or tracker+wiimote vrpn servers on the head node (not the handy GUI), to work around the fact that the DTrack driver is essentially broken in these older versions.

    • Do you want to run clustered (with the application running on both the head node and the render node)? This is an advanced configuration, and not currently recommended for general use. In this case, you'll run your app on both computers, passing a jconf with cluster in the name on the head node only, and further specifying cluster mode to the Juggler kernel - how to do this depends on what application you're using.

    • If you want less than all three screens, choose a config file with that number of displays in the filename. Configs without numbers use all three displays.

  • You may then also load additional "mix-in" jconf files to provide additional features.

    • "Alias" one of the ART targets to VJWand: All ART targets are available by name through every base configuration, but VR Juggler apps often expect some position-tracked device to be available known as VJWand. Loading one of these files will create that alias:

      • mixins/METaL.treetarget.aswand.jconf - This is the most likely choice, since the tree target is attached to the Wii Remote for use as a wand.

      • mixins/METaL.wristtarget.aswand.jconf - for the small hand target

      • mixins/METaL.handtarget.aswand.jconf - for the "claw" target

    • mixins/METaL.wiimotewandbuttons.jconf - Access the Wii Remote and create the typical button aliases. Together with mixins/METaL.treetarget.aswand.jconf, this makes our Wii Remote look like a "typical" VR wand (if there is such a thing...)

    • simview.mixin.vrj30.jconf - Primarily for debugging - shows a simulator view with the projections displayed as well as the head and wand positions.

System Description

  • Three computers:

    • Head node: metal.vrac.iastate.edu

      • On the internal switch, this computer is also known as

      • Contains a single NVIDIA Quadro FX 5800 card.

      • Serves as the main node for controlling the tracker, as well as other peripherals.

    • Render node: metal-render.vrac.iastate.edu

      • On the internal switch, this computer is also known as

      • Connected to two NVIDIA Quadro Plex 2200 D2 units, for a total of four NVIDIA Quadro FX 5800 cards (three used, one per wall)

    • Device server: metal-devices.vrac.iastate.edu

      • Linux server

      • Runs three VRPN servers providing access to four devices, all of which automatically search for their respective devices and connect to them when they are powered on (and plugged in, where applicable)

        • WhiteWiimote@metal-devices

        • BlackWiimote@metal-devices

        • LeftSerialGlove@metal-devices:3884

        • RightSerialGlove@metal-devices:3885

      • Also drives a 19" LCD used for digital signage (nodm and openbox launching fullscreen Chromium accessing our [Concerto][concerto] server with news and reservation calendar.)

  • Projectors: Three Digital Projection Inc. TITAN WUXGA 3D Series II

    • Left wall and floor are 12' x 9', and projected at 1600x1200.

    • Right wall is 9' x 9', projected at 1600x1200 but the right-most and left-most 200 pixels are not visible on the walls.

    • Projecting in stereo at 120 Hz, with MacNaughton emitters and XPAN-D X101 stereo glasses.

  • Tracking: ART TrackPack 4 system with four cameras.

    • ARTtrack Controller/TP: control computer accessible only on the internal switch, at

    • DTrack tracking data output to both the head node and render node on the traditional port (5000).

    • DTrack2 software (currently version 2.5.0) installed on both nodes, typically run on head node.

    • Targets: see images of all targets

      • Target 0: Active glasses target attached to stereo glasses

      • Target 1: "Tree" target, screwed on to the front of a Wii Remote to use as a wand

      • Target 2: Small hand target

      • Target 3: Claw target

  • Interaction devices:

    • Wii Remote connecting over Bluetooth to the device server is typically used as a wand (uses an additional jconf)

      • See the section on metal-devices.vrac.iastate.edu for device/access details

      • Buttons are in the "re-ordered" order - see the VRPN header for information.

      • Make sure to power off the Wii Remote when done! Check the Wiimote to make sure that the lights are off before putting it away, otherwise it runs through batteries like candy!

      • Rechargeable batteries (Energizer induction charging kit for Wii Remotes) in use - be sure to line up the Wii Remotes with the illustrations on the dock. If the light is red or green, you got it right. If it's flashing red, pick it up and try again - that means it's not quite lined up right.

More Information

You might consider using the jconf-grapher to visualize the devices made available with these config files. If you're not in our research group and any of this information is useful to you, we'd appreciate hearing from you! You can reach Ryan Pavlik, who put these files together, via his web site at http://academic.cleardefinition.com