VEX: Space Filling Curves (aka “that Windows 95 Screensaver”)

comments 8
Featured Video Play Icon

Another question that we’ve been asked is how to rebuild a setup similar to that infamous screensaver that slowly filled your display with a maze of pipes. Among various approaches (including some L-System experiments) the most naive setup won. Of course.

Here it is in its simple glory. A brute force approach that yields a maze of individual pipelines that will completely fill any give space (read: volume) that you throw at it. Have fun and leave some feedback!

Download Project File (.hipnc)

Share on FacebookTweet about this on TwitterPin on PinterestEmail this to someoneShare on LinkedInShare on Google+


  1. Emilio says

    Hello Moritz,
    Very nice tutorial, thanks!
    I would like to ask you two things:
    1) How can we change the speed of the lines
    2) Is there a way to turn this into geometry and export it as Alembic?

    • Moritz says

      Hi Emilio,

      the overall speed can be changed by increasing the solver sub-steps. If you want individual lines to have different velocities, the first thing that comes to my mind is to store an attribute on each line’s leading point which stores how many iterations the solver should run. What you’d have to do in the wrangle is import this attribute and have a loop run the given amount of times stored in that attribute.

      Of course you can save this as alembic. The process isn’t any different from the process described here: However if you’d like to export an animation as alembic you have to buy either Houdini Indie or commercial and use the ROP Alembic output node.


  2. Ivan says

    Hi Moritz,

    First of all, thank you for this and the other great tutorials you have posted before.
    I have followed the tutorial step by step but when i add the delete node all the points stay there, then when i change from delete selected to delete non-selected, the node deletes all the wires between points but the points are still there. Do you have any idea about why is this happening?

    Thanks for your time!

    • Moritz says

      Hi Ivan, did you compare your setup with the scene file we provided? Maybe that’s gonna shed some light on what is happening there.


  3. For me this tutorial jumps quite deep into code and I find it quite difficult to follow. I think for people with programmatic backgrounds maybe it’s fine but for me it’s too much information. Maybe if I watch a couple of times it will be ok 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *