Documentation Home
Breadcrumbs

Powerwall and Cave

Powerwall and Cave

A CAVE is a large system with ultra-high resolution displays that show stereoscopic 3D images. A Powerwall is a single-screen variant. Coupled with a tracking system, both provide immersive virtual reality experiences.

Powerwall / Cave VR Commands

These commands help you configure the render on the powerwall. They are not available in default menus — you can create your own powerwall configuration menu through VR interface customization.

[IMAGE: Powerwall commands — original at /pictures/all_v1.13_skyreal_commands_powerwall_full.png]

Interpupillary Distance

Adjusts the gap between each eye to match your interpupillary distance for correct stereoscopic rendering.

Near / Far Plane Distance

Sets the minimum and maximum distances you can physically reach in your tracking space (relative to the powerwall position). Crossing these planes alerts you that you are entering a dangerous area.

Base Tracking Height

If the origin of the tracking space does not correspond to your current elevation, you can set a height offset using this command.

Prerequisites

  • Deck / XR Center — To launch a CAVE / Powerwall session you need to launch it through Deck (either standalone or connected to XR Center)

  • Cave Daemon — Must be installed on every computer that runs a cave node. It manages Skyreal VR installation and session launching. If the computer running Deck is also a node, it needs a Cave Daemon as well.

Cave Daemon Configuration

Install Cave Daemon on every computer that runs a node, either using the installer or through the auto-updater.

To install as a Windows service (auto-start on boot), navigate to the daemon install location (default: C:\\Program Files\\Skydea\\1.19\\CaveDaemon) and run:

.\Skr.CaveDaemon.exe service install
.\Skr.CaveDaemon.exe service start

Use service stop and service uninstall to disable the service.

Cave Daemon Settings

The daemon config file is located at C:\\ProgramData\\Skydea\\cavedaemon\\cavedaemon.json:

Setting

Description

SkyRealInstallLocation

Custom path for Skyreal VR installation

ExtensionsInstallLocation

Custom path for extensions installation

DataDirectoryPath

Path for temp data like maps (default: C:\\.skrdaemon)

RpcPort

Custom port for the daemon (default: 54564)

ShutdownTimeout

Auto-shutdown timer (default: indefinite)

CustomSkyRealExePath

Path to a custom Skyreal VR executable (not recommended)

CustomVrpnPath

Custom folder path for VRPN server

Deck Configuration

  1. Enable the cave management plugin by editing deck.json in the Deck config folder (C:\\ProgramData\\Skydea\\deck):

JSON
"OptionalPlugins": [ "SkyReal Deck Cave Management" ]
  1. Configure cave/powerwall settings in cave-settings.json (same folder). Restart Deck after editing.

Key Settings

Setting

Description

NDisplayConfigurationPath

Path to your nDisplay configuration file for screen setup

VrpnConfigurationPath

Path to your VRPN configuration file

SkyrealVrInstallerPath

Path to the Skyreal VR installer (sent to Cave Daemons)

ExtensionsInstallerPaths

Array of paths to extension installers

VrpnSettings

VRPN server configuration launched alongside Skyreal VR

DaemonsSettings

Array of daemon configurations for each node

Daemon Settings in Deck

Setting

Description

DaemonIp

IP address of the daemon (add :port for custom ports)

NodeIdentifier

Node name (must match the nDisplay config file)

RenderingMode

Mono, SideBySide, TopBottom, or FrameSequential

IsPrimaryNode

Designates the primary node for config synchronization

DaemonAdditionalParameters

Custom launch parameters for a specific node

TargetScreenId

Windows screen ID for fullscreen display

CustomWindowSettings

Custom window size and position (ResX, ResY, PosX, PosY)

[IMAGE: Screen configuration — original at /pictures/v1.19/cave01.png]

Tip: Hide the Windows taskbar to avoid resizing issues. Right-click the taskbar > Taskbar Settings > check "Automatically hide the taskbar" and uncheck "Show flashing on taskbar apps".

[IMAGE: Taskbar settings — original at /pictures/v1.19/CaveConfig1.png]

It is also recommended to disable Windows DPI scaling on your nodes.

NDisplay Configuration File

The .ndisplay configuration file defines your room setup: screen positions, sizes, and cluster nodes.

As of Unreal Engine 5.0, this configuration can be done visually in the engine. Create an empty UE project with the NDisplay plugin enabled (or use the NDisplay Starter Project), then create an nDisplayConfig asset.

[IMAGE: nDisplay config asset — original at /pictures/v1.17/powerwall01.png]

Room Configuration

Set up screen sizes and positions in the top part of the editor. Select an nDisplayScreen to edit:

[IMAGE: Screen configuration editor — original at /pictures/v1.17/powerwall02.png]

  • Y = screen width, Z = screen height (in centimeters)

  • Measure the physical distance between screens and the tracking origin, then replicate it in nDisplay

