Instancer

Summary

The Instancer creates and distributes copies of POP Geometry across Point Clouds, Meshes, or Curves, allowing flexible spatial arrangements and structured distributions. Objects generated by the Instancer are always POPX Geometry — the packed geometry structure used across the POPX system, where each instance is represented by a single point containing its transform attributes.

The Instancer supports two instancing methods: Copy to Points generates POPX Geometry as realized geometry copies, where each instance exists as an independent, modifiable element in the scene. This method is ideal when subsequent modifiers need to deform, transform, or alter the geometry directly. Instancing uses TouchDesigner's built-in GPU instancing, which references the source geometry efficiently without duplicating it in memory. This method is better suited for high-performance workflows where per-instance deformation is not required.

Each instanced object can define its own transform parameters and an optional probability value for random selection. Geometry sources can be added via the Instance Objects sequence or by dragging POPs directly onto the parameter. When instancing onto template geometry, attributes can be copied from the template points, and the Distribution Method parameter controls how instances are placed across the source geometry.

Parameters

Page: Instancing

Instancing Method Instancingmethod Method used for creating instances.
Copy to Points copytopoints
Instancing instancing
Indexing Mode Indexingmode Determines how objects are selected for instancing.
Random random
Order order
Point Attribute pointattr
Index Random Seed Indexrandomseed Random seed for index selection.
Index Attribute Indexattr Point attribute to use for indexing.
Translate T Global translation offset.
Translate Tx
Translate Ty
Translate Tz
Rotate R Global rotation offset.
Rotate Rx
Rotate Ry
Rotate Rz
Scale S Global scale offset.
Scale Sx
Scale Sy
Scale Sz
Uniform Scale Globuniscale Global uniform scale multiplier.
Points Only (No Instances) Pointsonly Output only distribution points without instancing geometry.
Output Template Attributes Outputtemplateattribs Include template attributes in output.
Center Instances Centerinstances Centers all instances in world space before instancing, ensuring their origins are aligned to the global scene center.
Unity Scale Unityscale Normalizes the scale of all instances to a uniform size, maintaining consistent proportions across different source geometries.
Instance Objects Instances Start of the Sequential Parameter Block managing the input geometry instances for the Instancer.
In POP(s) Instances0pop Input POP for the current input.
Transform Instances0transform Opens the local transform parameters for this instance.
Probability Instances0probability Probability weight for selecting this instance geometry.
Center Instance Instances0centerinstance Centers this instance in world space before instancing.
Unity Scale Instances0unityscale Normalizes the scale of this instance to a uniform size.

Page: Distribution

Distribution Type Distributiontype Type of distribution pattern.
Linear linear
Radial radial
Spherical spherical
Grid grid
Honeycomb honeycomb
Point Cloud pointcloud
Mesh mesh
Curve curve
Open Linear Settings Linearsettings Opens settings for linear distribution.
Open Radial Settings Radialsettings Opens settings for radial distribution.
Open Spherical Settings Sphericalsettings Opens settings for spherical distribution.
Open Grid Settings Gridsettings Opens settings for grid distribution.
Open Honeycomb Settings Honeycombsettings Opens settings for honeycomb distribution.
Open Point Cloud Settings Pointcloudsettings Opens settings for point cloud distribution.
Open Mesh Settings Meshsettings Opens settings for mesh distribution.
Open Curve Settings Curvesettings Opens settings for curve distribution.
Template Object Templateobject Template object for mesh, curve, or point cloud distribution.
Template Group Templategroup Group within template object to use.
Copy Template Attributes Copytemplateattributes Copy attributes from template to instances.
Attributes to Copy Attrstocopy Specific attributes to copy from template.
Reset All Settings to Default Resettodefault Resets all distribution settings to default values.

Page: Sorting

Point Sort Pointsort Point sorting criteria.
No Change none
By Attribute byattrib
Random seed
Proximity to Point prox
Along Vector vector
Relative to Object Z-axis object
Attribute Pointattr Attribute to use for sorting.
Attrib is UInt Pointuint When sorting by attribute, allows to specify whether the attribute is an unsigned integer and what the max value is. Smaller max UInt require fewer passes to sort.
Not UInt Attrib notuint
4 bits UInt (max 16) uint4
8 bits UInt (max 256) uint8
12 bits UInt (max 4096) uint12
16 bits UInt (max 65,536) uint16
20 bits UInt (max 1 M) uint20
24 bits UInt (max 16 M) uint24
28 bits UInt (max 268 M) uint28
32 bits UInt (max 4 B) uint32
Seed Pointseed Seed for random number generator for randomly-ordered points.
Point Pointprox Proximity Point.
Point Pointproxx
Point Pointproxy
Point Pointproxz
Vector Pointdir When sorting points Along Vector, it takes the point position, finds the the closest point on a line through 0,0,0 in the direction of the vector, and then sorts along that line.
Vector Pointdirx
Vector Pointdiry
Vector Pointdirz
Object Pointobj 3D Object to use when sorting points relative to Object Z-axis.
Reverse Pointrev After sorting points, reverse their order.
Shift Pointshift Enables offsetting on sorted points.
Offset Pointoffset Shifts the point order by this offset.

Page: Common

Free Extra GPU Memory Freeextragpumem Free memory that has accumulated when output memory has grown and shrunk.

Inputs

The number of input connectors is automatically linked to the Instance Objects sequential parameter. Increasing the number of Instance Object blocks will create corresponding geometry inputs, each associated with one instanced geometry source. Removing a block will remove its input.

Input 0 POP Instance 1

Outputs

Output 0 POP POPX_out1