Vrui Configuration File Settings Reference

Vrui's main configuration file, Vrui.cfg, is a hierarchical collection of sections containing tag/value pairs not unlike the Windows registry. The main difference is that Vrui configuration files are plain text, and that they contain strongly typed values from a rich set of types (see Vrui Configuration File Settings Value Type Reference). The outermost section in Vrui.cfg is always called "Vrui," and inside that section are any number of root sections defining the configurations of separate complete Vrui environments. These root sections are typically named by the host name of the computer running the respective environment, such that the Vrui run-time can automatically configure itself to the environment in which it is run at any given time.

The rest of this document lists and explains all tag/value pairs that exist within the following section types:

Root Section

Setting TagSetting Value TypeSetting Description
enableMultipipeboolean Master toggle for cluster-based multipipe rendering. If true, Vrui will read the following multipipe... settings and configure itself to run in a distributed environment where applications are replicated across cluster nodes and synchronized by sharing input device data and application-specific data streams. This is not the appropriate rendering mode for single-system-image multipipe architectures (such as SGI Onyx/Prism).
multipipeMasterstring Internet host name or dotted-form IP address of the master node in a distributed rendering environment. The master node is the one where users log in and start Vrui applications. Some Vrui settings rely on node indices; the index of the master node is always zero.
multipipeMasterPortinteger Number of the UDP port used for cluster communication on the master node. This port needs to be accessible from the slave nodes, i.e., it must be accepted by any installed firewalls.
Note: The master port number can be identical to the multicast port number (see below), but ideally it should be different.
multipipeSlaveslist of strings List of the internet host names or dotted-form IP addresses of the slave nodes in a distributed rendering environment. A Vrui application started on the master node will replicate itself onto these slave nodes using the multipipeRemoteCommand. Some Vrui settings rely on node indices; slave nodes are numbered in the order in which they appear in the list, starting at one.
multipipeMulticastGroupstring Internet name or dotted-form IP address of the multicast or broadcast address used for communication from the master node to the slave nodes. Vrui uses a multicast protocol if the given address is a valid IETF multicast address, and uses a broadcast protocol otherwise. All nodes in the cluster must be able to receive UDP packets sent to the multicast/broadcast address.
multipipeMulticastPortinteger Number of the UDP port used for cluster communication on the slave nodes. This port needs to be accessible from the master node, i.e., it must be accepted by any installed firewalls.
Note: The multicast port number can be identical to the master port number (see above), but ideally it should be different.
multipipeRemoteCommandstring Command used to log in to slave nodes during Vrui application startup. If not specified, this defaults to ssh.
multipipeConnectionWaitTimeoutnumber Maximum time (in seconds) a slave node will try to establish a connection to the master node before giving up with a fatal error.
multipipePingTimeoutnumber Timeout value for cluster crash detection. If a slave node does not receive data from the master for the specified time (in seconds), it sends a ping request to the master. If too many ping requests time out (see next setting), the slave node exits from Vrui.
multipipePingRetriesinteger Maximum number of ping requests sent by a slave node before it exits from Vrui (see previous setting).
multipipeReceiveWaitTimeoutnumber Maximum time (in seconds) a slave node will wait for a data packet from the master node before assuming packet loss and initiating the packet loss recovery protocol.
multipipeBarrierWaitTimeoutnumber Maximum time (in seconds) a slave node will wait for a barrier completion message from the master node before assuming packet loss and resending its own barrier arrival message.
multipipeSendBufferSizeinteger Maximum number of packets that can be waiting in any multicast pipe's send buffer; analogous to the windowSize setting of TCP ports. Larger numbers might help increase multicast bandwidth, while smaller numbers generally decrease multicast latency.
inhibitScreenSaverboolean Requests inhibition of the desktop environment's screen saver to avoid screen blanking or low-power states while a VR application is running.
inchScalenumber Defines the physical coordinate unit used to describe the Vrui environment by specifying the length of an inch in physical units. For example, if the used physical units are meters, inchScale is set to 0.0254.
meterScalenumber Defines the physical coordinate unit used to describe the Vrui environment by specifying the length of a meter in physical units. Alternative to inchScale setting, see above. For example, if the used physical units are centimeters, meterScale is set to 100.0.
displayCenterpoint Defines the center point of the Vrui display environment in physical coordinates. The center point is mostly used by applications to initialize their model coordinates. In general, the display center should be a point that is in the middle of the display space accessible by users, such as the screen center for a single-screen environment or the center point of a CAVE.
displaySizenumber Defines an approximate size for the Vrui display environment in physical coordinate units. The display size is mostly used by applications to initialize their model coordinates.
forwardDirectionvector Defines a direction vector in physical coordinates that corresponds to the typical direction a user would face when looking at a Vrui display environment. For single-screen environments it is typically a vector pointing into the screen; in CAVEs, it is typically a vector pointing into the back wall.
upDirectionvector Defines a direction vector in physical coordinates that corresponds to "up," i.e., the opposite direction of local gravity. It is mostly used by Vrui application to initialize their model coordinates such that models appear right side up.
floorPlaneplane Defines a plane in physical coordinates that corresponds to a Vrui display environment's floor. For walk-in environments such as CAVEs or upright display walls it is typically the true floor plane; for desktop-like environments it is typically a plane orthogonal to the "up" direction that is placed a few feet below the screen center.
The floor plane is used by some navigation tools or applications to lock the virtual floor of a virtual environment to the real floor of the real environment, to support virtual walking.
glyphSizenumber Specifies the display size of glyphs such as input device pointers in physical coordinates.
glyphCursorFileNamestring Specifies the name of an X cursor file containing the image to use for texture-based "fake" mouse cursors.
glyphCursorNominalSizeinteger Specifies the nominal pixel size of the mouse cursor image to load from the cursor file.
newInputDevicePositionpoint Specifies a point in physical coordinates that is used as the initial position for newly created virtual input devices. It is typically identical to the display center, but for single-screen environments, it is typically offset a few inches to be placed in front of the screen to simplify interaction with new virtual input devices.
inputDeviceAdapterNameslist of strings List of names of the input device adapter sections that specify all sources of user input recognized by Vrui applications.
inputDeviceDataSaverstring Name of input device data saver section. If this is a valid section name, Vrui will save the state of all physical input devices to a file on every frame. These files can later be played back by creating a playback input device adapter. Saving input device data can be useful during debugging, to capture a session and play it back later from inside a debugger, or to generate 3D movies of someone using a Vrui application.
updateContinuouslyboolean Flag whether to run Vrui's inner loop continuously. If this is set to false, Vrui will only update its (and the application's state) whenever new data arrives from any input devices. This is the most appropriate mode for non-immersive display environments. If set to true, Vrui will update its internal state as fast as possible, regardless of whether new input device data arrived or not. Applications that use animation will typically override this setting to run smooth animations even if no input device events arrive, or explicitly ask for state updates whenever they change their visible state.
maximumFrameRatenumber The maximum allowed frame rate for Vrui's main loop. If this parameter is set to a value larger than zero, the Vrui main loop will pad each frame to at least the duration of 1.0/maximFrameRate seconds by blocking before advancing to the next frame. Normally Vrui applications should run as fast as they can to minimize latency; however, some special uses like generating 3D movies by saving input device data (see above) might benefit from a throttled frame rate.
viewerNameslist of strings List of names of viewer sections. Viewers define how 3D models are projected onto a Vrui display environment's screens. The first viewer in the list is considered the main viewer and is treated specially, for example, is used to determine the orientation of pop-up menus.
screenNameslist of strings List of names of screen sections. Together with viewers, screens define how 3D models are projected in a Vrui display environment.
screenProtectorAreaslist of list of points A list of polygons, each defined by a list of vertices, defining the environment's accessible boundaries. If this tag is not present, the environment's boundaries will be defined by the set of screens that have the protectScreen flag set.
screenProtectorDeviceslist of screen protector devices A list of input devices and associated sphere centers and radii (in device coordinates) to warn users of moving too close to the environment's configured boundaries.
screenProtectorGridSizenumber Spacing between grid lines when drawing screen protectors in physical coordinate units.
screenProtectorGridColorcolor Color with which to draw screen protector grids.
node<index>WindowNames
windowNames
list of strings List of names of window sections. Windows are the "glue" that bind viewers to screens and implement the OpenGL-based 3D rendering used by Vrui. In cluster-based distributed display environments, there must be a node<index>WindowNames tag for each cluster node (the master node is always zero; slave nodes are numbered according to their order in the multipipeSlaves list, starting at one). Any nodes with empty window lists will not open any windows, but otherwise fully participate in the Vrui application. This is useful for cluster head nodes with low-powered graphics cards, or for dedicated audio rendering nodes.
listenerNameslist of strings List of names of listener sections. Listeners define how spatial 3D sound is rendered in a Vrui environment. The first listener in the list is considered the main listener.
node<index>SoundContextName
soundContextName
string Name of a sound context section. Sound contexts correspond to audio devices and define how spatial 3D sound is rendered in a Vrui environment. In cluster-based distributed display environments, there must be a node<index>SoundContextName tag for each cluster node that is supposed to render spatial 3D sound using the OpenAL library (the master node is always zero; slave nodes are numbered according to their order in the multipipeSlaves list, starting at one).
frontplaneDistnumber Defines the distance in physical units of the OpenGL front clipping plane from the eye points of Vrui viewers. This defines how closely a viewer can approach 3D objects before the objects are clipped away.
backplaneDistnumber Defines the distance in physical units of the OpenGL back clipping plane from the eye points of Vrui viewers. This defines how far a 3D object can move into the distance before it is clipped away.
backgroundColorcolor Defines the background color used for all windows in a Vrui display environment, unless overridden by Vrui applications.
foregroundColorcolor Defines a color that contrasts well with the selected backgroundColor, to be used by Vrui components and applications to render HUD elements and such. Defaults to the complementary color of the selected background color.
ambientLightColorcolor Defines the ambient color component used in the OpenGL lighting equation. This is the light color used when no other lights are present. It should be kept at fairly low values not to wash out display contrast.
widgetMaterialmaterial Defines the material properties of 3D GUI widgets such as pop-up menus, dialog windows, etc.
drawOverlayWidgetsboolean Switches whether 3D user interface widgets are drawn in an overlay layer above all other 3D graphics. If disabled (the default), 3D widgets are integrated with other 3D graphics and drawn at the proper depth. If enabled, widgets are still drawn at proper depth, but appear to float above other graphics. This makes the user interface more desktop-like and works well in non-stereo mode, but can cause severe eye strain in stereo modes on the desktop and especially in immersive environments.
uiSizenumber Defines a size in physical units used for general layout of 3D GUI widgets, such as border widths, text field margins, etc.
uiBgColorcolor Default background color for GLMotif UI components.
uiFgColorcolor Default foreground color for GLMotif UI components.
uiTextFieldBgColorcolor Default background color for GLMotif text fields.
uiTextFieldFgColorcolor Default foreground color for GLMotif text fields.
uiSelectionBgColorcolor Default background color for selected text in GLMotif UI components.
uiSelectionFgColorcolor Default foreground color for selected text in GLMotif UI components.
uiTitleBarBgColorcolor Default background color for title bars in GLMotif popup windows.
uiTitleBarFgColorcolor Default foreground color for title bars in GLMotif popup windows.
uiFontNamestring Name of the font used for 3D UI widgets such as labels, buttons, or text fields. Vrui uses its own texture-based fonts which are installed in the share/GLFonts directory.
uiFontTextHeightnumber Defines the height of text for 3D UI widgets in physical units.
uiFontAntialiasingboolean Toggles font smoothing for 3D UI widgets. Should be enabled if text looks "pixellated."
uiSliderWidthnumber Width of slider handles in GLMotif sliders in physical units.
uiSliderHandleColorcolor Color of slider handles in GLMotif sliders.
uiSliderShaftColorcolor Color of slider shafts in GLMotif sliders.
pointPickDistancenumber Maximum "fudge" distance for a point-based 3D pick request.
rayPickAnglenumber Maximum "fudge" angle in degrees for a ray-based 3D pick request.
animationFrameIntervalnumber Suggested frame time interval for general-purpose animations.
uiManagerstring Name of UI manager section. The UI manager is responsible for arranging 2.5D UI components in physical space.
toolsstring Name of tool manager section. The tool manager is responsible for translating low-level input device events such as button presses into higher-level application functions such as navigation.
visletsstring Name of vislet manager section. Vislets are additional rendering modules that can be loaded into arbitrary Vrui applications as plug-ins.

