Instancing

GPU instancing for rendering many copies efficiently. Perfect for particle systems, crowds, and repetitive patterns.


Apply Rotation

Transform

Compose rotation onto position or transform. Euler angles (radians).

Inputs:

NameTypeDefaultDescription
input3D Vector / Transform MatrixzeroPosition or transform to rotate
rotationNumber / 3D Vector(0.00, 0.00, 0.00)Euler angles in radians — or single float for Z-only rotation

Outputs:

NameTypeDescription
transformTransform MatrixInput with rotation composed in local space

Apply Rotation

Related: Apply Scale, Apply Translation, Get Rotation, Get Scale, Get Translation


Apply Scale

Transform

Compose scale onto position or transform. Uniform or per-axis.

Inputs:

NameTypeDefaultDescription
input3D Vector / Transform MatrixzeroPosition or transform to scale
scaleRGBA Color / Number / 3D Vector / 4D Vector(1.00, 1.00, 1.00)Scale factor per axis — or single float for uniform scale

Outputs:

NameTypeDescription
transformTransform MatrixInput with scale composed in local space

Apply Scale

Related: Apply Rotation, Apply Translation, Get Rotation, Get Scale, Get Translation


Apply Translation

Transform

Compose translation onto position or transform. Adds offset.

Inputs:

NameTypeDefaultDescription
input3D Vector / Transform MatrixzeroPosition or transform to offset
offset3D Vector(0.00, 0.00, 0.00)World-space translation to add

Outputs:

NameTypeDescription
transformTransform MatrixInput with translation composed in world space

Apply Translation

Related: Apply Rotation, Apply Scale, Get Rotation, Get Scale, Get Translation


Get Rotation

Transform

Extract rotation (Euler angles in radians) from a transform matrix.

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

NameTypeDefaultDescription
transformTransform MatrixidentityTransform matrix to decompose

Outputs:

NameTypeDescription
rotation3D VectorEuler angles in radians (XYZ) — subject to gimbal lock near ±90° pitch

Related: Apply Rotation, Apply Scale, Apply Translation, Get Scale, Get Translation


Get Scale

Transform

Extract scale (float3) from a transform matrix.

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

NameTypeDefaultDescription
transformTransform MatrixidentityTransform matrix to decompose

Outputs:

NameTypeDescription
scale3D VectorXYZ scale extracted from basis vector lengths

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Translation


Get Translation

Transform

Extract position (float3) from a transform matrix.

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

NameTypeDefaultDescription
transformTransform MatrixidentityTransform matrix to decompose

Outputs:

NameTypeDescription
position3D VectorXYZ position extracted from column 3 of the matrix

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Grid 2D

Source

Generate 2D grid of instance positions for GPU instancing.

Inputs:

NameTypeDefaultDescription
widthNumber4.00Number of columns in the grid
heightNumber4.00Number of rows in the grid
spacing2D Vector(1.00, 1.00)Per-axis spacing (X, Y)

Outputs:

NameTypeDescription
instances3D VectorPer-instance position centered on origin

Grid 2D

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Grid 3D

Source

Generate 3D grid of instance positions for GPU instancing.

Inputs:

NameTypeDefaultDescription
widthNumber3.00Number of cells along X
heightNumber3.00Number of cells along Y
depthNumber3.00Number of cells along Z
spacing3D Vector(1.00, 1.00, 1.00)Per-axis spacing (X, Y, Z)

Outputs:

NameTypeDescription
instances3D VectorPer-instance position centered on origin

Grid 3D

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Instance Count

Source

Total number of instances being rendered. Pair with Instance Index.

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

No inputs

Outputs:

NameTypeDescription
countNumberTotal number of instances being rendered

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Instance Index

Source

Current instance index (0 to N-1). Use for per-instance variation.

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

No inputs

Outputs:

NameTypeDescription
indexNumberCurrent instance index (0 to N-1)

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Instance Index Normalized

Source

Instance index normalized to 0.0-1.0 range. Useful for gradients.

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

No inputs

Outputs:

NameTypeDescription
normalizedNumberInstance index mapped to 0.0–1.0 range

Instance Index Normalized

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Make Rotation

Transform

Create a rotation transform from Euler angles (radians, ZYX order).

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

NameTypeDefaultDescription
rotation3D Vector(0.00, 0.00, 0.00)Euler angles in radians (XYZ) — applied in ZYX order

Outputs:

NameTypeDescription
transformTransform MatrixPure rotation matrix from the given angles

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Make Scale

Transform

Create a scale transform from a scale vector (float3).

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

NameTypeDefaultDescription
scale3D Vector(1.00, 1.00, 1.00)XYZ scale factors

Outputs:

NameTypeDescription
transformTransform MatrixDiagonal matrix with scale on the main axis

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Make Translation

Transform

Create a translation transform from a position (float3).

This is a surface shader node - it can be connected to rendering nodes.

Inputs:

NameTypeDefaultDescription
position3D Vector(0.00, 0.00, 0.00)XYZ position to embed in a transform matrix

Outputs:

NameTypeDescription
transformTransform MatrixIdentity matrix with position in column 3

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale


Texture To Points

Transform

Sample texture RGB as XYZ position for instance builder.

Inputs:

NameTypeDefaultDescription
textureVisual Output-Source texture — RGB values become XYZ positions
resolution2D Vector(32.00, 32.00)Sampling grid dimensions — more points = more instances
offset2D Vector(0.00, 0.00)UV offset for the sampling grid

Outputs:

NameTypeDescription
position3D VectorRGB color at each grid point interpreted as XYZ position

Texture To Points

Related: Apply Rotation, Apply Scale, Apply Translation, Get Rotation, Get Scale