Mandelbrot and Mandelbulb

comments 24
Free Tutorials

The Mandelbrot set – the mythical King of fractals. The one that started the whole fractal craze in the 80s and 90s. In this video we’ll implement not only a classic Mandelbrot set that will yield the omnipresent image of that weirdish ridged shape, but we’re also gonna build a setup that will allow us to generate a 3-dimensional realtive of it: The Mandelbulb.

Download Mandelbrot project file here
Download Mandelbulb project file here

Daniel Shiffman’s Youtube Channel
Great Resource on Mandelbulb Fractals

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


  1. You guys repeatedly read my mind, following my interests in learning procedural math stuff. you’re a blessing! Thanks a lot!

  2. Hello guys thanks for the great tutorials!
    I have a little problem
    I constantly get an error on the Mandelbrot part
    At the first line i get an error whitch higlights “M” in “Mandel” word and it says “syntax error, unexpecting identifier, expecting “;””
    Tried to download yor project and it has the same error


    Thanks in advance!

    • Hey Stefan,

      hm – that is strange. I rechecked the file and on Houdini 15.5 it runs fine. My best guess would be that some implementation detail for VEX changed from your Houdini version to 15.5.xx – have you tried updating to a current version?


    • Hi Stefan,

      I’m having the same problem, also using I checked the documentation for user defined function syntax and didn’t find anything helpful. Let me know if you found the solution!


      • Hi Tim, Stefan,
        well then it might even be a bug… No clue to be honest but judging from a comment we got on Vimeo, upgrading to a current 15.5 version fixes the issue – So I’d simply do that and not worry too much about it. 🙂

    • I know this is an old tutorial but …

      I had the same problem with this version of Houdini, it seems that ‘function’ keyword used to define a function is optional. So:

      function int functionName(params){ //do_something } can be written just as:

      int functionName(params){ //do_something }

      This solved it for me.

  3. Prafull Sharma

    How Can I Animate This .,.,.
    From “N” Value ?

    • Yes, animating N would be one option… 🙂

      • Prafull Sharma

        Thanks for your reply. This Video is amazing. Thank you so much guys for bringing a great way to learn houdini.
        There is one more question in my mind
        how can i get the different type of loops in this ?
        like i watched so many different video on video in which i saw they looping in a different way
        in my vex i got only one type of looping, how can i get those different type of fractal?
        can we get by changing >8 this value ?
        help me.

  4. Hi guys, thanks so much for all your work (starting houdini and your stuff is amazing).

    Quick question though, any idea why this isn’t working in houdini 16 (16.0.600)? I even copied pasted the code from your file but all I can see in the viewport is a black rectangle in the middle of my grid instead of the desired result at 11:30.

    • um, my bad actually, I had set the grid in the yz orientation… I can now indulge in my noobish mistake.

      Once more, thanks for spending the time to make these tutorials!!!

  5. I’m wandering why you chose to render the volume directly. In my tests rendering the volume took about 10x longer than converting to polys and rendering that – and it didint look any better.

    Am I missing something?

  6. How do you wrap your mind around so many different concepts so fast?! 😀
    I’m really impressed! Another very cool tutorial! Thanks a lot!

  7. Hey,

    First of all, thank you for the amazing tutorial.
    When changing the Uniform Sampling in the volume and setting a really high number (I tried 4096), I just got an error, something like out of memory. I wonder if there are any ways to save the calculated mandelbulb onto the disk instead of into the RAM? I hope it can be solved, because I’d still love to increase the details on mine.

    Thanks in advance.

    • I tried to use the cache thing, but it doesn’t work, since it first saves to ram and only after to the disk. :/

    • Hey MK,

      I have the feeling that the best way to (massively) increase the detail of your fractal without hitting RAM limits too early would be a volume procedural. Thus Mantra evaluates the fractal at render time and saves memory while generating a very high level of detail.

      Thomas Dotheij proposed (and also built) this setup in a comment on Vimeo:

      “there you are :
      i hope it can be of some interest for some 🙂
      the final quality of the volume is mostly driven by the volume quality parameter on the render output”


  8. Is there a way to use this setup on a geo that we created and brought in as an .obj? Thanks for your help!

  9. Chris Willey

    May I have permission to exhibit this video at a Museum in Milwaukee, WI.

    I have tried to contact you other ways, but got no response. This is important work, and Id like to share it with our audience.

    Chris Willey,
    Guest Curator

  10. Hi!

    I wonder if it is possible to import volumes of different shapes? In orther words not starting from a box, but from other geometry I created preciously. Is it possible? If yes, does anybody know how to set this up?


Leave a Reply