Input Device Adapter Sections

Setting TagSetting Value TypeSetting Description
inputDeviceAdapterTypeenumerant
Mouse
Adapter for the window system's mouse and keyboard devices. Rest of the section contains mouse input device adapter settings.
Multitouch
Adapter for direct-mode multi-touch capable screens. Rest of the section contains multitouch input device adapter settings.
DeviceDaemon
Adapter to receive input from Vrui's own stand-alone device driver daemon. Rest of the section contains DeviceDaemon input device adapter settings.
Trackd
Adapter to receive input from an external trackd daemon (part of the CAVElib library). Rest of the section contains Trackd input device adapter settings.
VisBox
Adapter to receive input from the proprietary head tracker used in VisBox systems. Rest of the section contains VisBox input device adapter settings.
HID
Adapter to receive input from human interface devices (HIDs) provided by the operating system's input layer. Rest of the section contains HID input device adapter settings.
OVRD
Adapter to receive input from Oculus Rift HMDs provided by Oculus VR's ovrd tracking daemon. Rest of the section contains OVRD input device adapter settings.
Dummy
Adapter to create static "dummy" input devices for debugging/development purposes. Rest of the section contains Dummy input device adapter settings
Playback
Adaper to read back input device data saved in a previous session, using the saveInputDeviceData and inputDeviceDataFileName root section settings (for debugging or to record screenshot movies of VR interactions after the fact). Rest of the section contains playback input device adapter settings.

