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: |
|
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
-
Enable the cave management plugin by editing
deck.jsonin the Deck config folder (C:\\ProgramData\\Skydea\\deck):
"OptionalPlugins": [ "SkyReal Deck Cave Management" ]
-
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 |
|
NodeIdentifier |
Node name (must match the nDisplay config file) |
|
RenderingMode |
|
|
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 ( |
[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]
Menu Placement (Cave Docked Interfaces Mode)
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:
-
ViewOrigin →
DefaultViewPoint -
ProjectionPolicy - Type →
simple -
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 |
|
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 |
|
|
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 |
Example VRPN config:
"Config": "vrpn_Tracker_DTrack DTrack 5000\nvrpn_XInputGamepad XInput0 0\nvrpn_XInputGamepad XInput1 1"
Starting a Cave Session
-
A cave settings button appears on the top-right of your experience in Deck
-
Click it to see all daemons and their connection status
-
Click Update Daemons to install Skyreal VR on all nodes (5–10 minutes)
-
Click Launch Cave to start the session
-
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:
-
Go to Inbound Rules > New Rule
-
Select Program and point to
vrpn_server.exe -
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.]