top of page

Method

This type of growth is termed to be called Differential growth which mimics the organic growth observed in different kinds of flower petals and mushrooms.

What happens in real life you ask?

So as the petal grows the individual cells divide and push cells around them and as they grow the cells closer to the centre don't have much to push around, so the growth usually occurs mostly near the edges where cells can easily divide and have space to push around.

The folding pattern mostly depends on the stretch, bending stiffness and growth rates of the cells,

Hence to mimic this simulation I have chosen Vellum solver as they have these parameters in handy.

 

Step 3 - As the length reaches a certain parameter (around multiples of 50 frames/2 seconds),

I subdivide and repeat the process which results in these beautiful patterns around frame 600.

Inspiration

Source - https://n-e-r-v-o-u-s.com/projects/tags/algorithm/albums/floraform-system/

Nervous systems design is a jewellery company that focuses on creating beautiful organic patterns using their in-house tools which simulate different types of growth. Their website has helped in a lot in the methodologies that they have followed to simulate differential growth.

diff_g_1.png
diff_g_3.png

Created a circle, re-meshed it and pinned the points in the center so that they don't move.
A slight point jitter to disturb the points slightly so that they don't stay in the same plane and only expand in a plane.

Problems faced without point jitter initially - the points expanded only in a single plane and were not forming any organic patterns as intended.

Edge group created using the "select unshared edges" option in group by edges to further make an attribute on them so that it can be later used to mask the growth only on them.

Attribute blurred the growth to succeeding edges to avoid sudden falloff.

The pattern initially did not look natural and had a sudden falloff with the blur. This option brought a natural look on them.

I used a dopnet to drive the parameters of a vellum solver.

One of the properties of a vellum solver is its rest length parameter which exerts force along the edges outward which is exactly what we wanted for the outward push force. That is driven by the geometry wrangle node that's attached into the forces input 

restlength = restlength x (1+ mask(Growth Rate))

This expression is basically telling the solver that the length of the edges should always increase, hence 1+ growth rate so that the it does not decrease in length when the number is below 1.

f@growth rate is the attribute which has a value of 1 on the edges and 0 at the centre, this helped us mask out the growth in the centre and only let the edges at the end grow.

It is only enabled for the stretch group which 

So once a certain threshold was reached using the vellum sim and when the edge length reaches certain length it has to subdivide to repeat the solver. It is like a solver within a solver.

one of the challenges faced while implementing this was to not being able to exchange attributes efficiently. solver within a solver creates challenges like which geometry is being solved and what constraints are being considered by the solvers individually and they should be the same ideally for smooth simulation.

So attribute transfer and attribute copy came in handy to solve these problems.

There are two sop solvers for 1 reason only. one sopsolver was responsible to output the geometry and the other to output the constraint geometry that has been processed through the solver. 

These sop solvers are enabled every 50 frames so that they have 2 seconds times o grow before they subdivide and start the process again.

Sources

ChatGPT 4 was used to explore different types of workflows to test out while simulating in Houdini.

Entagma tutorials on Differential Line and mesh Growth


https://www.youtube.com/watch?v=SOk5qVXrFQA&t=3s
 

https://www.youtube.com/watch?v=LgAt2FWJ0V0&t=583s
 

bottom of page