Mouse Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
numButtonsinteger Defines the number of buttons on the actual mouse device as reported by the windowing system. Is typically 3 in X11-based systems. The total number of buttons in each button plane (see modifierKeys setting) is the number of button keys (see the buttonKeys setting) plus the number of actual mouse buttons.
buttonKeyslist of key names Lists a subset of keyboard keys that are treated just like mouse buttons by the mouse input device adapter. The total number of buttons in each button plane (see modifierKeys setting) is the number of button keys plus the number of actual mouse buttons (see the numButtons setting).
modifierKeyslist of key names Lists the set of modifier keys recognized by the Vrui mouse input device adapter. Modifier keys (and combinations thereof) allow access to several button planes to increase the total number of available buttons. For example, if LeftCtrl and LeftAlt are listed as modifier keys, Vrui will create four button planes (no modifier, LeftCtrl only, LeftAlt only, LeftCtrl+LeftAlt). Buttons are numbered sequentially inside each plane by mouse buttons first and then button keys, and then in order of planes. Planes are ordered according to modifier button combinations in LSB-first binary code. The plane with no modifiers pressed is always zero, and in the preceding example, the (LeftCtrl only) plane is 1, and the (LeftCtrl+LeftAlt) plane is 3.
Note: Any buttons (mouse buttons and/or button keys) that are pressed while the button plane is changed stay pressed until their button plane is selected again. This can be very useful especially in desktop-like environments.
modifiersAsButtonsboolean Flag to forward the states of modifier keys as special buttons not associated with any button plane.
keyboardModeToggleKeyqualified key name The name of the key used to toggle the keyboard between input device mode, where selected button keys and modifier keys control the buttons of a virtual input device, and keyboard mode, where the keyboard can be used to enter and edit text as usual. This setting defaults to F1.
grabPointerboolean If true, a Vrui application attempts to grab the mouse pointer while any mouse buttons or keys or modifier keys are pressed. Defaults to true.
fakeMouseCursorboolean Enables a texture-based mouse cursor to be rendered at the position of the mouse input device controlled by the input device adapter. This is useful in situations where the hardware mouse cursor is not available, or is inappropriate, such as in mouse-controlled cluster environments. This setting defaults to false.
mouseIdleTimeoutnumber Marks the mouse as idle after the given time in seconds has elapsed and hides the mouse cursor.

Multitouch Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
maxNumDevicesinteger Maximum supported number of parallel touch events.

DeviceDaemon Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
serverNamestring Internet host name or dotted-form IP address of the server computer running the VR device daemon (often the local host). The server computer must be reachable from the Vrui master node via TCP.
serverPortinteger Number of the TCP port used to communicate with the VR device daemon. This port must be accessible from the Vrui master node, i.e., it must be enabled in any firewalls.
predictMotionboolean Flag to enable motion prediction, both to estimate current states of recent device tracking state updates, and predict state at the next vertical sync.
motionPredictionDeltanumber Amount of motion prediction to apply to positions and orientations of all tracked devices, in seconds.
inputDeviceNameslist of strings List of names of DeviceDaemon input device sections. Each section defines a single input device, i.e., a collection of an (optional) tracker and a set of buttons and valuators (analog axes).

DeviceDaemon Input Device Sections

If the name of an input device configuration file section matches the name of a virtual input device defined by the connected VR device daemon, all settings except deviceGlyphType and deviceGlyphMaterial are ignored, and their values are instead taken from the virtual input device descriptor received from the VR device daemon.

namestring The name of the input device used by Vrui itself and visible to Vrui applications. Defaults to the name of the configuration file section.
trackTypeenumerant
None
The input device does not have a tracker; it only contains buttons and/or valuators.
3D
The input device has a tracker that reports 3D position only, but no orientation.
Ray
The input device has a tracker that reports 3D position and a single direction vector, but no full orientation.
6D
The input device has a tracker that reports both 3D position and full 3D orientation.
numButtonsinteger Number of buttons on the input device.
numValuatorsinteger Number of valuators (analog axes) on the input device.
deviceRayDirectionvector The direction of a ray in local device coordinates that is used for ray-based interactions such as menu selection.
deviceRayStartnumber The ray parameter from which on a device ray is considered valid for intersection tests, in physical coordinate units. Positive value move the ray start along the ray direction.
deviceGlyphTypeglyph type Type of glyph used to draw a 3D representation of the input device in the Vrui display environment.
deviceGlyphMaterialmaterial Material properties to render the device glyph.
trackerIndexinteger Index of the device's tracker in the flat tracker name space of the VR device daemon.
buttonIndexBaseinteger Base index of the device's buttons in the flat button name space of the VR device daemon. Provides a default index for each device button by adding the button index on the device to the base index.
buttonIndex<index>integer Index of one of the device's buttons in the flat button name space of the VR device daemon. Can be used to override default indices for individual buttons.
valuatorIndexBaseinteger Base index of the device's valuators in the flat valuator name space of the VR device daemon. Provides a default index for each device valuator by adding the valuator index on the device to the base index.
valuatorIndex<index>integer Index of one of the device's valuators in the flat valuator name space of the VR device daemon. Can be used to override default indices for individual valuators.
buttonNameslist of strings Specifies names for all buttons on the device. If no names or too few names are given, unnamed buttons are given a "Button<index>" default name.
valuatorNameslist of strings Specifies names for all valuators on the device. If no names or too few names are given, unnamed valuators are given a "Valuator<index>" default name.

Trackd Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
sensorMemoryKeyinteger Key to access the trackd daemon's sensor data shared memory segment.
controllerMemoryKeyinteger Key to access the trackd daemon's controller data shared memory segment.
inputDeviceNameslist of strings List of names of Trackd input device sections. Each section defines a single input device, i.e., a collection of an (optional) tracker and a set of buttons and valuators (analog axes).
calibrationTransformationorthogonal transformation A transformation to convert incoming trackd sensor positions and orientations from the trackd daemon's own coordinate system to Vrui's physical coordinate system to account for mixed-use setups where the coordinate systems do not match.
updateRatenumber Forces a minimal update rate (in Hz) onto a Vrui application to work around the lack of event notification in the trackd daemon's shared-memory protocol. If set to 0.0 (the default), automatic updates are disabled.
spinPollboolean When true, starts a background thread simulating event notification by active-waiting for a change in data time stamp on the trackd daemon's sensor and controller shared memory segments.

Trackd Input Device Sections

