POPX

Instancer

v1.3.0
Generators

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

Instancing MethodInstancingmethod
Method used for creating instances.
Copy to PointscopytopointsInstancinginstancing
Indexing ModeIndexingmode
Determines how objects are selected for instancing.
RandomrandomOrderorderPoint Attributepointattr
Index Random SeedIndexrandomseed
Random seed for index selection.
Index AttributeIndexattr
Point attribute to use for indexing.
TranslateT
Global translation offset.
TranslateTxTranslateTyTranslateTz
RotateR
Global rotation offset.
RotateRxRotateRyRotateRz
ScaleS
Global scale offset.
ScaleSxScaleSyScaleSz
Uniform ScaleGlobuniscale
Global uniform scale multiplier.
Points Only (No Instances)Pointsonly
Output only distribution points without instancing geometry.
Output Template AttributesOutputtemplateattrs
Include template attributes in output.
Center InstancesCenterinstances
Centers all instances in world space before instancing, ensuring their origins are aligned to the global scene center.
Unity ScaleUnityscale
Normalizes the scale of all instances to a uniform size, maintaining consistent proportions across different source geometries.
Instance ObjectsInstances
Start of the Sequential Parameter Block managing the input geometry instances for the Instancer.
In POP(s)Instances0pop
Input POP for the current instance.
TranslateInstances0localt
Local translation offset for this instance.
TranslateInstances0localtxTranslateInstances0localtyTranslateInstances0localtz
RotateInstances0localr
Local rotation offset for this instance.
RotateInstances0localrxRotateInstances0localryRotateInstances0localrz
ScaleInstances0locals
Local scale offset for this instance.
ScaleInstances0localsxScaleInstances0localsyScaleInstances0localsz
Uniform ScaleInstances0localscale
Local uniform scale multiplier for this instance.
PivotInstances0localp
Local pivot point for this instance's transformations.
PivotInstances0localpxPivotInstances0localpyPivotInstances0localpz
ProbabilityInstances0probability
Probability weight for selecting this instance when Indexing Mode is set to Random. Higher values increase selection likelihood.
Center InstanceInstances0centerinstance
Centers this specific instance in world space before instancing, aligning its origin to the global scene center.
Unity ScaleInstances0unityscale
Normalizes the scale of this specific instance to a uniform size, maintaining consistent proportions.
Distribution TypeDistributiontype
Type of distribution pattern.
LinearlinearRadialradialSphericalsphericalGridgridHoneycombhoneycombPoint CloudpointcloudMeshmeshCurvecurve
Open SettingsOpensettings
Opens the settings panel for the selected distribution type.
Template ObjectTemplateobject
Template object for mesh, curve, or point cloud distribution.
Template GroupTemplategroup
Group within template object to use.
Copy Template AttributesCopytemplateattributes
Copy attributes from template to instances.
Attributes to CopyAttrstocopy
Specific attributes to copy from template.
Reset All Settings to DefaultResettodefault
Resets all distribution settings to default values.
Point SortPointsort
Point sorting criteria.
No ChangenoneBy AttributebyattribRandomseedProximity to PointproxAlong VectorvectorRelative to Object Z-axisobject
AttributePointattr
Attribute to use for sorting.
Attrib is UIntPointuint
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 Attribnotuint4 bits UInt (max 16)uint48 bits UInt (max 256)uint812 bits UInt (max 4096)uint1216 bits UInt (max 65,536)uint1620 bits UInt (max 1 M)uint2024 bits UInt (max 16 M)uint2428 bits UInt (max 268 M)uint2832 bits UInt (max 4 B)uint32
SeedPointseed
Seed for random number generator for randomly-ordered points.
PointPointprox
Proximity Point.
PointPointproxxPointPointproxyPointPointproxz
VectorPointdir
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.
VectorPointdirxVectorPointdiryVectorPointdirz
ObjectPointobj
3D Object to use when sorting points relative to Object Z-axis.
ReversePointrev
After sorting points, reverse their order.
ShiftPointshift
Enables offsetting on sorted points.
OffsetPointoffset
Shifts the point order by this offset.
Free Extra GPU MemoryFreeextragpumem
Free memory that has accumulated when output memory has grown and shrunk.

Inputs

Input 0POP
Instance 1

Outputs

Output 0POP
POPX_out1