[IMAGE: Multiple screens — original at /pictures/v1.17/powerwall03.png]

Place NDisplay Transform Components with specific names to control menu positions:

Component Name

Description

watch_origin

Watch placement location

watch_origin_right / watch_origin_left

Specific watch locations for left/right mode

menu_origin

Location for other Skyreal VR menus (pie menu, tool picker, etc.)

Add ?scale=X to the component name to adjust watch scale (e.g., watch_origin?scale=2.5).

Cluster Nodes

Set up cluster nodes (computers) in the bottom part of the editor. Node names and IPs must match Deck's config file.

[IMAGE: Cluster nodes — original at /pictures/v1.17/powerwall04.png]

For each node viewport, set:

  • ViewOriginDefaultViewPoint

  • ProjectionPolicy - Typesimple

  • Projection Policy - Screen → Select the appropriate nDisplayScreen

[IMAGE: Viewport settings — original at /pictures/v1.17/powerwall05.png]

Export your configuration as a .ndisplay file when done.

VRPN Configuration

Set up a JSON configuration file to define how trackers and inputs behave in Skyreal VR.

[IMAGE: VRPN config example — original at /pictures/v1.17/powerwall06.png]

Required Settings

Setting

Description

APIVersion

Config file version (currently 1)

UpdateRate

Rate at which Skyreal VR retrieves inputs from VRPN (default: 120 Hz)

Devices

Each VRPN source has an Address (IP of the VRPN server computer) and an array of Devices. Each device has a DeviceName matching the VRPN configuration (e.g., DTrack, XInput0).

[IMAGE: Device configuration — original at /pictures/v1.17/powerwall07.png]

Trackers

Setting

Description

TrackerType

HeadTracker, LeftControllerTracker, RightControllerTracker, or AdditionalTracker

Channel

VRPN channel for this tracker

AxisRemap

Coordinate system remapping (e.g., for ART Tracking: X = Y, Y = X)

Offset

Location/rotation offset for controller meshes

AttachedViewpoints

List of viewpoint names attached to this tracker

VRPN Server Setup

Configure a VRPN server in cave-settings.json under VrpnSettings:

Setting

Description

Ip

Address of the daemon running the VRPN server

CustomPort

Custom port (default VRPN port: 3883)

Config

VRPN device configuration (escape newlines with \\n)

Example VRPN config:

"Config": "vrpn_Tracker_DTrack DTrack 5000\nvrpn_XInputGamepad XInput0 0\nvrpn_XInputGamepad XInput1 1"

Starting a Cave Session

  1. A cave settings button appears on the top-right of your experience in Deck

  2. Click it to see all daemons and their connection status

  3. Click Update Daemons to install Skyreal VR on all nodes (5–10 minutes)

  4. Click Launch Cave to start the session

  5. Click Kill Skyreal on Daemons to end the session and upload saves back to Deck

[IMAGE: Cave session management — original at /pictures/v1.19/cave02.png]

Troubleshooting

Screen Remains Black

Usually indicates a connection issue between cluster nodes. Verify:

  • NodeIp and NodeName match in both nDisplay and cave-settings config files

  • All nodes can ping each other

  • Skyreal VR is allowed through the firewall

If the black screen appears only after moving tracked glasses, check your AxisRemap settings.

Skyreal VR Closes Immediately

Often related to FrameSequential mode. Try launching in Mono first. If that works, verify stereo mode is correctly enabled in both NVIDIA settings and Windows settings.

Stereo Not Working with FrameSequential

Requires the latest NVIDIA drivers:

  • GeForce RTX: driver version >= 561.09

  • Quadro RTX: driver version >= 553.35

Collaboration in Cave Mode

Collaborative sessions are disabled in CAVE mode due to Unreal limitations. For Powerwall-only setups, add to cavedaemon.json:

"DaemonAdditionalParameters": " -IsCollab=\"True\" -IsServer=\"True\""

VRPN Communication Issues

If tracking data is not being received, the firewall may be blocking it. Add a rule in Windows Defender Firewall with Advanced Security:

  1. Go to Inbound Rules > New Rule

  2. Select Program and point to vrpn_server.exe

  3. Select Authorize connection

[IMAGE: Firewall rule — original at /pictures/v1.19/CaveConfig2.png]

Color / Shadow Differences Between Nodes

Caused by Unreal rendering only visible objects per node. Enable Overscan in the nDisplay config to render a larger area than what is visible on each screen.

[IMAGE: Overscan settings — original at /pictures/v1.19/CaveConfig5.png]

License Configuration

[With the latest versions of Skyreal VR and Deck, you no longer need to set up a Skyreal VR license for each cluster node — Deck manages license authentication internally.]

Logs Collection

After each session, Unreal logs for all daemons are sent to the PC running Deck, in C:\\.skrdeck\\{username}\\CaveDaemons\\Logs. [Requires a development version of Skyreal VR installed in a non-protected folder to enable logging.]