namestring The name of the input device used by Vrui itself and visible to Vrui applications. Defaults to the name of the configuration file section.
trackTypeenumerant
None
The input device does not have a tracker; it only contains buttons and/or valuators.
3D
The input device has a tracker that reports 3D position only, but no orientation.
Ray
The input device has a tracker that reports 3D position and a single direction vector, but no full orientation.
6D
The input device has a tracker that reports both 3D position and full 3D orientation.
numButtonsinteger Number of buttons on the input device.
numValuatorsinteger Number of valuators (analog axes) on the input device.
deviceRayDirectionvector The direction of a ray in local device coordinates that is used for ray-based interactions such as menu selection.
deviceRayStartnumber The ray parameter from which on a device ray is considered valid for intersection tests, in physical coordinate units. Positive value move the ray start along the ray direction.
deviceGlyphTypeglyph type Type of glyph used to draw a 3D representation of the input device in the Vrui display environment.
deviceGlyphMaterialmaterial Material properties to render the device glyph.
trackerIndexinteger Index of the device's tracker in the flat tracker name space of the VR device daemon.
buttonIndexBaseinteger Base index of the device's buttons in the flat button name space of the VR device daemon. Provides a default index for each device button by adding the button index on the device to the base index.
buttonIndex<index>integer Index of one of the device's buttons in the flat button name space of the VR device daemon. Can be used to override default indices for individual buttons.
valuatorIndexBaseinteger Base index of the device's valuators in the flat valuator name space of the VR device daemon. Provides a default index for each device valuator by adding the valuator index on the device to the base index.
valuatorIndex<index>integer Index of one of the device's valuators in the flat valuator name space of the VR device daemon. Can be used to override default indices for individual valuators.
buttonNameslist of strings Specifies names for all buttons on the device. If no names or too few names are given, unnamed buttons are given a "Button<index>" default name.
valuatorNameslist of strings Specifies names for all valuators on the device. If no names or too few names are given, unnamed valuators are given a "Valuator<index>" default name.

VisBox Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
sharedMemoryKeyinteger Shared memory key of the shared memory segment the VisBox tracker driver (VisTracker) dumps its data into. Default value is the default VisTracker memory key, 57005 (0xDEAD in hex).
namestring The name of the input device used by Vrui itself and visible to Vrui applications. Defaults to the name of the configuration file section.
deviceRayDirectionvector The direction of a ray in local device coordinates that is used for ray-based interactions such as menu selection.
deviceRayStartnumber The ray parameter from which on a device ray is considered valid for intersection tests, in physical coordinate units. Positive value move the ray start along the ray direction.
deviceGlyphTypeglyph type Type of glyph used to draw a 3D representation of the input device in the Vrui display environment.
deviceGlyphMaterialmaterial Material properties to render the device glyph.

HID Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
inputDeviceNameslist of strings List of names of HID input device sections. Each section defines a single input device, i.e., a collection of a set of buttons and valuators (analog axes).

HID Input Device Sections

namestring The name of the input device used by Vrui itself and visible to Vrui applications. Defaults to the name of the configuration file section.
deviceVendorProductIdstring A colon-separated pair of hexadecimal numbers defining the vendor and product ID, respectively, of the input device to be used, as defined by the USB specification.
deviceIndexinteger Index of the device to be used among devices with the same vendor/product ID. If this value is 0 (the default), the first matching device is used.
trackingDeviceNamestring The name of another input device to which to lock this device's tracking state.
trackingDeviceTypeenumerant If a tracking input device is specified, this setting overrides the tracking type of that device.
None
The input device does not have a tracker; it only contains buttons and/or valuators.
3D
The input device has a tracker that reports 3D position only, but no orientation.
Ray
The input device has a tracker that reports 3D position and a single direction vector, but no full orientation.
6D
The input device has a tracker that reports both 3D position and full 3D orientation.
projectDevicebool Flag selecting whether this device is projected by the UI manager.
axis<index>Settingaxis value mapper Defines the value mapping for one of the device's absolute or relative analog axes, numbered starting from 0 in the order they are enumerated by the device. Allows to fine-tune the behavior of each device axis individually.
buttonNameslist of strings Specifies names for all buttons on the device. If no names or too few names are given, unnamed buttons are given a "Button<index>" default name.
valuatorNameslist of strings Specifies names for all valuators on the device. If no names or too few names are given, unnamed valuators are given a "Valuator<index>" default name.

OVRD Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
cameraTransformtracker state Transformation from Oculus Rift tracking camera space to Vrui physical space.
postTransformtracker state Adjustment transformation in HMD's coordinate system.
namestring The name of the input device used by Vrui itself and visible to Vrui applications. Defaults to "OculusRift".
deviceRayDirectionvector The direction of a ray in local device coordinates that is used for ray-based interactions such as menu selection.
deviceRayStartnumber The ray parameter from which on a device ray is considered valid for intersection tests, in physical coordinate units. Positive value move the ray start along the ray direction.
deviceGlyphTypeglyph type Type of glyph used to draw a 3D representation of the input device in the Vrui display environment.
deviceGlyphMaterialmaterial Material properties to render the device glyph.

Dummy Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
inputDeviceNameslist of strings List of names of DeviceDaemon input device sections. Each section defines a single input device, i.e., a collection of an (optional) tracker and a set of buttons and valuators (analog axes).

Dummy Input Device Sections

namestring The name of the input device used by Vrui itself and visible to Vrui applications. Defaults to the name of the configuration file section.
trackTypeenumerant
None
The input device does not have a tracker; it only contains buttons and/or valuators.
3D
The input device has a tracker that reports 3D position only, but no orientation.
Ray
The input device has a tracker that reports 3D position and a single direction vector, but no full orientation.
6D
The input device has a tracker that reports both 3D position and full 3D orientation.
transformtracker state Constant position and orientation of the input device in physical space.
deviceRayDirectionvector The direction of a ray in local device coordinates that is used for ray-based interactions such as menu selection.
deviceRayStartnumber The ray parameter from which on a device ray is considered valid for intersection tests, in physical coordinate units. Positive value move the ray start along the ray direction.
deviceGlyphTypeglyph type Type of glyph used to draw a 3D representation of the input device in the Vrui display environment.
deviceGlyphMaterialmaterial Material properties to render the device glyph.
numButtonsinteger Number of buttons on the input device.
numValuatorsinteger Number of valuators (analog axes) on the input device.
buttonNameslist of strings Specifies names for all buttons on the device. If no names or too few names are given, unnamed buttons are given a "Button<index>" default name.
valuatorNameslist of strings Specifies names for all valuators on the device. If no names or too few names are given, unnamed valuators are given a "Valuator<index>" default name.

Playback Input Device Adapter Settings

