space colonize

 

 

Space Colonize node implements the space colonization algorithm for procedural branching generation. Branches iteratively grow toward attractor points within an influence radius while pruning reached targets, producing natural hierarchical structures such as trees, roots, and lightning patterns.

 

Note: Particle generator output pins and data are available only when the particle is created. To access particles continuously, use the get particle group node.

 

 

[Inputs]

 

 

#Particle Stream - This pin requires a particle stream to be connected. Used as ???seed??? particles.

 

Enabled - Enable or disable node evaluation.

 

Attractors - Particle group that will be used as attractor point for the algorithm. Particles can be still or animated.

 

Particle Group - Generated particles will belong to this this group.

 

 

Space Colonization

Propagation Speed - Number of growth iterations performed per second of simulation time. Each frame advances by dt*Propagation Speed iterations, meaning at 30fps a value of 30 produces one iteration per frame. Higher values grow the tree faster but may cause branches to overshoot attractor points entirely, resulting in sparse or unnatural growth. Lower values produce slower, more controlled growth where each iteration has a chance to respond to nearby attractors. This parameter is animatable, allowing you to slow or accelerate growth at specific points in the simulation.

 

Influence Radius - Maximum distance at which attractor particles can pull a branch node toward them. Only attractors within this radius of a branch tip contribute to its growth direction. Larger values create broader, more sweeping branches that reach across greater distances, while smaller values produce tight, locally-guided growth. This value must always be larger than Kill Radius ??? if an attractor is within Kill Radius it is consumed before it can influence growth. A ratio of 3:1 to 5:1 between Influence Radius and Kill Radius produces natural-looking results.

 

Kill Radius - Distance at which an attractor particle is consumed and permanently removed from the simulation once any branch node grows close enough to it. Smaller values require branches to grow very close before consuming an attractor, producing denser, more detailed branching with many small segments. Larger values consume attractors earlier, resulting in sparser, broader trees. Kill Radius must always be smaller than Influence Radius. Setting Kill Radius too close to Influence Radius can cause attractors to be consumed before they meaningfully redirect branch growth.

 

Step Size - The length of each individual branch segment grown per iteration, in 3ds Max world units. This directly controls the geometric resolution of the resulting tree - smaller values produce smoother, more curved branch paths that follow attractor distributions closely, while larger values produce angular, coarser branches that may miss fine attractor detail. Step Size interacts closely with Kill Radius: if Step Size is larger than Kill Radius, a branch can grow past an attractor in a single step without consuming it, causing attractors to be missed. As a guideline, Step Size should be equal to or smaller than Kill Radius.

 

Max Depth - Maximum number of times a branch can split from the original seed, controlling the overall complexity and density of the tree. A value of 0 produces only a single unbranched trunk growing toward attractors. Each increment allows one additional level of forking, where a branch tip that receives influence from multiple attractors simultaneously will split into separate child branches, each assigned a new cluster ID. Higher values produce highly detailed, complex trees but increase particle count significantly. For most trees a value between 4 and 8 produces natural-looking results. Note that Max Depth limits splits, not total branch length - a branch at maximum depth will continue growing straight without further forking.

 

Seed - Random number generator seed. Change this value to get different pattern.

 

 

[Outputs]

 

Particle Stream - Generated particle stream.

 

Parent -.Parent particle.

 

Depth - Branching depth level of each particle, starting from 0 at the root. Useful for shading or filtering by generation.

 

Chain Length - Number of branch nodes from the current particle back to the root, representing the total path length along the branch.