Quick Tip: Modifying Curl Noise (Season 2 is here!)

comments 14
Free Tutorials

Hello people of the internet! After a tremendous start followed by a small hiatus to prepare new tutorials, setups and renderings we’re back for a second season!

We’re thrilled by your feedback and incorporated some of it into this season’s tutorials. We’ve got topics ranging from advanced VEX to quick live savers for your workflow prepared for you. Let’s start without much ado and a quick tutorial on getting one particular effect: Particle trails that look akin to a printed circuit board.

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


  1. Welcome back! And thanks for your continued contribution to the incredible Houdini community

  2. Matthew Vonnegut

    is there any difference in the Volume VOP between Parameter and Bind Export ? Are there any pros/cons ?


  3. Matthew Vonnegut

    Hey sorry I have one more question :))
    I did a quick test to check that in fact the Curl noise vectors were getting normalised… umh it didnt really do it.
    You can check this scene: https://bit.ly/2fyTyg8
    Basically it’s your same setup:
    + created a N attribute from volume
    + computed the length as a new attribute
    If you check the Geometry Spreadsheet for the compute_length node, you will see that the length is not 1. It does change if you normalise the curl noise but it’s never one nor is it uniform.

    What am I doing wrong ?


    (you should turn on show normals to have a visual output)

    • Matthew Vonnegut

      found the reason. the points in the grid – although were matching the density of the volume – were not actually at the exact centre of each voxel.
      adjusted the grid size to match the centers of the voxels and computations are correct :))

      for those interested: https://bit.ly/2fySfOc

  4. Nirosh B

    Please do it in Cinema 4D …as well..pl…pls….pls…

  5. Alex Czetwertynski

    How would you give this some movement? Add some noise to the points on the grid with a VOP SOP?

  6. So I have a motion captured man in my scene which I applied this curl noise to and I really like it. My only issue is when he animates the curl noise doesn’t stay. So for example at frame one the curves look different than in frame two because he’s moving through the volume. Is there anyway to pull the generated curves from frame one, and keep them moving and attached to the mesh as it goes on with the animation?

  7. Great quick tip! I noticed that even though the volumeVOP, normalized and rounded vel values to create a quantize 45 grid look, the volume trail will average the resulting velocity values between the cells, creating some rounding in between the cells.

    Is there an easy way to prevent that? I can think of a few ways of doing it but would need to apply more effort through a “manual” VEX approach to create the trail line rather than out of the box volumeTrailSOP.

    I’ll post a file if I can get around to doing it the manual way.

    • Here is a single step brute force method. Take point, apply vector & move one step.


      I added a way to rotate the vectors and then ease them for a smoother transition using CHOPS which is kind of fun. Reminds me of a logic operator gate.

      Downside is the points actually still have to be spawned directly in the voxel cell centers 🙁 I believe any type of volume sampling (even a VEX implementation) will interpolate if not in the cell center. This is more or less both the advantage and disadvantage when using volumes 🙂 I can think of a method where a reference point on a grid stores the volume vector and then non grid points would use the grid as a nearest neighbor lookup, but then that kind of defeats the purpose of using the volume in the first place. It could actually be solved maybe by moving the normalize & round step after the point vector attribute has been transferred from the volume to the point… but I digress.

      Next up, stash this pup into a solver for a growth method.

  8. Got a good solver growth method going now. Fixed the interpolation issue, so seed points do not have to be spawned in the voxel centers. Not sure which method I like better, it gives a nice stylized look if the seed points are constrained but its nice that the system can do both.


    Next up, work on a better render!

    • Hello Bradon,

      I also having trouble running into the interpolation issue. Is it possible to have a look into your scene file to see how you’ve addressed this issue?


Leave a Reply to Moritz Cancel reply