Component Tree

Organize scene hierarchy, manage parent-child relationships, and assign I/O pins

Component Tree

The Component Tree is the hierarchical view of every object in your simulation scene. It appears in the left panel of the Scene Editor and controls how components are organized, grouped, and related to one another.

Hierarchy Panel

The hierarchy panel shows all components as a nested list. Each item can be expanded or collapsed to reveal its children. The currently selected component is highlighted, and its properties appear in the right-side Properties panel.

At the top of the panel you will find:

  • Search bar — Filter the tree by name. Useful in large scenes with many components.
  • Add Component button — Create a new empty component, light, camera, or primitive shape.
  • Collapse All / Expand All — Quickly manage tree visibility.

Components are listed in their render and update order. You can drag items up or down to reorder siblings, which affects their evaluation order during the simulation cycle.

Parent-Child Relationships

Parent-child relationships define how components move together. When a parent component translates, rotates, or scales, all of its children follow. This is fundamental for building mechanical assemblies.

To change a component's parent:

  1. Drag the component in the tree and drop it onto the desired parent. It becomes a child of that node.
  2. Alternatively, right-click the component, select Re-parent, and choose the target parent from the list.
  3. To move a component to the root level, drag it to the empty space at the bottom of the tree or right-click and select Unparent.

Child transforms are relative to their parent. A child at position (1, 0, 0) is 1 meter along the X axis from its parent's origin, regardless of where the parent is in world space. This makes it easy to build reusable assemblies that work correctly no matter where they are placed.

Renaming Components

Double-click a component's name in the tree to enter rename mode. Type the new name and press Enter to confirm, or Escape to cancel.

Use clear, descriptive names that reflect the component's role in the simulation:

  • Conveyor_Belt_01 rather than Mesh.003
  • ProximitySensor_Entry rather than Cube.001
  • RobotArm_Joint2 rather than Empty

Good naming makes I/O binding, debugging, and collaboration significantly easier.

Assigning I/O Pins

I/O pins connect PLC variables to component properties. To assign an I/O pin:

  1. Select a component in the tree.
  2. In the Properties panel, open the I/O Binding section.
  3. Click Add Input or Add Output.
  4. Choose the component property to bind (e.g., Position.Y, Detected, Speed).
  5. Select or create the PLC variable that will be linked to this property.

Input pins send data from the scene to the PLC program. Typical examples include sensor detection states, encoder positions, and temperature readings.

Output pins receive data from the PLC program and apply it to the scene. Typical examples include motor speeds, valve open/close states, and indicator light colors.

A component can have multiple I/O pins. For instance, a motor component might have an output pin for Speed (REAL), an output pin for Direction (BOOL), and an input pin for CurrentRPM (REAL).

The I/O Binding section shows all assigned pins with their variable names, data types, and current values during simulation.

Showing and Hiding Components

Each component in the tree has a visibility toggle (eye icon). Click it to hide the component from the 3D viewport. Hidden components:

  • Are not rendered in the viewport.
  • Still participate in simulation — their physics bodies and I/O bindings remain active.
  • Are shown with a dimmed icon in the tree.

This is useful for seeing inside assemblies or focusing on specific parts of a complex scene. To temporarily hide everything except one component, right-click it and select Isolate. Click Show All to restore visibility.

You can also set components as non-selectable by clicking the lock icon. Locked components cannot be clicked in the viewport, preventing accidental selection of background elements like floors or walls while you work on foreground components.

On this page