# Differential curve growth

## Recommended Posts

Not sure what you mean, but just generally in regard to binding this kinda stuff to surfaces, doing extrusions or offsets, what I would do - and to make it work on any object - is remeshing the surfaces in the solver (slow as F, though, as it's a single threaded SOP) and then using the normal from the underlying surface (transfer it to the output from the solver, or inside the solver) to transform it off the surface, like using @P += normalize(@N) * some multiplier in a point wrangle...

##### Share on other sites

Hi There,

I have been trying to do differential curve growth in a controlled manner where with one or more attractors I would like to constrain where the growth happens and how much it does. I am working at the architectural scale so each iteration is moved in the vertical axis to create an overall 3D form via vdbs. I have watched the Entagma tutorials and have been trying to adapt their attractor based logic in mesh growth to curve growth but I am quite new in Houdini and was not sucessful to do so...

I was wondering if anyone has an idea on how to do that. I have attached the file.

Thank you!

L

##### Share on other sites

Looking at your file, I can think of several ways to do what you are looking for.  The one I like the best is to create forces, vectors which are added in to affect the spread of the points.  I put together an example of making your setup work their way around other meshes without going through them, I will probably fiddle with some more stuff with it.  I do really like this setup.

Similar setups to this can be done using volumes which act as resistance to growth through a density variable.  I will fiddle with one of those next, but I wanted to get you something that might give you some ideas quickly when I saw the post.

##### Share on other sites

Yay!!! I did it.  This one I actually love and will likely use myself for some stuff I have been thinking about.  It uses a density volume to proportionally remove the travel distance at each stage, effectively making it stop progression in areas of high density.

Currently I have a clamp on the values, so it only removes, but if you remove that, it should be straightforward enough to tweak it so you can make break it down like this:

density = 0: no change

0 < density < 1: Progress is slowed

density = 1: no progress

density > 1: Reverses progress

The reversal of progress might be tricky due to how I am calculating the travel direction, if there isn't travel, the vector ends up being the 0 vector, so you would need to get around the case where a stopped section begins to reverse.  I would probably write another attribute that only changes if the length of the vector is above a certain threshold, so if density > 1 it can use that if it has an invalid vector for the direction.

##### Share on other sites

Very clean scene file for distance based growth - scene file linked in the description...

• 1

##### Share on other sites

...and a variant of the above...

Scene files to both setups in the link in the description - and that's an open post on Patreon, just so that's clear.

• 1

##### Share on other sites
On 12/10/2016 at 9:08 PM, Thomas Helzle said:

I somehow always wanted to achieve a thinner version of the coral growth and finally succeeded today after some hints in the comments on this video:

So I extended my old Entagma-based setup and replaced the resample node with a remesh and fiddled quite a long time with parameters but finally got it working - one major hint was to add some minimal noise to the points to get it out of the 2D plane.
To not have it paper thin I added a poly extrude and 2 subdivisions. Mantra was too slow for me so I once again exported to Thea Render:

Cheers,

Tom

Hey, love your set up! If you don't mind, any tips on where to introduce the noise? Inside the existing Point VOP, a new one, something like mountain/jitter node? Cheers!

• 1

##### Share on other sites
9 hours ago, sb526 said:

Hey, love your set up! If you don't mind, any tips on where to introduce the noise? Inside the existing Point VOP, a new one, something like mountain/jitter node? Cheers!

Yeah, just put some very small random offset into the system before the solver so that the plane isn't perfectly flat anymore. IIRC that was enough to make the system leave the plane.

Cheers,

Tom

##### Share on other sites

Hey all,

I'm trying a little experiment to see if I can combine differential growth with space colonization.   I think I've done a pretty good job using a volume as the food.  Each frame the wire eats some of the density volume around it, then I use the local density field as a multiplier on the movement, thus causing it to stop moving when it runs out of food.  Obviously I had to shoot a pyro volume at it when I got it working.  Still figuring out a few things with it and playing, but I figured Id share.

• 3

##### Share on other sites

Hey Folks,

Some more very nice Differential Growth vids I've come across;

from Peter Höhsl on Vimeo

from Jan Fischer on Vimeo.  Its 2yrs old, but still impressive.

Cheers!

• 1

##### Share on other sites

Don't know if I ever posted this one but this is a cool effect as well...

##### Share on other sites

With a little bit of messing around, I managed to get this from noonoo and Adam Ferestad differential curve growth example. Needs a bit more detail, but in principle could be used to create cool flowers.

##### Share on other sites

That is really cool aivaras, glad I was able to provide some inspiration and help.

##### Share on other sites

Is there any way could make a differential growth from an object surface? like a differential growth cloth, Thanks!

##### Share on other sites
On 10/12/2016 at 1:08 PM, Thomas Helzle said:

I somehow always wanted to achieve a thinner version of the coral growth and finally succeeded today after some hints in the comments on this video:

So I extended my old Entagma-based setup and replaced the resample node with a remesh and fiddled quite a long time with parameters but finally got it working - one major hint was to add some minimal noise to the points to get it out of the 2D plane.
To not have it paper thin I added a poly extrude and 2 subdivisions. Mantra was too slow for me so I once again exported to Thea Render:

Cheers,

Tom

Hey Tom, mind posting that file? Cheers!

##### Share on other sites

@jayhem & @btangonan: So I dug out this old file from 2016 and updated it to Houdini 17.5.

As was said in above post, the rendering wasn't Mantra but Thea Render.

Cheers,

Tom

• 1
• 1

##### Share on other sites
Posted (edited)

Lovely flower

Edited by vinyvince

##### Share on other sites

So many great workflows! Here's my take - using scatter and VDBs. A few optional switches inside to do deletion as well as accretion, or to pipe in a custom vector field for bias (I just have a simple curlnoise for default).

differentialgrowth.hiplc

• 1

##### Share on other sites

We did a take on the diff growth for a shortfilm-festival. I dont have the complete video, but a cut down instagram version of it. (Not pleased with the mushroom animation, but it is what it is);

And a instagram breakdown.

• 3

##### Share on other sites
On 4/3/2016 at 1:54 AM, Farmfield said:

Why use a line when you can use a circle!?

Johnny, this is a very clever little adaptation. I'm impressed! I downloaded this hip file and was playing around with it. One question: Can you tell me where in the file I go to make tighter "curls"? What node and what parameters would I need to adjust?

Lastly, how would you change the direction and origin of the growth? Right now, it seems to move outward from a specific origin point and then it moves sort of at a 45-degree angle outward (rather than say, straight up, or down, or completely sideways along the Y axis, for example).

## Create an account

Register a new account