Skip to content

How to Display VR Sessions on a PRISM Immersive Theater or Projection VR

This guide explains how to display live VR sessions on a PRISM immersive theater or projection-based VR system using SightLab or E-Learning Lab. It covers both multi-user observer views and single-user projection setups, including keyboard navigation and advanced 3D projection configuration.


Overview: Display Options for Projection Systems

When running a VR session, there are two primary ways to display the experience on a PRISM or projection wall:

Observer (Bird’s-Eye) View

A free-flying camera used to observe one or more users from outside their perspective.

First-Person View

Displays exactly what a participant sees (single user or selected client).

Both options can be run on a standard desktop system connected to a projection or PRISM display.


Running a Bird’s-Eye / Observer View (Multi-User)

The observer view is ideal for:

  • Classroom demonstrations
  • Research observation
  • Public presentations
  • Multi-user experiment monitoring

Step-by-Step Setup

1. Start the Server

  • Launch the SightLab Server or E-Learning Lab Instructor

2. Start Participant Clients

  • Run the appropriate number of client scripts for your VR users

3. Launch an Additional Client for PRISM / Projection

  • On the computer driving the PRISM or projection system, run one additional client
  • This client connects to the same server but is used only for display

4. Select the Client Environment

Recommended options:
- Empty – if you want no visible avatar or interaction
- Security Camera – if you want a visible camera object inside the scene

5. Choose Hardware Type

  • Select Desktop as the hardware option

Once the scene starts, you can control the observer camera using the keyboard.

Movement & Rotation

  • W / A / S / D – Move forward, left, backward, right
  • Z / X – Move down / up
  • Q / E – Rotate left / right

Utility Controls

  • R – Reset viewpoint
  • Shift – Lock/unlock movement
  • / – Take a screenshot
  • . (Period) – Toggle overlays (timers, view counts, trial info)
  • F2 – Toggle fullscreen mode

Note: Fullscreen may apply to only one monitor. For PRISM systems, you can manually stretch the window across all displays to span the full wall.


Alternative Observer Controls (Server on Projection Machine)

If the server itself is running on the PRISM or projection computer, the following controls may be used instead:

  • U / J – Forward / backward
  • H / K – Left / right
  • N / B – Up / down
  • Y / I – Yaw left / right
  • O / L – Pitch up / down

Running a Single-User Projection View

For single-user scenarios (no server/client architecture):

  • Run a SightLab or E-Learning Lab client
  • Choose a projection hardware type (see the table below)
  • Connect the output to the PRISM or projection system

This mode mirrors the participant’s first-person view directly onto the projection display.

Projection Hardware Options

SightLab option E-Learning Lab option Config file Setup needed
Projection 2D Projection 2D vizconnect_config_projection2d.py None. Works as-is.
Projection VR Projection vizconnect_config_projection.py 3D stereo. Set your wall's display size and origin (see below).
— Projection 6 Wall 2D vizconnect_config_projectionCL_IC26.py CAVE systems. Requires Vizard Enterprise and the Cluster Master Tool.

If you don't need stereo 3D, choose Projection 2D. You don't need to change any files.


Running a 3D Projection Wall (Advanced Setup)

The 3D option (Projection VR in SightLab, Projection in E-Learning Lab) renders in stereo. It needs the physical size of your screen and where the viewer stands relative to it. You set these in the display section of vizconnect_config_projection.py (values in meters):

Setting What it is
frontImageWidth Width of the projected image
imageHeight Height of the projected image
imageRise Height of the bottom of the image above the floor
originLeft / originRight Distance from the origin (where the viewer stands) to the left and right edges of the screen
shiftRight / shiftUp / shiftForward Optional offsets for fine-tuning alignment
stereo Stereo mode (default viz.QUAD_BUFFER)

You can edit the included file, or swap in a custom configuration you've already made. When you swap in a replacement, give it the exact same name, vizconnect_config_projection.py, so the existing hardware option loads it.


E-Learning Lab Configuration

Local Hardware Configs checkbox and folder button

  1. In E-Learning Lab, go to the Advanced tab and check Local Hardware Configs.
  2. Click the folder icon next to it. This opens the local_vizconnect_configs folder.
  3. Edit vizconnect_config_projection.py in that folder, or replace it with your custom file. A replacement must have the same name, vizconnect_config_projection.py.
  4. Select Projection as the hardware type.

You only need Local Hardware Configs for Projection (3D) and Projection 6 Wall 2D. Projection 2D is in the default hardware list and works without it.

Note: While Local Hardware Configs is checked, every hardware option is loaded from the local_vizconnect_configs folder. Uncheck it to go back to the built-in list.


SightLab Configuration

SightLab loads Projection VR from this file:

C:\Program Files\WorldViz\Vizard8\bin\lib\site-packages\sightlab_utils\vizconnect_configs\vizconnect_config_projection.py

To use your own version, either replace that file or point SightLab to a local copy in your project.

Option 1: Replace the Built-In File

  1. Back up the original vizconnect_config_projection.py in the folder above.
  2. Copy your custom file into that folder with the exact same name, vizconnect_config_projection.py, replacing the original.
  3. Select Projection VR from the hardware list. No code changes are needed.

Note: Writing to the Program Files folder requires administrator permissions. Updating SightLab may overwrite this file, so keep a copy of your custom version.

Option 2: Use a Local Copy in Your Project

  1. Copy vizconnect_config_projection.py from the folder above into a new folder named local_vizconnects next to your script.
  2. Edit the display section to match your wall.
  3. Pass the file to SightLab. The path is relative to your script's folder:
sightlab = sl.SightLab(
    vizconnectconfig={'Projection VR': 'local_vizconnects/vizconnect_config_projection.py'}
)

To skip the hardware dropdown and always load this file, pass a list instead:

sightlab = sl.SightLab(
    vizconnectconfig=['Projection VR', 'local_vizconnects/vizconnect_config_projection.py']
)
  • Passing a dictionary replaces the hardware list with only the options in it. To keep other options, such as Projection 2D, add each one with the path to its file.
  • Keep "Projection" in the option name. SightLab uses it to apply projection-specific handling, such as fading across all walls.

Best Practices & Tips

  • Use Observer Mode for teaching, demos, and research monitoring
  • Use First-Person Mode for immersive presentations
  • Disable overlays (. key) for clean public displays
  • Test fullscreen behavior before live demos
  • For large PRISM systems, ensure GPU output alignment matches projector mapping