Skip to Content
Node LibraryInstancing

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


Last updated on

Apple and the Apple logo are trademarks of Apple Inc. sxp.studio and Subjective Designer are not affiliated with Apple.