# 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!

##### 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.

• 2

## Create an account or sign in to comment

You need to be a member in order to leave a comment

## Create an account

Sign up for a new account in our community. It's easy!

Register a new account