Setting TagSetting Value TypeSetting Description
inputDeviceDataFileNamestring Name of the input file from which to read input device data. The file must have been created by saving input device data from a previous run of the same Vrui application, in the exact same environment; otherwise, results are undefined.
preTransformorthogonal transformation Optional transformation applied from the left to stored input device tracking data.
device<index>GlyphTypeglyph type Type of glyph used to draw a 3D representation of the input device of the given zero-based index in the Vrui display environment.
device<index>GlyphMaterialmaterial Material properties to render the device glyph of the given zero-based index.
fakeMouseCursorDeviceinteger If set to a valid input device index from the loaded input device file, enables a texture-based mouse cursor to be rendered at the position of the selected input device. This is useful when playing back sessions recorded in mouse-controlled environments, since otherwise the mouse cursor would not show up.
mouseCursorImageFileNamestring The name of the cursor image file from which to load the fake mouse cursor, if enabled.
mouseCursorNominalSizeinteger The nominal size of the mouse cursor which is to be loaded from the cursor image file. Nominal sizes are defined in the cursor file itself, and Vrui selects the most closely matching size from the file.
mouseCursorSizesize Size of the rendered mouse cursor glyph in physical coordinates. The third component of the given value is ignored.
mouseCursorHotspotvector Offset from the bottom-left corner of the mouse cursor image to the cursor "hotspot," i.e., the position that corresponds to the mouse position. Normalized to lie within [0, 1] in both directions; the third component of the given value is ignored.
synchronizePlaybackbool When this flag is set to true, the playback input device adapter will synchronize the timing of Vrui application frames with the time stamps stored in its input file. As a result, the playback should run exactly at the same speed as the original recording.
quitWhenDonebool When this flag is set to true, the playback input device adapter will shut down the Vrui application after reading its entire input file.
soundFileNamestring Name of a sound file to be played in synchronization with the input device data. The sound file must have been recorded by the input device data saver in the same session as the input device data file.
saveMoviebool When this flag is set to true, the playback input device adapter will create a movie by saving a sequence of screen shots from a specified window on the master node, exactly at specified intervals.
movieFileNameTemplatestring Printf-style format string to generate image file names for the screenshots written while generating a movie. The template must contain exactly one integer conversion specifier, of the form %[0-9]*d.
movieWindowIndexinteger The index of the master node window from which to save screenshots for a movie. This integer must be a valid index in the master node's list of windows; saving movie screenshots from a window on a slave node is not yet supported.
movieFrameRatenumber Target frame rate for the exported movie. The playback input device adapter will export slices at exactly the specified times to guarantee real-time playback even if Vrui's main loop frame rate varies. Movie frames will point sample the sequence of Vrui frames: short Vrui frames might be skipped and not generate movie frames, and long Vrui frames might generate multiple identical movie frames.
movieSkipFramesinteger Number of initial frames to skip when saving a movie. Defaults to 0.
movieFirstFrameIndexinteger The index to assign to the first saved movie frame after initial frames have been skipped. Defaults to 0.

Input Device Data Saver Section

Setting TagSetting Value TypeSetting Description
inputDeviceDataFileNamestring Name of the file to which the data of all physical input devices is to be saved. The name of the file will be modified by inserting a unique four-digit sequence number before the file name extension.
soundFileNamestring Name of a sound file to be recorded in synchronization with the saved input device data. The sound file can later be played back synchronized to the input device data by the playback input device adapter.
sampleResolutioninteger Sampling resolution for sound recording in bits.
numChannelsinteger Number of channels for sound recording. 1 = mono, 2 = stereo, etc.
sampleRateinteger Sample rate for sound recording in Hertz.

Viewer Sections

Setting TagSetting Value TypeSetting Description
namestring Name of the viewer used by Vrui itself, and visible to Vrui applications. Defaults to the name of the configuration file section.
headTrackedboolean Flag whether the viewer is attached to an input device or at a fixed position in physical space.
headDevicestring If the headTracked flag is true, the name of the input device the viewer is attached to.
headDeviceTransformationtracker state The transformation from local viewer space into physical space (if headTracked is false) or local input device space (if headTracked is true).
viewDirectionvector Defines a general viewing direction in local viewer coordinates.
upDirectionvector Defines an upwards-pointing direction in local viewer coordinates.
monoEyePositionpoint Defines a point in local viewer coordinates used for monoscopic rendering.
leftEyePositionpoint Defines the position of the viewer's left eye in local viewer coordinates.
rightEyePositionpoint Defines the position of the viewer's right eye in local viewer coordinates.
headLightEnabledboolean If true, attaches a head light source to the viewer.
headLightPositionpoint Position of the head light source in lcoal viewer coordinates.
headLightDirectionvector Direction of the head light source in local viewer coordinates.
headLightColorcolor Light color of the head light source.
headLightSpotCutoffnumber Cutoff angle (in degrees) for the head light source. The light source will only affect 3D objects inside a cone around the head light direction with the given opening angle. The opening angle must be either between 0 and 90, or equal to 180 to create a point light source.
headLightSpotExponentnumber Coefficient defining the drop-off of light intensity of the head light source around the head light direction. Defines a non-directional point light source if set to zero and increasingly more focused spot lights if set to larger values.

Screen Sections

Setting TagSetting Value TypeSetting Description
namestring Name of the screen used by Vrui itself, and visible to Vrui applications. Defaults to the name of the configuration file section.
deviceMountedboolean Toggles whether the screen is attached to an input device (such as head-mounted displays) or at a fixed position/orientation in physical coordinates.
deviceNamestring If deviceMounted is true, gives the name of the input device the screen is attached to.
transformtracker state Directly specifies the screen's transformation with respect to physical space (if deviceMounted is false) or to local device space (if deviceMounted is true). If this tag does not exist, Vrui uses the origin, horizontalAxis, and verticalAxis tags instead.
originpoint Defines the origin (lower-left corner in pixel coordinates) of the screen in physical coordinates (if deviceMounted is false) or in local device coordinates (if deviceMounted is true).
horizontalAxisvector Direction of the screen's horizontal axis (left to right in pixel coordinates) in physical coordinates (if deviceMounted is false) or in local device coordinates (if deviceMounted is true).
widthnumber Width of the screen in physical units.
verticalAxisvector Direction of the screen's vertical axis (bottom to top in pixel coordinates) in physical coordinates (if deviceMounted is false) or in local device coordinates (if deviceMounted is true).
heightnumber Height of the screen in physical units.
rotateCenterpoint Defines the center point of an additional rotation that can be used to easily rotate a screen around any desired axis (such as in adjustable workbenches or flexible CAVEs).
rotateAxisvector Axis of an additional rotation around the center point defined by the rotateCenter tag.
rotateAnglenumber Angle of additional screen rotation in degrees.
preTransformtracker state An arbitrary orthonormal transformation (translation + rotation) to move the screen's position and orientation in physical space (if deviceMounted is false) or in local device space (if deviceMounted is true).
offAxisboolean Flag whether the screen is projected off-axis, i.e., requires a correction homography.
homography3x3 matrix A 3x3 matrix defining a homography in screen space, which transforms the screen's theoretical rectangle into the screen's projected quadrilateral.
intersectboolean Flag whether the screen is considered for intersection tests in screen-based UI methods.
protectScreenboolean Flag whether this screen's display area will be included in the definition of the environment's boundaries (also see screenProtectorAreas tag).

Listener Sections

Setting TagSetting Value TypeSetting Description
namestring Name of the listener used by Vrui itself, and visible to Vrui applications. Defaults to the name of the configuration file section.
headTrackedboolean Flag whether the listener is attached to an input device or at a fixed position in physical space.
headDevicestring If the headTracked flag is true, the name of the input device to which the listener is attached.
headDeviceTransformationtracker state The transformation from local listener space into physical space (if headTracked is false) or local input device space (if headTracked is true).
headPositionvector Defines the listener's head position in the listener's local space.
listenDirectionvector Defines a forward-pointing vector in the listener's local space.
upDirectionvector Defines an up-pointing vector in the listener's local space.
gainnumber Overall gain factor for this listener in all sound contexts.

