# Sources

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2025-08/iA9image.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-value-number-add.png)<span style="color: rgb(34, 34, 34); font-size: 2.333em; font-weight: 400;"> Expression</span>

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2025-09/scaled-1680-/image.png)](https://simlab-soft.com/help/uploads/images/gallery/2025-09/image.png)

**Expressions** are used to generated values that can be used to trigger events throughtout the interactive VR experiences. They allow users to define logic related to interactions and can be categorized into Main Sources and Template Sources. For more details on expressions check this [tutorial](https://www.youtube.com/watch?v=6hIvMsl5obs&t=307s). <span style="font-size: 11.0pt; line-height: 107%; font-family: 'Calibri',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">  
</span>You can find a list of all expressions viable in training builder at this [link](https://www.simlab-soft.com/3d-products/vr-expressions.aspx).

[![Source_SceneNodeQuery.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/source-scenenodequery.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-value-number-add.png)<span style="color: rgb(34, 34, 34); font-size: 2.333em; font-weight: 400;"> SceneNode Query</span>

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/8Naimage.png)

The **SceneNode Query** enables the system to identify an object based on its attributes within the VR environment. This node enhances interactivity by allowing responses to be customized for individual objects, triggering specific actions based on **SceneNode attributes** as part of their virtual experience.

#### Example

In this example, the **SceneNode Query** is used to acquire specific attributes from specific objects, in order to perform specific response to them

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/njbimage.png)

Then when user triggers object named **Activate**, and the response connected to the node will be executed to the objects with attribute name **Color** and its value is **Yellow.**

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/9erimage.png)

---

### [![Source_UserQuery.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/source-userquery.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-08/response-value-number-add.png) User Query

![CDvimage.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/cdvimage.png)

The **User Query node** enables the system to identify a user based on their attributes within the VR environment. This node enhances interactivity by allowing responses to be customized for individual users, triggering specific actions based on **user attributes** as part of their virtual experience.

#### Example

In this example, the **User Query node** is used to acquire specific attributes from specific users, in order to perform specific response to them

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/s7uimage.png)

Once the User enters the object named **Building**, their InBuilding attribute's value becomes **Yes,** then when user triggers object named **Activate**, the users with attribute name **InBuilding** and its value is **Yes** gets teleported to CameraNode named **Outside**'s location.

![image.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/VOKimage.png)

---

### ![Source_Variable.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/source-variable.png) Variable

![CDvimage.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/oBkimage.png)

The **Variable** **node** represents the value of a specific variable within the scene and features a variable port that can be connected to nodes requiring variable assignment. This node simplifies complex setups by enabling consistent use of variables throughout the scene, ensuring streamlined connections between different elements in the training builder.

![TrainingBuilder_Variable.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/trainingbuilder-variable.png)

[![TrainingBuilder_Variable_01.png](https://simlab-soft.com/help/uploads/images/gallery/2024-09/scaled-1680-/trainingbuilder-variable-01.png)](https://simlab-soft.com/help/uploads/images/gallery/2024-09/trainingbuilder-variable-01.png)

> [Tutorial about **Variable Sorting** on YouTube](https://www.youtube.com/watch?v=amnTY83rDjo "Tutorial about Variable Sorting on YouTube")

---