Varjo Lab Tools

Varjo Lab Tools is intended for experienced Varjo users who want to get more out of their Varjo hardware and compatible applications. You can get Varjo Lab Tools from Downloads. Varjo Base must be installed and running to use Lab Tools.

You can find further information on the different tools inside Varjo Lab Tools. Press for individual tooltips.

Varjo Lab Tools is constantly updated based on feedback from our user community.

Note that other applications may control and override the values that you set in Lab Tools.

Modes

Lab Tools has two modes: One for editing your setup and another for using it. You can change between modes at any time by pressing the mode buttons.

Save & Load

You can save and load setups in Lab Tools. To duplicate a setup on another computer, save your setup and copy it to another computer.

Masking

Create masks to mix real life with virtual content. Masks can be mixed with chroma key to create more complex setups.

Add a mask mesh either by importing 3D models (in OBJ format) or by using the VR mask editing tools in Lab Tools.

Using masks with Lab Tools comes with a performance penalty, and we recommend creating mask support directly in your application if possible.

Each mask has its own values that can be edited individually. When using a VR controller to create a mask, these values typically do not need to be edited. If you don’t have access to a VR controller, you can import new masks and reposition them using the following values:

Masking VR controls

You can create and edit masks in VR. Only a single connected controller is required. While the graphics will always show a Vive controller, you can use other controllers as well.

Note: Mask creation in VR is not intended to be a full 3D modelling suite, but rather a quick tool to create simple masks. For more complex and fully accurate masks, we recommend that you create them in your preferred 3D modelling suite and import them into Lab Tools.

Change page

Switch between pages page by pressing the Menu button. Change tools by pressing the touchpad. Use a tool by pressing the trigger. The VR UI in Lab Tools consists of three pages. Page 1: Mask tools Page 2: Vertex tools Page 3: Selector settings

Page 1: Mask tools

Add mask

Creates a new mask. Opens the mask anchor selection.

Mask anchor selection

When creating a new mask, you need to select an anchor for the mask.

World origin: The origin point of the world. This usually refers to the center of the room and floor level.

Varjo Marker: A printed marker from Varjo. The behavior and id of a marker can be adjusted in the 2D interface.

XR device: Any connected and tracked device, for example a headset, controller, or tracking puck. The device id can be changed in the 2D interface.

Cancel: Cancel creating a new mask.

Confirm your selection by pressing the trigger. The anchor nearest to the cursor and of the selected type is used. After you select an anchor type, the tool changes to Add vertex so that you can begin modelling the mask.

Select mask

Select the mask nearest to the cursor. After you select a mask, the tool changes to Move vertex so you can begin editing the mask.

Move mask

Hold the trigger to move the mask nearest to the cursor.

Remove mask

Delete the mask nearest to the cursor.

Page 2: Vertex tools

Add vertex

Add a new vertex connected to the two nearest vertices to create a triangle.

Move vertex

Hold the trigger to move the vertex nearest to the cursor.

Fill polygon

Create a new triangle between the three closest vertices.

Remove vertex

Remove a vertex and all connected triangles.

Page 3: 3D cursor settings

Cursor distance

With this feature you can reach further than your hand and controller can. Press up or down on the touchpad to move the cursor forwards or backwards.

Cursor smoothness

With this feature you can smooth controller movement to be more stable. Press left or right on the touchpad to increase or decrease the smoothness of your cursor movement.

Masking modes

Masking is a very versatile and powerful feature. Here are some examples of what you can achieve with different masking setups.

Restricted

Show the video pass-through image (VST) in the mask.

Example case: Show a controller in VR (e.g., a steering wheel).

Restricted with chroma key

Show the video pass-through image (VST) and chroma in the mask.

Example case: Show a controller using chroma in VR in a limited chroma room (e.g., a green steering wheel).

Extended

Show VR in the mask.

Example case: Show the real world outside of a virtual cockpit.

Extended with chroma key

Show VR in the mask and chroma elsewhere.

Example case: Cut out the ceiling of a green room in a limited chroma room.

Reduce with chroma key

Show the video pass-through image (VST) in the mask and chroma elsewhere.

Example case: Cut out a window in a full chroma room (e.g., show a TV with green content on it)

Depth Test or VST

Perform a video depth test in the mask and show the video pass-through image (VST) elsewhere.

Example case: Embed virtual objects to a spesific area in the real world.

Depth Test or VR

Perform a video depth test in the mask and show VR elsewhere.

Example case: Show real-life co-pilot in a two-seated vehicle.

Camera settings

You can control various video pass-through camera settings with Varjo Lab Tools. This allows you to adjust your mixed reality experience to suit more challenging visual conditions, where the default behavior may not be suitable.

Video depth testing

You can adjust or override the current settings for video depth testing. For example, this allows you to see your real hands inside the application.

Chroma key settings

You can enable global chroma key and override current chroma settings. This disables chroma key option from Varjo Base.

Skeletal hands

You can generate a textured 3D model or a mask mesh from your hands. Based on the skeletal structure provided by our hand tracking, a simple 3D mesh is placed over your hands.

Command line arguments

Lab Tools can be launched from command line with optional arguments. The arguments are handled after Lab Tools has fully launched itself.

"-l filename" or "--loadSave filename" will load a spesific save file.

"-a" or "--autoUse" will put Lab Tools to Use Mode.

Most Unity’s default command line arguments are also supported.

FAQ

Where can I learn more?

We have a hands-on webinar about the subject: Insight Session: Customize your mixed reality experience with Varjo Lab Tools

How can I use the chroma key cockpit?

We have a blog post about the subject: Mixed reality driving: Real hands on a virtual wheel

What to do if Lab Tools is stuttering?

Keep Lab Tools application window focused (on top) in Windows for the best masking performance. Make sure the other application you use with Lab Tools is running stable 90fps and leaves extra processing time for Lab Tools.

I want to use Lab Tools’ features in my own native application. How to do that?

  • Multi-app functionality is documented here.
  • Mixed reality rendering is documented here.
  • Marker tracking is documented here.
  • Blend control mask is documented here.
  • Camera settings are documented here.
  • VR offset is documented here.
  • Video depth test documented here.
  • Chroma key is documented here.
  • Hand tracking is documented here.

I want to use Lab Tools’ features in my own Unity application. How to do that?

  • Multi-app functionality is documented here.
  • Mixed reality rendering is documented here.
  • Marker tracking is documented here.
  • Blend control mask is included in VarjoBlendControlMask.cs. See the file for documentation.
  • Camera settings are documented here.
  • VR offset is accessed with VarjoMixedReality.SetVRViewOffset(double percentage).
  • Video depth test documented here.
  • Chroma key is documented here.
  • Hand tracking is documented here.

I want to use Lab Tools’ features in my own Unreal or OpenXR application. How to do that?

  • Multi-app functionality is not available in Unreal or OpenXR.
  • Mixed reality rendering is documented here.
  • Marker tracking is documented here.
  • Blend control mask is not available in Unreal or OpenXR.
  • Camera settings are not available in Unreal or OpenXR. We recommend using camera controls from Varjo Base.
  • VR offset is not available in Unreal or OpenXR.
  • Video depth test documented here.
  • Chroma key is not available in Unreal or OpenXR. We recommend using chroma key from Varjo Base.
  • Hand tracking is documented here.

See OpenXR extensions for OpenXR documentation.