Constraints
Use constraints to control the behavior and relationships between multiple objects. This section contains instructions on creating constraints, selecting, saving, and undoing them, as well as how to export all constraints applied to scene to a single constraints file.
For a general overview and video on constraints, see Constraint Editor.
Creating a Constraint
Use
and choose the type of constraint to create. When a constraint is created, it is added to the Constraint Lister and its attributes, which can be adjusted, are loaded into the panel to the right. Drag nodes from the Scenegraph or other editors onto the target and constrained nodes to create constaint relationships.
Click
and choose the type of constraint to create.In the Constraint Lister, expand the new constraint.
Drag one or more nodes from the Scenegraph or other editors onto the Target Nodes node to create a target object. Drag another node onto the Constrained Nodes node to create a constrained object.

Now, if you move the target object (the red lever), the constrained object(s) follow.

(Optional) In the Constraint Lister, select the parent of the Target and Constrained Nodes to modify its settings. It can be set as active or not, renamed, and a description can be added. Determine whether the constraint handles are visible and their size. Select the dragged object node to make changes to the weighting.
Selecting a Constraint
The constraint handle can be selected in the viewport using Shift + LMB, but it must be visible and large enough to select. You can also right-click the constraint node and select Select Objects In > Scenegraph. When a constraint handle is selected, its targets are selected and highlighted yellow in the viewport. In the Scenegraph and Constraint Editor (if open), they will be selected and highlighted blue.
In the toolbar, ensure Transform and Boundings are enabled.
In the Constraint Editor, expand the parent node and select a constraint node. In the example, the
Arrowfolder was expanded andOrientation Constraintnode is selected.
Ensure Show Constraint is checked and increase Scale to a larger value, such as 300, to easily see and select the constraint handle.
Scale = 100 Scale = 300 

Now, either Shift + LMB the constraint handle to select it or right-click the constraint node and select Select Objects In > Scenegraph.
Saving a Constraint
When constraints are created and the scene is saved as a .vpb, using File > Save or Save As, they are preserved in geometry assets and work as espected when reloaded into a scene.
Constraining a Clipping Plane
To set up a constrained and movable clipping plane, use a World-to-Local approach. This calculates the world transformation, yet applies the constraint locally to the clipping plane. This ensures the clipping plane is constrained to another node, using a parent constraint, and can move.
In the Constraint Editor, once a constraint is created, expand it to expose the Constrained Node node.
In the Scenegraph, drag and drop a clipping plane onto Constrained Nodes in the Constraint Editor.
In the Constraint Editor, select the clipping plane, then in the Apply Transformation section, set From Target to World and To Constrained to Object.

Undoing Constraint Creation and Deletion
Through the UI, a constraint cannot be uncreated or undeleted. However, using Python it can be done with vrConstraintService.
Exporting an Evaluation Sequence
Export all constraints applied to scene to a single constraints file, using Export Evaluation Sequence. Use it, for example, to share, reorder, and enable/disable constaints within a constraint set.
- Select File > Export Evaluation Sequence.
- In the browser, set where the evaluation sequence file (.tgf) will be stored.
- Click Save.
Limiting Movement
Go one step further and apply object limits, alongside constraints, to restrict the range of motion for target or constraint nodes. Use the Translation, Rotation, and Scaling Limits in the Transform Editor for aiming constraints and Translation and Rotation limits in the Camera Editor for restricting camera movement. These enable object limits to be set on the movement, rotation, and scaling of a target, restricting its transformation to the ranges set. Though you can use these alongside constraints, they are not mandatory to restrict the target or constraint node. Quickly constrain the translation, rotation, and scaling along the X, Y, and Z axes, by defining these with the From/To limits. Red is X, green is Y, and blue is Z.
To Limit an Object Node
In the Scenegraph, select the node to limit.
In the Quick Access Bar, select Transform to open the Transform Editor.
With the node selected in the Transform Editor, in the Basic tab of the Attributes, expand the section for the transform to be limited. For example, Translation.
Click the box in front of the limits section to enable it, then expand the section and set the limits.

To Limit a Camera Node
- In the Scenegraph, select the camera node to limit.
- In the Quick Access Bar, select Cameras to open the Camera Editor.
- With the camera node selected in the Camera Editor, in the Camera Settings tab of the Attributes, expand the Viewing section to access the Translation and Rotations Limits sections.
- Click the box in front of these section to enable them, then expand the sections and set the limits.
For a general overview and video on constraints, see