Window Sections

Setting TagSetting Value TypeSetting Description
viewerNamestring Name of the viewer associated with this window.
leftViewerName
rightViewerName
string Pair of tags to specify different viewers handling the window's left and right eyes, respectively. These tags are only useful for one very specific purpose, and should generally not be used.
screenNamestring Name of the screen associated with this window.
leftScreenName
rightScreenName
string Pair of tags to specify different screens handling the window's left and right eye views. This is necessary in some specific circumstances, such as in head-mounted displays.
displaystring Name of the X11 display to use for this window; defaults to the local display defined by the DISPLAY environment variable.
screeninteger Zero-based index of the X11 screen on the window's X11 display to which to direct this window. If not specified, defaults to the X11 connection's default screen, i.e., the .X part of the display name.
outputNamestring Name of an output, i.e., a video signal connector or connected monitor, on the graphics adapter associated with the window's X display, on which the window should be placed, and inside whose pixel area the window is panned if panningViewport is true.
groupIdinteger ID of the window group to which this window belongs. Windows inside the same group share OpenGL contexts and OpenGL data and a rendered in sequence; separate groups are rendered in parallel from individual threads. Group IDs are local to each node in a Vrui cluster.
windowSizewindow size Initial size of the window's interior on the display in pixel units. This is only a request to the window manager, which might disallow certain placements.
windowPoswindow position Initial position of the window's interior on the display in pixel coordinates. The position component places the top-left corner of the window's interior, with (0, 0) corresponding to the top-left corner of the screen. This is only a request to the window manager, which might disallow certain placements.
decorateboolean Flag whether to put window manager decorations (title bar, frame, buttons) around the window. This is only a request to the window manager, but is generally granted.
bypassCompositorboolean Flag whether to bypass desktop compositing for this window, to reduce rendering latency. This is only a request to the window manager, and might not be granted.
windowFullscreenboolean Flag whether to initially maximize the window (removing all window decoration and screen borders).
useBackBufferboolean Flag whether to force double-buffered rendering in this window, even if the window type and other settings would allow front-buffer rendering.
vsyncboolean Flag whether to enable vertical retrace synchronization on this window, for tear-free rendering and smooth frame rates at the cost of increased latency.
lowLatencyboolean Flag whether to reduce display latency if vsync is enabled, at the cost of the CPU busy-waiting for the vertical retrace period.
preSwapDelaynumber If front-buffer rendering, number of milliseconds before the vertical retrace signal to start the final lens distortion correction rendering pass for tear-free and smooth rendering. Requires the optional GLX_NV_delay_before_swap OpenGL extension.
windowTypeenumerant
Mono
Monoscopic window; uses the associated viewer's monoscopic eye position.
LeftEye
Left-eye view only; uses the associated viewer's left eye position.
RightEye
Right-eye view only; uses the associated viewer's right eye position.
AnaglyphicStereo
Stereoscopic rendering using anaglyphic (red/blue color separation) stereo.
SplitViewportStereo
Stereoscopic rendering using two separate viewports in the same window, such as side-by-side stereo. The two used viewports can be exactly specified using the leftViewportPos and rightViewportPos settings.
InterleavedViewportStereo
Stereoscopic rendering using two interleaved viewports in the same window, for example by using even pixel columns for the left eye, and odd pixel columns for the right eye. This is the stereo mode often supported by commodity stereoscopic displays like 3D DLP televisions, or polarizing flat panel monitors. The interleaving pattern can be specified via the interleavePattern tag.
QuadbufferStereo
Stereoscopic rendering using a quad-buffered visual (also known as "active" stereo). Typically only supported by professional-level graphics cards such as Nvidia Quadros.
leftViewportPoswindow position Position of the viewport used for left-eye views in SplitViewportStereo stereo mode in window coordinates.
rightViewportPoswindow position Position of the viewport used for right-eye views in SplitViewportStereo stereo mode in window coordinates.
interleavePatternstring Interleave pattern for InterleavedViewportStereo stereo mode. The string must be four characters long and consist only of the characters L and R, either uppercase or lowercase. The string defines a 2x2 pixel tile in order top to bottom and left to right, where L or R indicate that the corresponding pixels belongs to the left or right eye, respectively.
multisamplingLevelinteger Level of OpenGL multisampling to use for the window. Support for this feature, and the available level numbers, are dependent on the model of installed graphics card.
lensCorrectorNamestring Name of the lens correction configuration section for this window, defining parameters for lens distortion correction as required for commodity head-mounted displays.
mouseScreenNamestring Name of a screen used to project the mouse cursor position into 3D space. If not specified, this defaults to the screen associated with the viewport of the window currently containing the mouse cursor. Using a mouse screen helps improve mouse interaction specifically on split-viewport stereo windows.
autoScreenSizeboolean If set to true, instructs the window to query the physical size of its associated X11 screen, and override the configured size of its associated VR screen with the found values. If the X11 server is configured correctly, this will result in accurate physical units in the display window for any connected monitor.
panningViewportboolean Flag determining the relationship between the display screen containing a window and the Vrui screen describing the window's position in physical space. If this flag is set to false (the default), the associated Vrui screen is always fully mapped to the window's current position and size. If the flag is true, the Vrui screen is considered to map to the display screen containing the window instead. In effect, this means that the window serves as a sliding viewport into the 3D environment as seen through the screen. Moving or resizing a window with a panning viewport will not affect the position or size of the shown model.
panningDomainwindow position Overrides a window's panning domain if panningViewport is true. By default, a window's panning domain is the entire X screen. Explicitly specifying a panning domain, and disabling autoScreenSize, makes it possible to use panning windows in multi-monitor setups where the monitor's resolutions (in pixels/length unit) do not match.
navigateboolean Flag defining the effect of moving or resizing a panning-viewport window on the displayed 3D scene. If this flag is true, moving the window will move the 3D scene, and resizing the window will scale the 3D scene using a "fake" navigation tool. In effect, navigation will make a Vrui window behave almost exactly like a 3D window in desktop-centric applications, but the 3D scene will still be projected from the correct viewpoint to provide, for example, correct stereoscopic rendering.
movePrimaryWidgetsboolean Flag to move popped-up primary widgets along with a panning-viewport window when it is moved or resized.
toolKillZonePoswindow point Setting to override the position of the tool kill zone when moving/resizing panning-viewport windows. By default, the position of the tool kill zone is given in physical coordinates and does not move with the window. If this tag is set, the tool kill zone will always stay at the given relative window coordinates. Relative window coordinates map (0, 0) to the lower-left window corner and (1, 1) to the top-right window corner.
exitKeyqualified key name Key that terminates the Vrui application without confirmation. Defaults to Esc.
homeKeyqualified key name Key that resets the navigation transformation to the application-defined default. Defaults to Super+Home.
screenshotKeyqualified key name Key to request a screenshot from this Vrui window. Defaults to Super+Print.
fullscreenToggleKeyqualified key name Key to toggle the Vrui window between windowed and fullscreen mode. Defaults to F11.
burnModeToggleKeyqualified key name Key to switch the Vrui window into and out of "burn mode," in which frames are generated and rendered as quickly as possible to calculate the performance of the Vrui application. Defaults to Super+ScrollLock.
saveMovieboolean Flag to enable saving the contents of this window as a movie, either as a sequence of frames or directly as an Ogg/Theora video file.
movieSaveTheoraboolean Flag to save movies in Ogg/Theora format instead of a sequence of frame images.
movieFileNamestring Name of Ogg/Theora video file to create.
movieBitRateinteger Bitrate for Ogg/Theora compressor. If set to a non-zero value, compressor will use constant bit rate encoding.
movieQualityinteger Variable bit rate encoding quality for Ogg/Theora compressor.
movieGopSizeinteger Keyframe distance for Ogg/Theora compressor.
movieFrameNameTemplatestring Printf-style name template for movie frame images when not saving to an Ogg/Theora video file. The format string must contain exactly one %u placeholder, and no other placeholders.
movieFrameRatenumber Desired movie frame rate in frames/second.
movieSoundFileNamestring Name of sound file to record while saving a movie. If not specified, no sound will be recorded.
movieSoundDeviceNamestring Name of sound device from which to record. If not specified, recorder will use system's default sound device.
movieSampleResolutioninteger Sample resolution for sound recording in bits.
movieNumChannelsinteger Number of channels for sound recording.
movieSampleRateinteger Sample rate for sound recording in Hertz.
showFpsboolean Flag to display the current (filtered) Vrui frame rate in the window. Frame rates are only displayed while the Vrui application is in "burn mode."
showFpsFontNamestring Name of the font used to display the current frame rate in the window. Vrui uses its own texture-based fonts which are installed in the share/GLFonts directory.
joinSwapGroupboolean Flag whether a window should become part of a swap group (deprecated feature only available on some Nvidia graphics cards).
swapGroupNameinteger Numeric identifier of the swap group the window should join (deprecated feature only available on some Nvidia graphics cards).
swapBarrierNameinteger Numeric identifier of the swap barrier on which the window should wait before swapping buffers (deprecated feature only available on some Nvidia graphics cards).

