Scene Organization Guide

Last Updated: 2026-02-05

This guide explains how Construct scenes are organized and how different node types work together to create complex 3D shapes.


Node Types

Construct uses a hierarchical scene graph where each node has a specific role:

Primitives

Primitives are the basic building blocks that generate SDF geometry:

Each primitive has parameters (radius, dimensions, etc.) that control its shape.

CSG Operators

CSG (Constructive Solid Geometry) operators combine multiple shapes:

Operator Effect
Union Combines shapes (add)
Subtract Removes second shape from first (carve)
Intersect Keeps only overlapping parts
Union smooth Combines with rounded blend
Subtract smooth Removes with rounded blend
Intersect smooth Intersects with rounded blend
Union chamfer Combines with a beveled seam
Subtract chamfer Removes with a beveled seam
Intersect chamfer Intersects with a beveled seam

CSG operators accept two or more children.

Transform Operators

Transform operators modify position before evaluating children:

Operator Effect
Translate offset Move by a vector
Translate axis Move a distance along a direction
Rotate euler Rotate by Euler angles about a pivot (the origin by default), composed Z, then Y, then X
Rotate euler XYZ / XZY / YXZ / YZX / ZXY The same angles composed in another order. An item's rotation mode picks which of the six the scene compiles to
Rotate axis Rotate by an angle about an axis through a pivot
Rotate quaternion Rotate by a unit quaternion (vector and scalar parts) about a pivot; edited with the Arcball
Scale uniform Uniform scaling about a pivot
Scale per-axis Per-axis scaling about a pivot (not an exact distance field)
Mirror axes Reflect across one or more axes
Repeat linear Copy along a line
Repeat radial Copy around an axis
Repeat grid Copy in a 2D/3D grid

Transform operators typically accept one child.

Distance Modifiers

Distance modifiers adjust the SDF distance after evaluating children:

Modifier Effect
Round Add rounded edges
Onion Create hollow shell
Elongate Stretch geometry

Meta items: bounding volumes

Alongside the SDF nodes above, a scene can hold bounding volumes — boxes that frame regions for measurement, cutaway inspection, and export. A volume is a first-class item: named, parametric (center, size and rotation can hold expressions), and it carries independent visible / cutaway / active / locked flags. It contributes no geometry — it never appears in a render or a mesh except as the region boundary.

Parenting sets scope. A volume at the scene root frames the scene; a volume parented under an item follows that item's transform and its fit actions default to that subtree. Moving the parent moves the box. At most one volume per scene is active — the one the cutaway follows and the one an export uses when no volume is named explicitly.


Scene Hierarchy

Tree Structure

A Construct scene is a tree of nodes:

smooth_union (CSG)
├── sphere_1 (Primitive)
└── translate (Transform)
    └── box_1 (Primitive)

In this example:

Multiple Children

CSG operators can have any number of children:

union (CSG)
├── sphere_1
├── sphere_2
├── sphere_3
└── box_1

All children are combined with the same operation.

Deep Nesting

Transforms can wrap other transforms or operators:

linear_repeat (Transform)
└── rotate (Transform)
    └── smooth_union (CSG)
        ├── sphere_1
        └── torus_1

This creates repeated copies of a rotated blended shape.


Working with the Tree View

Adding Nodes

  1. Right-click a node in the tree view
  2. Select the node type to add
  3. The new node appears as a child

Reparenting

Drag nodes to change their parent. This is useful for:

Deleting Nodes

Select a node and press Delete. Children are also removed.

Where an imported item came from

Expanding a mesh or tet-volume row shows its provenance — the file it was imported from, the format, and how big it is. It reads on the row that describes the item rather than in a separate panel, and it is read-only: it records what was imported, so there is nothing there to edit.

A mesh row expanded to show its source, format and counts


Best Practices

Start Simple

Begin with a single primitive and gradually add complexity:

  1. Add a base shape
  2. Add CSG operations to refine
  3. Add transforms to position and repeat

Use Smooth Operations

Smooth CSG operations (smooth_union, smooth_subtract) create more organic results than their hard-edged equivalents.

Group with Operators

Use CSG operators to logically group related geometry. This makes the scene easier to understand and modify.

Transform at the Right Level

Apply transforms at the appropriate level: