Fractal Ornaments

comments 24
Free Tutorials

It often occurs to me that I need to look up certain functions in Houdini. One of those things that I constantly struggle with are For-Loops. So as a reminder to me and to you – here’s a tutorial about their use. We’re gonna build a fractal(ish) ornament by copying geometry on itself. By using – you guessed it – a For-Loop. Have fun!

Download Project File (.hipnc)

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



    thank you. please explain about vopsop and vex and explosions

  2. Hi Saeed,

    thanks for your feedback – there is more content about VEX coming soon. As for the VOPSOP – we use it here and there. For example you can find a bit about it’s usage in the Poly Rembrandt Tutorial here:


  3. Another brilliant tutorial! Please keep them coming.
    Is there a way to interrupt or pause the for loop to complete another action, say render the image or export an fbx, then return to and continue the for loop?

    • Hi Jim,
      not sure if this is what you mean but hitting escape will always stop the execution of the current SOP. So if anything takes too long to cook, just hit escape. You can see the current status in the lower left corner.

    • Thank you 🙂
      And – Cool! How much speed do you gain from importing via VOPs?
      Cheers, Moritz

      • olivier jeannel

        Bonjour Moritz,
        I haven’t tested really, just did the expression way, then did the vop way and thought “hey, it seems faster”. Not very scientific 🙂
        There’s a tool in Houdini to measure performance I believe, but never tried. I’m still super beginner in Houdini.
        I’ve red that Vops are multithreaded while expressions is script singlethreaded _ feel free to give a real complete answer on that aproximative presumption 🙂

  4. olivier jeannel

    I have a request tutorial, while we’re here.
    I find dozen (okay half-dozen) tutorials to build loops in VEX, but almost no (mean not comprehensive ones) tutorials to build loops in VOP (the new for loop system without subnet).
    Looks like a silly request since they are the same in principe, but I always fail.
    BTW, I was so happy when you demoed how to build arrays in vop (PC find / Get Element), and then someone posted a looped method in vimeo comments.

  5. Giovanni La Rocca

    Hi Moritz,
    thanks for the detailed explanations you and Manuel provide us in these tutorials, they are really helpful for us beginners.

    I was wondering how – and if – is it possible to animate this setup (or the one Olivier posted) so that the elements of each iterations scale up from 0 instead of just appearing when the iteration number grows?

    • Hi Giovanni,

      yes that’s definitely possible in a number of ways. One would be to add a @pscale attribute to the points you’re copying the shapes on and animate that. In order for each iteration to be animatable individually you’d for example have to give each iteration its individual group and then animate @pscale for each group individually.


      • Giovanni La Rocca

        Thanks for the fast response Moritz!

        This makes totally sense in my head but I’m having a hard time trying to actually make it work in Houdini – I’m a c4d user and totally noob here.

        Anyway I realise basic workflow knowledge is not the point of your site, and there are plenty of resources out there, so I’ll let you know how this goes! Really looking forward to see what you’ll bring up next 🙂

        • Philippe Medina

          Hi Giovanni.
          Same here, new to Houdini and was thinking about the same setup.

          I am struggling as well to get the groups and pScale attrib to work. Did you get it to work in the end?


  6. Nik Willmore

    Normal text scripting is exactly what I turned to in Rhino Grasshopper to escape from such bizarre spaghetti, so moving into Houdini I see myself doing the same thing, to bite the bullet and learn VEX enough to just add a script node for loops and conditionals.

  7. Great tutorial…..I was trying to scale the Polywire with each iteration…..I’m pretty sure it is just another Transform node but I can’t quite figure out how to wire it up…..any advice would be most appreciated!

    • Hey Kuzy,

      have a look at the project file – there’s already a polywire set up to scale acording to the iteration number 🙂


      • I think to get correct iteration for the wire thickness you have to add 1 to the create attribute in the for loop.
        i.e. detail (“../block_begin1”, “ivalue”, 0)+1

        Maybe I’ve been looking at the screen too long!

      • Hi!

        unfortunately the file is no longer available. Can somebody help?


  8. First, nice tutorial, thank you!

    In the tutorial you reference the “iteration” metadata but in the hipfile you reference “ivalue”.
    What is the difference? The docs aren’t that clear.


  9. Sereno K

    Hi, I was just checking the tutorial and I loved it!! Unfortunately the file is not available anymore. Is there the possibility to relink it?


Leave a Reply to Jim M Cancel reply