Geometry nodes - phyllotactic spiral and z-axis scaling


I want to create procedural star moss stems:

I though a good approach would be to:

  1. Make STEM (Bezier curve), taper to tip (achieved)
  2. Create LEAVES from curves (achieved)
  3. Instance LEAVES around the STEM in phyllotactic spiral (partially achieved)
  4. Control scale of LEAVES depending on position on STEM (EDIT: achieved)
  5. Instance groups of STEM + LEAVES on curve circles to create clumps of moss

This is what I have so far for creating the stem with some leaves around it:

What I can’t figure out is:

  1. How to control the rotation of instances around the stem so that they form a spiral?

  2. How to scale instances based on their (Z axis) position along the stem? [EDIT - achieved]

  3. If I instance the stem on another object (e.g. curve circle to create a clump), how would I introduce some random flex to the stems?

  4. At the tip of the stem, leaves would need to have a different angle (point up more). Not considered this yet, but would probably tackle this by instancing these separately on the stem so they could be controlled independently.


I figured out how to control the size of instances along the stem with a capture attribute node and a float curve, as here:

EDIT 2: I realised there is a twist node in the ETK and this achieves close to a phyllotactic twist:

1 Like