VEX in Houdini: Strange Attractors

comments 20
Free Tutorials

In this tutorial we’ll focus on two extremely powerful tools inside of Houdini: VEX and solvers. VEX is houdini’s scripting language. It is multithreaded (which means fast) and based on C (which means it’s also similar to Processing, Arduino, Java, Javascript, C++ and C#).

Solvers on the other hand allow you to repeat operations over and over again. More precisely they allow you to perform a sequence of operations on the previous results of that same operations. They come in very handy when building any kind of simulation. Also once you grasp the concept they are rather straightforward.

We’re gonna use both VEX and a solver in order to plot strange attractors. Withouth going into too much detail: Strange attractors are a set of formulas that (usually) move a point around in 3D space. The resulting curve from that motion looks quite appealing and (when rendered properly) is a nice addition in your generative toolkit.

As a reference for anything about strange attractors, this site comes in quite handy (it’s german but google translate does a fair job).

Download Project File (.hipnc)

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


  1. Wondering if you had any thoughts on how to approach the formulas on 3D Meier’s site which deal with UV’s? (‘Parametrische Flächen und Körper’ linking to the page doesn’t work…)

    Great tutes and site all round!

    • Funny – that was the first 3D tool I’ve ever used. Back in 1997 or so. 🙂

  2. Hello,
    I was struggling a little bit because of the the Groups system from the newest version of Houdini.
    How do I replicate the same Pattern you used on the Group Node with the new system? I can’t seem to make it work with the new nodes, only using the one from your file, which has a “*” as the Pattern.
    I tried using the same “*” as a Base Group on the new Group Node, but it does not seem to work. I’m sorry if this is a dumb question. I just started to learn Houdini, and most of the tutorials were made on previous versions, and so far the changes on the Group Nodes (where they kind of separated a whole bunch of functions into smaller nodes) still confuses me.
    How to add such a Pattern as you did on the new group nodes system?
    Thanks in advance, and I really appreciate your tutorials.
    Best Regards,

    • Hi Neblina,

      for a very comprehensive summary on grouping in H16 there is this neat tut from Rohan Dalvi:
      Maybe this can asnwer your question in detail 🙂


  3. You have a typo in the sentence “Also oncfe you grasp the concept they are rather straightforward.” – word “once”. Have a nice day 🙂

  4. At around 10:30 I believe the equations should be stored to new variables, because the new point is computed from the original values for all 3 axes and imho the original values should not be overwritten mid computation:

    new_x = x + (…) * dt;
    new_y = y + (use original x here, not the new_x) * dt;
    new_z = z + (use original x and y here, not new_x and new_y) * dt;

    pos = set(new_x, new_y, new_z);

    • Ran Wang

      I agree with u. But somehow if you do this way it wont work…my shape start to explode at some point…dont know why…

    • Ran Wang

      if I make the dt 10 times smaller, which will be 0.0001, the shape wont explode anymore.

  5. Abhigyan


    houdini 16 does not have a group by pattern and I cant find a solution in rohan dalvi’s tutorial. Can you please help me?

  6. Hi!
    I cannot get my head around how to use sin and cos vex functions. If I want to draw e.g. a simple circle using setup in this tutorial, what would be the parametric equation? How to rewrite:
    x = a * cos(t);
    y = a * sin(t);
    so it’ll work with this tutorial in place of the strange attractor equations?
    Thank you

Leave a Reply