# FMX Special: A Point Based Growth Solver

Free Tutorials

At FMX 2017 Entagma had the pleasure to talk as part of “Houdini Day”. Among other things we explained how to create a propagation growth solver. Here we’ll show how to build this setup. We introduce the concept behind propagation growth and implement the solver in VEX. It is point based although one might want to implement it directly in volumes. The point approach is simpler to tackle, though.

This growth solver serves as a basic building block for many growth effects. Usually it is used on surfaces but here we’re growing a volumetric model. The setup is easily extended and enhanced with more weight factors and can be tailored to many needs.

Here you can download the scene file including the crystal sculpt:

Here is the original file from the presentation, including more intricate weighting:

1. Samantha Hamer

Awsume, you guys rock (he..he), in fact your tutorials are infectious!

2. I always look forward to the latest instalments of Entagma Houdini goodness and this one is no exception. Thank you guys for taking the time to explain and in doing so, share the magic. I learn so much form your examples!

3. Mohammed

Marvelous, thank so much guys for the brilliant setups high-quality information & tips. Your tutorials are my number one reference to create awesome effects in Houdini. Thank you sooooo much

Are the nearpoint & pcfind functions the same?

• Daniel

Smashed it again ! Thank you

4. Solvers are Magic! A fun tutorial, thanks.

5. Kevin

Thanks guys, great fun.

6. ree

you guys rock…pun intended

7. Akil Tasi

Hi Manuel and Moris,
First of all thank you for the time you are dedicating in creating this tutorials and sharing the knowledge.
I followed a long the tutorial, but without volumes, using a grid and a point. After the blast, I wanted to create a line based on the @ptnum (like a labyrinth), so basically connecting the points. I realized that the point number was changing values (following the propagation and moving outwards).

My question is:
– why the point nr changes
– will be possible the smaller points where the effect starts and the bigger outside?

Thank you for your time
Regards
Akil

• If your having problems referencing ptnum, a usual workaround is to give your points a pointID. That is to say that the original points at the very top of the chain are given a custom point attribute before the re-grouping or the blast which won’t change or be affected by the simulation. You can use that to drive other effects where a consistent point num is required.

8. Great explanation guys. I have seen this type of thing where in the wrangle a PC function is called instead of nearpoints. My understanding is that a PC function will also allow you to specify the “max neighbors” which sometimes is handy.

My question is with nearpoints, what are the advantages over PC?

9. Chris Noellert

What’s the purpose of the upweight variable? Personally I would love a better explanation of the weighting system you used here… that would be pretty damn educational.

10. Michele Spaliviero

Thanks for the awesome tutorial!
Just a question, when I change the name of the two point wrangles to “food” the animation doesn’t happen, there is no growth, any idea why that might be?

11. Andrew

Hi Quick Question,

Will this method work in reverse…
I mean to eat away at a structure. SoSo if I have a block and want the solver to eat away at it to reveal somthing on the inside?

Thanks for taking the time to be amazing!

• Akelian

You can just reverse the VDB Combine

12. Awesome tutorial!

How would you approach creating vectors pointing in the direction of the infection, so that you could create a velocity field based on how it spreads?

• Okay Thanks!

I think I understand the fundamentials of it but I still need to learn more about vex and what “fit, abs and dot” means to really get the hang of it I think.

Basically I want to recreate what Simon Holmedal did in Flyknit ( look at 42:30 – 43:00 on https://vimeo.com/237163361 ).

A really simple example with like 2 points or more would be really helpfull for me to understand.

Thanks for your support 😀

13. Kieran

Really fun one!! Do you know if there would be a way to transfer separate colour info of the original surface and the ‘internal’ growth through the vdb combine process to shade differently? Was thinking could convert each stream to polygons and use the Boolean instead of vdb combine but seems pretty heavy way to go,,,

Thanks!