Lens Correction Configuration Section

Setting TagSetting Value TypeSetting Description
lensCenterDistnumber Distance between the centers of the left and right lenses, in physical coordinate units. Used to generate default lens center positions. Default value is 2.5".
lensScreenDistnumber Distance from screen surface to the surface of the left and right lenses, in physical coordinate units. Used to generate default lens center positions. Default value is the smaller of the widths of the window's left and right screens.
lensFocalLengthnumber Focal length of both lenses in Vrui physical units. Default value is 2.5".
lensProjectionDistnumber Distance from projected virtual screen surface to the surface of the left and right lenses, in physical coordinate units.
leftLensCenter
rightLensCenter
point 3D positions of the left/right lenses' centers, in screen coordinates of the window's left/right screens, respectively. Default values are based on lensCenterDist, lensScreenDist, and the vertical center points of the windows left/right screens, respectively.
leftLensFocalLength
rightLensFocalLength
point Focal lengths of the left and right lenses, respectively.
leftLensProjectionDist
rightLensProjectionDist
number Projection distances for the virtual left and right screens, respectively. Used to automatically create virtual screens based on window's real screens.
leftFormulaNames
rightFormulaNames
list of exactly three strings List of names of distortion function sections for the left/right lenses, respectively, in the order green-channel distortion function, red-channel distortion modulation function, blue-channel distortion modulation function.
leftOverscan
rightOverscan
list of exactly four numbers List of left, right, bottom, and top overscan factors for the left/right lenses, respectively, accounting for increased FOV due to lens magnification. Default values are (0.0, 0.0, 0.0, 0.0) for no overscan.
projectScreensboolean Flag whether to override the window's specified left and right screens with virtual versions projected by the left and right lenses, respectively.
superSamplingnumber Magnification factor for the pre-distortion render buffer for super-sampling antialiasing. Defaults to 1.0 for no super-sampling.
warpMeshSizelist of exactly two integers List of integers not smaller than one defining the number of columns and rows in the lens correction warp mesh, respectively. Default value is (64, 64).
warpReprojectboolean Flag whether to use reprojection during warp to reduce apparent display latency. Defaults to true.
warpCubicLookupboolean Flag whether to use cubic interpolation when re-sampling a pre-distortion render image into the final window during lens distortion correction. Defaults to false.
displayRotationnumber Rotation angle for the display rendered into by the lens corrector, in degrees in 90 degree increments. When using display correction, the window size gives the true (unrotated) size and position of the window, and the screen positions, dimensions, and orientations are unrotated in physical or HMD device space.
oledCorrectionFactorslist of exactly two numbers "Overdrive" correction factors to account for OLED pixels' non-instantaneous switch times. The first number is the overdrive factor applied to pixels of increasing brightness, the second is the factor applied to pixels of decreasing brightness. Default value is (0.0, 0.0) for no overdrive correction.
fixContrastboolean Flag to enable or disable automatic contrast reduction when OLED overdrive correction is enabled. Default value is true.

Lens Distortion Function Sections

Setting TagSetting Value TypeSetting Description
typeenumerant
Polynomial
Simple polynomial distortion formula of arbitrary degree. Rest of the section contains polynomial lens distortion function settings.
ReciprocalPolynomial
Reciprocal polynomial distortion formula of arbitrary degree. Rest of the section contains reciprocal polynomial lens distortion function settings.
CatmullRomSpline
Catmull-Rom spline distortion formula with arbitrary number of control points and a linear scaling factor. Rest of the section contains Catmull-Rom spline lens distortion function settings.

Polynomial Lens Distortion Function Settings

Setting TagSetting Value TypeSetting Description
coefficientslist of numbers List of coefficients for the polynomial function f(x)=c[0] + x*(c[1] + x*(c[2] + ...)). A value of 1.0 is implicitly added to the first coefficient.

Reciprocal Polynomial Lens Distortion Function Settings

Setting TagSetting Value TypeSetting Description
coefficientslist of numbers List of coefficients for the reciprocal polynomial function f(x)=1.0 / (c[0] + x*(c[1] + x*(c[2] + ...))). A value of 1.0 is implicitly added to the first coefficient.

Catmull-Rom Spline Lens Distortion Function Settings

Setting TagSetting Value TypeSetting Description
r2Maxnumber Maximum squared radius expected by the Catmull-Rom spline.
coefficientslist of numbers List of coefficients, aka control point values, for the Catmull-Rom spline. Control points are spaced uniformly in the [0, r2Max] interval.

Sound Context Section

