Grow
Grow adds growth to a tree. Each step adds an internode, and with Max Steps above one the Grow keeps adding them, so four steps make a chain of four internodes. A Grow already contains repeats, switches and splits, so chaining Grows together is the main way to build a tree: the trunk Grow goes into a Simulate, and the Grows for the branches go into the trunk Grow's inputs. Simulation explains how the pieces fit together.
Inputs and outputs
A Grow's inputs say what grows from it next.
- Graph - Terminal is what happens at the very tip of the chain, so a trunk doesn't end in a stub.
- Graph - Lateral takes a Grow that adds shoots along the chain.
- Graph - Prune takes a Prune. The toolbar's Prune tool wires one in here.
The Graph output goes into a Simulate, or into an input of another Grow, a Split or a Switch. With the Simulate selected, the Grow tool on the Natsura toolbar wires the new Grow into it; with a Grow selected, it asks which input to continue from (Terminal, Lateral or Prune) and wires a new Grow into that.
The second output, Preview, is what you see when you set the display flag on a Grow: the Simulate's result, with the part this Grow made highlighted. It is a view of the Simulate, not a separate simulation, so set the display back to the Simulate to see the tree on its own.
Most values on the Grow can be mapped, which means they can be driven by a Map instead of a single value. The map button beside a value promotes it to a map from an attribute, a random value or a constant. Mapping Start Pitch from the parent's u, for example, changes the branch angle from the base of the tree to the top, and flipping the map's output range reverses it. See Mapping.
Seed and collision
Seed, at the top of the parameters, is this Grow's own random seed, and the button beside it picks a new one. Collision Mode decides what happens when growth meets the environment wired into the Simulate's Geometry input: block (the default), project onto it, or none.
Spawn and start
Spawn and Start settings apply once, where the chain begins.
Interval sets where it spawns: a Grow in another Grow's Lateral input normally spawns at every internode, and an Interval of 2 or 3 spawns at every second or third. Offset moves the spawn point back along the parent internode, from 0 (the node at its end) to 1 (its base).
Spiral Angle sets the arrangement around the parent stem (the phyllotaxy). Relative carries on from the parent's twist, and Absolute starts its own spiral from zero. Spiral Angle starts at 0. In Relative, branches already follow the parent's ΔRoll per step, which defaults to 137.5°, the typical phyllotactic angle.
Multiplicity starts several chains at the same node, for whorls of shoots or buds, and Whorl Angle spaces them around the stem.
Shape
Shape settings apply at every step.
Max Steps is how many steps the chain grows, and so how long it can get. A new Grow starts at 0, a single step, and most of the controls below (Length scale/step, Width scale/step, ΔPitch and ΔRoll, and the Fork settings) only appear once Max Steps is above 1. Growth % grows only part of that length. It can look like lowering Max Steps, but Growth % can be mapped, so mapping it from the parent's u, for example, makes branches shorter further up the tree.
Length has three modes. Relative makes the start length a fraction of the parent's, Absolute sets it as a length, and in both a scale per step changes it as the chain grows. Total sets one length for the whole chain. Width also has three modes. Relative makes the start width a fraction of the parent's (Start Width Scale), which is how branches inherit the trunk's width, and scales it at every step, which gives you taper. Absolute gives a uniform width: Width scale/step sets the width at every step (raise Max Steps above 1 to see it), and Start Width Scale does nothing. Absolute Start sets it at the first step and scales it after that, so a branch starts at a set width and still tapers.
ΔPitch and ΔRoll per step bend and twist the chain as it grows. Together they make the spiral shape of a stem.
u only reaches 1 when a chain is fully grown. u_normalized reaches 1 at the tip of a partly grown chain, so a width or shape map driven by it plays out in full however far the chain has got. Pick it from the attribute menu of a map.
Forks
Enable Forks lets the chain fork as it grows, into copies of the same Grow. Fork Spread is the angle the branches separate from the parent axis.
Forks, Split, Switch or Kill
Four ways to change what grows:
- Forks are copies of the same Grow, spread by probability.
- A Split sends growth down every one of its inputs at once, so branches from one point can each have their own Grow and rules.
- A Switch sends each shoot down one of two paths, depending on a condition.
- A Kill ends the shoots routed to it.
Effectors
The Effectors tab holds this Grow's effector stack. Effectors are directions that steer growth, either from effector nodes or from vectors the tree already carries. You can add more than one of the same kind, and each one attracts, repels, flattens, aligns, levels or orbits. See Effectors.
Decorations
Decorations decide what the growth looks like, and a Grow can carry several. Every new Grow comes with a Trunk Preview decoration, so the Simulate shows a rough mesh straight away. For a finished tree, remove it and add Surface, Trunk, Clusters or Assembly decorations from the toolbar's Decorate menu. To assign a decoration that is already in the scene, drag it into an empty slot under Decorations. See Decorations.
Status
The Advanced settings are mostly experimental or deprecated, so leave them on their defaults. Prune is experimental. Mapping Growth % from the Grow's own u reads the parent's u.