FMX Special: A Point Based Growth Solver

comments 18
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:
Download Project Files

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

Liked it? Take a second to support Manuel on Patreon!
Become a patron at Patreon!


  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?

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

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

  5. 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?

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

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

  8. 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!

  9. 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?

  10. 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,,,


Leave a Reply