This node generates new branches using the space colonization algorithm. The algorithm grows branch segments toward attractor points provided by connected Space Clouds nodes.
This node is useful for creating tree crowns, fine branching structures, secondary and tertiary branches, and other organic forms that need to fill a predefined cloud of points.
The node starts growth from the lines of the parent path and then extends new branches toward the attractor points. Each growing tip searches for nearby points, calculates a growth direction from them, and creates a new segment.
Unlike the Path node, this node does not extend lines using fixed rules. The final structure depends on the connected cloud of points, attraction search settings, growth direction settings, and radius generator settings.
The top connector
allows to connect the Distributors nodes, which will distribute the lines of this Space Colonization.
The left connector
is used to connect cloud nodes that provide attractor points for the algorithm.
For example, these can be Path Cloud, Sphere Cloud, Box Cloud, or Mesh Cloud nodes.
These nodes do not create branches by themselves. They only provide points in space that attract the growing branch tips.
Specifies the maximum total growth length of the generated structure.
In practice, this value represents the maximum distance from the root of the current Space Colonization structure, or from the branch where it starts, to the top of the tree along its longest part.
If this parameter is animated through a Public parameter node, then the value in this node becomes the maximum allowed growth length. The internal structure of the tree is calculated up to this maximum value, while the value from the Public node controls only the visible part of the tree and cannot make it longer than Full Length.
This makes it possible to generate growth animation quickly, with smooth visible growth and without rebuilding the whole Space Colonization structure every frame.
Specifies the basic step length of each generated segment.
Smaller values produce smoother and more detailed branches, but increase the number of segments and calculation time. Larger values make growth faster, but the resulting branches become more angular and less detailed.
When enabled, the node can reduce the current growth step in denser areas of the attractor cloud.
The step is never increased above Segment Step and can only be reduced down to Min Step.
In practice, when growth reaches dense attractor regions, the step can quickly decrease toward Min Step, so very small Min Step values may significantly increase calculation time.
Specifies the minimum segment step when Adaptive Steps is enabled.
This parameter limits how much the algorithm is allowed to reduce the step size.
Limits the number of growth iterations.
This is a safety limit for the algorithm and helps prevent excessively long calculations in difficult cases.
Specifies the minimum search distance to attractor points.
Points closer than this distance are considered reached and no longer influence growth.
Specifies the maximum search distance to attractor points.
Only points within this distance can affect the current growth tip.
Smaller values make growth more local and compact. Larger values allow branches to react to points farther away.
Limits attractor influence by angle relative to the current growth direction.
Lower values make branches grow straighter, because only points that are more aligned with the current direction are used. Higher values allow stronger side influence and produce more curved or spreading growth.
When enabled, attractor points that are too close to the parent paths are ignored.
This is useful when branches should not grow back into the trunk or intersect nearby parent branches.
Specifies the distance used by Avoid parent paths.
Attractor points closer than this value to the parent paths are treated as already reached and do not participate in growth.
Adds random deviation to the growth direction.
Higher values make the structure less regular and more natural. Very large values can make the branching noisy or chaotic.
Adds an upward or light-oriented bias to the growth direction.
This helps simulate growth toward light.
Adds gravity-based influence to the growth direction.
Depending on its balance with the other direction parameters, this can make branches sag downward or become less upright.
Specifies how many top branch levels remain separated as terminal branches.
This parameter is useful when placing leaves or secondary structures only on the last branch levels, or when keeping the upper branching more detailed.
Specifies the minimum radius at the branch tips.
This is the base thickness for the thinnest generated segments.
Specifies how much the branch radius increases over a length equal to Unit Calc from Preference Parameters.
For example, if this value is set to 100%, then over a distance equal to Unit Calc, the radius becomes 2 times larger.
Defines the tapering mode of the generated radius.
Specifies how much the radius of a parent branch increases because of child branches.
This parameter controls the influence of a parent radius adjustment based on Murray's law, helping to create more natural branch junctions where thicker parent branches support thinner child branches.
Specifies the maximum allowed radius.
This is a clamp for the generated radii and helps prevent branches from becoming too thick.
This output provides the generated radius distribution of this node.
It can be connected directly to the radius input where a regular Curve node is usually connected, for example in Cylinder Mesh or Meta Mesh.
The right connector
outputs the current branch length value for each generated branch.
This value can be passed directly to any parameter, or through influencing nodes such as Affect or Math nodes.
The right connector
outputs the current branch level.
This is useful when different behavior is needed for trunk-like branches, secondary branches, and fine terminal branches.
The right connector
outputs the current generated branch radius.
This allows other nodes to react directly to the calculated branch thickness.
Specifies the display color of the generated lines in the viewport when the Lines mode is active.
The right connector
allows connecting Distributors nodes for child path lines.
This makes it possible to continue building the structure on top of the generated branches, for example by adding leaves, generating secondary branch systems, or attaching additional procedural structures.
When off, the branch lines are still calculated and can still be used internally by other nodes, but they are not displayed and their mesh is not generated.
Like the Path node, this node has 3 connectors for modifying directions, mesh building, and modifying directions at the mesh level.
The left connector
allows connecting Direction Modifiers nodes.
The right connector
allows connecting After Mesh Modifiers nodes.
The bottom connector
allows connecting Mesh Builders nodes.
The Space Colonization rollout on the GrowFX command panel contains global options for all Space Colonization and Space Clouds nodes in the current GrowFX object.
Enables multithreaded calculation for all Space Colonization nodes in the current GrowFX object.
This can speed up the generation of complex branching structures.
Displays all generated cloud points in the viewport for all active connected Space Clouds nodes in the current GrowFX object.
This is useful when checking the overall shape and density of the generated cloud points.
Displays the full internal branch structure generated by all Space Colonization nodes in the current GrowFX object.
This is especially useful when creating growth animation, because normally only the visible part of the structure is shown. This option allows you to see the complete generated structure.
Note: The result of this node depends heavily on the connected cloud of attractor points. Changing cloud density, shape, or search settings can drastically change the resulting branching.
Note: If the node generates too few branches, stops too early, or grows in an unexpected way, first check Min distance, Max distance, Segment Step, and Angle Threshold.
Note: A common workflow is to build the trunk and primary branches with Path-based nodes, create an attractor cloud with cloud nodes, and then use Space Colonization to generate fine branches inside that cloud.