How to Animate Procedural Growth in Blender Simulation Zone
This guide explains how to create organic procedural growth animations using Blender's Geometry Nodes Simulation Zone. By capturing and modifying geometric state frame-by-frame, you can simulate realistic spreading effects such as expanding vines, fungal networks, or crystal formations. The following steps break down the entire workflow, from setting up the simulation loop to meshing and refining the animated result.
1. Set Up the Base Geometry Nodes
- Add any base mesh to your scene (such as a Plane, Grid, or Curve) and open the Geometry Nodes workspace.
- Click New to create a new Geometry Node setup.
- Delete the connection between the Group Input and Group Output.
2. Initialize the Simulation Zone
- Press
Shift + Aand search for Simulation Zone. Placing this adds two linked nodes: Simulation Input and Simulation Output. - Connect your initial starting geometry (such as a single point, curve end, or small cluster of points) to the geometry socket of the Simulation Input.
- Connect the geometry socket of the Simulation Output to the Group Output.
3. Build the Growth Logic Inside the Zone
To make geometry expand over time, you must generate new elements relative to the existing elements on each frame:
- Duplicate and Offset Points:
- Inside the simulation zone, add a Duplicate Elements node set to Points.
- Add a Set Position node after the duplication.
- Connect a Noise Texture or a Random Value vector to the Offset socket of the Set Position node. This pushes new points outward in random or organic directions.
- Combine Old and New Elements:
- Add a Join Geometry node inside the zone.
- Plug the existing geometry from the Simulation Input into one socket, and the newly offset points into the other.
- Route the output of the Join Geometry into the Simulation Output.
- Control Point Density (Merge by Distance):
- Place a Merge by Distance node before the Simulation Output to prevent infinite point density in overlapping areas. Adjust the distance threshold according to your scale.
4. Create Connected Structures (Vines or Branches)
If you want connected geometry rather than floating particles:
- Add a Geometry Proximity node inside the zone to measure distance from newly created points to existing mesh surfaces.
- Use a Mesh to Curve or Points to Curves node using the accumulated point indices to generate connected paths.
- Alternatively, use a Shortest Edge Paths setup fed through the simulation loop to trace lines progressively across a surface.
5. Convert to Renderable Geometry
- Outside the simulation zone (after the Simulation
Output), convert your growing data into renderable surfaces:
- For curves: Add a Curve to Mesh node with a Curve Circle as the profile.
- For points/volumes: Add a Points to Volume node followed by a Volume to Mesh node for organic, blob-like growth.
- Add a Set Material node to assign your growth shader.
6. Control the Growth Over Time
- Age/Scale Attribute: Store a named attribute (like an integer age or float scale) inside the simulation loop using the Store Named Attribute node. Increment this value every frame to scale down older elements or taper the tips of new growth.
- Playback: Press the Spacebar in the timeline from frame 1 to simulate. Use the Bake tab in the Simulation Node properties panel to cache the result for smooth viewport playback and final rendering.