Setting TagSetting Value TypeSetting Description
listenerNamestring Name of the listener associated with this sound context.
deviceNamestring Name of the OpenAL sound device used by this sound context.
mixerFrequencyinteger Frequency for the main channel mixer in Hz.
refreshFrequencyinteger Refresh frequency for the main channel mixer in Hz.
numMonoSourcesinteger Hints to the main channel mixer how many mono audio sources to expect.
numStereoSourcesinteger Hints to the main channel mixer how many stereo audio sources to expect.
speedOfSoundnumber Speed of sound in physical coordinate units/s. Used to compute Doppler shift.
dopplerFactornumber Exaggeration factor for Doppler shift.
distanceAttenuationModelenumerant Distance model for source gain attenuation.
Constant
Source gain is unaffected by distance (default setting).
Inverse
Source gain is inversely proportional to distance from listener.
InverseClamped
Ditto, with minimum and maximum gain clamping.
Linear
Source gain drops linearly with distance from listener.
LinearClamped
Ditto, with minimum and maximum gain clamping.
Exponential
Source gain drops exponentially with distance from listener.
ExponentialClamped
Ditto, with minimum and maximum gain clamping.

UI Manager Section

Setting TagSetting Value TypeSetting Description
typeenumerant
Free
UI manager to freely lay out UI components in 3D space. Rest of the section contains free UI manager settings.
Planar
UI manager to lay out UI components on an arbitrary 3D plane. Rest of the section contains planar UI manager settings.
Spherical
UI manager to lay out UI components on an arbitrary 3D sphere. Rest of the section contains spherical UI manager settings.

Free UI Manager Settings

Setting TagSetting Value TypeSetting Description
alignUiWithPointerboolean Flag whether to align UI components facing the current pointing direction in addition to the current viewing direction for improved interaction.

Planar UI Manager Settings

Setting TagSetting Value TypeSetting Description
planeplane Equation of the 3D plane in physical space to which all UI components are constrained.
upvector "Up" direction for UI component in physical space.
constrainMovementbool Flag whether user-requested movement of UI components will be restricted to the 3D UI plane.

Spherical UI Manager Settings

Setting TagSetting Value TypeSetting Description
sphereCenterpoint Center point of the 3D sphere in physical space to which all UI components are constrained.
sphereRadiusnumber Radius of the 3D sphere in physical coordinate units to which all UI components are constrained.
alignSecantbool Flag whether UI components will be positioned secant to the 3D UI sphere, i.e., sticking halfway out, as opposed to tangential, where a UI component's hot spot touches the sphere.
constrainMovementbool Flag whether user-requested movement of UI components will be restricted to the 3D UI sphere.

Tool Manager Section

Setting TagSetting Value TypeSetting Description
toolDsoNameTemplatestring Defines a template to generate tool dynamic shared object (DSO) file names from tool class names. The template is a printf-style format string with a single %s placeholder that is replaced with the tool class name by the tool manager. The setting defaults to the appropriate template to use the installed Vrui tools. The tool manager splits the given template name into base directory and pattern parts, and initializes its DSO file locator using the base directory.
toolSearchPathslist of strings List of additional directories to search for tool plug-in DSOs. The directory extracted from the tool DSO name template is searched first, then all directories from the list in order until a matching DSO file is found.
toolClassNameslist of strings

List of names of tool classes recognized by the tool manager (and offered to users via the Tools menu). Tool classes are instantiated in order of appearance in the list; tool classes that depend on other tool classes must be listed after their dependencies.

Each tool class can read configuration settings from its own subsection inside the tool manager section, named by the tool class' internal class name. For a list of all core Vrui tool classes, their internal class names, and their configuration file settings, see the Vrui Tool Class Configuration File Settings Reference.

toolSelectionMenuToolClassstring Specifies which subclass of the MenuTool class to use to display Vrui's tool selection menu. A class of the given name must exist, and it must be derived from MenuTool.
killZoneBaseDevicestring Name of the input device the tool kill zone is attached to. By default, the tool kill zone is not attached to any input device and positioned in physical coordinates.
killZoneTypeenumerant
Box
3D rectangular kill zone. Rest of section contains box tool kill zone settings.
Frustum
3D frustum kill zone, defined by a viewer, a screen, and a box in screen coordinates. Covers all input devices that are projected into the screen space box from the viewer's head position. Rest of section contains frustum tool kill zone settings.
killZoneRenderboolean Flag whether to render the tool kill zone in the Vrui display environment.
killZoneMaterialmaterial Defines the material properties to render the tool kill zone.
defaultToolsstring Name of the default tool assignment section containing tool binding sections to be created at application startup; in other words, this defines the default tool associations for the Vrui environment.

Box Tool Kill Zone Settings

Setting TagSetting Value TypeSetting Description
killZoneCenterpoint Center point of the kill zone in physical coordinates (if no killZoneBaseDevice is specified) or in local device coordinates.
Note: This setting is overridden if a toolKillZonePos setting is defined in any active window sections.
killZoneSizevector Size of the kill zone box along the three primary coordinate axes in physical units.

Frustum Tool Kill Zone Settings

Setting TagSetting Value TypeSetting Description
killZoneViewerNamestring Name of the viewer the kill zone is associated with. The kill zone is defined as a pyramid extending from the viewer's eye position through the rectangle defined by the kill zone center and size in screen coordinates.
killZoneScreenNamestring Name of the screen the kill zone is associated with.
killZoneCenterpoint Center point of the kill zone in local screen coordinates of the screen the kill zone is associated with.
Note: This setting is overridden if a toolKillZonePos setting is defined in any active window sections.
killZoneSizevector Size of the kill zone along the three primary axes of screen coordinates of the screen the kill zone is associated with. The third size component corresponds to a direction normal to the screen plane and is ignored.

Tool Class Configuration Sections

Any subsections under the Tool Manager Section whose names are equal to the class names of tool classes contain configuration settings for their respective tool classes. The configuration tag/value pairs understood by each tool class are listed in the Vrui Tool Configuration File Settings Reference.

Default Tool Assignment Section

This section lists all tools that are to be bound to input device features on application start-up. It does not contain any tag/value pairs, only any number of tool binding sections.

Tool Binding Sections

Setting TagSetting Value TypeSetting Description
toolClassstring The name of the tool's class.
bindingslist of feature assignments A list of button or valuator features to assign to the tool's button or valuator slots, respectively, in list order. The number of button and valuator slots required by each tool class, and the semantics of each slot, are listed in the Vrui Tool Configuration File Settings Reference.

In addition to the above tag/value pairs, tool binding sections can contain any subset of the configuration tag/value pairs understood by the tool class used in the binding. Tool class setting tag/value pairs provided in a tool binding section override the values of the same configuration tags given in that tool class' configuration section.

Vislet Manager Section

Setting TagSetting Value TypeSetting Description
visletDsoNameTemplatestring Defines a template to generate vislet DSO file names from vislet class names. The template is a printf-style format string with a single %s placeholder that is replaced with the vislet class name by the vislet manager. The setting defaults to the appropriate template to use the installed Vrui vislets.
visletSearchPathslist of strings List of additional directories to search for vislet plug-in DSOs. The directory extracted from the vislet DSO name template is searched first, then all directories from the list in order until a matching DSO file is found.

Vislet Class Configuration Sections

Any subsections under the Vislet Manager Section whose names are equal to the class names of vislet classes contain configuration settings for their respective vislet classes.