Quicktip: Rayleigh Taylor Instability (Season 3 Is Here!)

comments 26
Featured Video Play Icon

Yeeeha! We are back. To start off season three in a gentle way, let’s look at an easy setup to produce intricate eye candy. Also watch Mo burning his fingers on microwaved ink. The pleasures of real world experiments.

This was one of the questions we received while on season break: How would we go about creating a Rayleigh Taylor instability. After quickly brushing up on our fluid dynamics knowledge and conducting quite a funny real world experiment (“Let’s see if this really works!”), which involved microwaving dye, wo came up with a pretty simple setup that nevertheless generates quite amazing detail in the fluid swirls that are so typical of the phenomenon called Rayleigh Taylor instability.

Download Scene File (.hip)

For more theoretical background we can highly recommend FYFluidDynamic’s explanation as well as this impressive real world footage:

FYFluidDynamics on the Rayleigh Taylor Instability
Impressive real world example of Rayleigh Taylor Instability

P.S.: It’s good to be back 🙂

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


  1. Dimitri S. says

    Hi, Thank you for your tutorials!
    Concerning the @P.y >= 0 group selection you did in the very beginning:
    I compared the group selection logic version and an if clause within the wrangle. It seems to me that that the group logic causes some kind of memory cache. I tried with about 32million points and the group logic node was about 557 MB while the other was about 500 mb. Somewhat surprisingly the group logic one ran at 0.04 ms while the other at 0.05. What blew me away was that when I started adding operations into the execute block, the group selection node kept a very steady execution time, while the execution time on the if-clause node got larger and larger (and it’s memory consumption also increased faster)!
    – Long story short, I would not mind more technical information about performance optimization/implications. XD

  2. Very awesome. Interesting note: The initial density mismatch that creates the mushroom cloud shape is described by Rayleigh-Taylor, but those secondary swirls and fine fractal detail is actually the Kelvin-Helmholz instability which has to do with the pockets of lower density that the initial motion of the RT instability creates, fun stuff!

  3. Robert says

    Thank you guys for such an amazing tutorial! looks like you have a monster PC, can you please tell the specks? I have 32GB ram and 6 core 3.9 processor, and still this simulation goes not so smooth:( would be great if you could make more awesome tutorials for mid speck workstations 🙂

    • Moritz says

      Hi Robert,
      most of our simulations are sped up in editing (which you can hear by the high pitch whining of our computers’ fans). Simulations are just costly (computationally and thus time wise). No way around it, sorry 🙁 Cheers, Mo

  4. Hi there,

    Would you be able to explain how you went about rendering this? I am relatively new to Houdini, so writing a pscale and rendering as particles is something I’m not quite sure I understand.


    • Moritz says

      Hi Chris,

      what you want to do is add a pscale point attribute to each point and then either using mantra or redshift render those points as particles (spheres). The pscale attrib will drive how big each individual particle is. On our patreon we’ve got the render setup for this (and a few other) projects : http://www.patreon.com/entagma

      Cheers 🙂

  5. Dickon Knowles says

    I’m having some odd behavior, my liquids don’t seem to mix at all unless I set the values on the second group to have a density of about 10. Then they mix but the result doesn’t look that good at all.
    Any ideas?

  6. I’ve been trying to build something that creates the same instabilities in a radial arrangement, going for something that might yield interesting Crab Nebula type shapes. No luck so far, the instability is, well, a little too unstable 🙂

    • Alen Milanovic says

      was thinking the same.. maybe using centered metaball and metaball force in solver instead of gravity could do the trick..

    • Alen Milanovic says

      yap, that worked beautifully:) replaced gravity with magnet force, plugged in SOP geometry node into magnet and linked metaball.. set magnet force to -10 and that’s it.. will upload video when sim finishes..

  7. Matt Chandler says

    Cool stuffs!
    Adding/switching on the vorticity attrib in the Flip solver adds even more mixing color detail when visualised later. Add a color node and set to Ramp from vorticity attribute with a large range.

  8. Hi! Thank you for the awesome tutorials! I have a question:

    Is there a way to constrain this effect to a container shape of my own choice? I tried doing so, but I don’t know how to override the volume limits in the Flip Solver to adhere to some other geometry? (my particles get created in the proper shape, but they all fall to the rectangle container size before actually getting mixed).


  9. taekyu ahn says

    Thank you so great tutorial. I have a question. Can I get color information when exporting to alembic file? I want to render in c4d but I can not figure out how to do it. I would appreciate your reply. Thank you.

    • Moritz says


      just make sure you have a color attrib (Cd) on the points then save out your sim as alembic. In C4D (R19) open the alembic and in the import settings dialog under “General” check “Points As Polygon Object” and under “Optional Data” check “Color Maps”. That should do it.

      Cheers, Mo

  10. Kornel says

    Hey, amazing tutorial! I have one question though. When I run my simulation, after a while, holes start to appear, like my points were just lost/deleted.
    Picture of whats happening: https://imgur.com/r2CucGB
    is it because my density values differ too much? (1000 and 10000?)

    • Moritz says

      Hi Kornel,

      it’s difficult to diagnose what’s going on from an image – would you mind sharing your scene file?

      Cheers, Mo

      • Kornel says

        Okay, its really weird. Sometimes it happens but not always and I can’t figure out why. It’s almost like some particles got out of the bound and got deleted. Here is the scene file using the x axis to divide the two different density liquids (it happens when using the y axis too however) : https://drive.google.com/open?id=11jZ7usvCs03wL6PYNmFC2jie0FK2xfS3

        Thanks in advance.

        • Moritz says

          To me it looks like the solver can’t fully resolve particle movement due to the particle’s high speed. The simple (yet costly) solution would be to increase the solver’s substeps (as done here):


          Cheers, Mo

          P.S.: I’m open to less costly suggestions on how to amend this behaviour.

          • Timo says

            I managed to find a solution of sorts.

            I found that if I increased the “particles per voxel” in the “Reseeding” tab of the FLIP solver, it stopped the air pockets or holes to appear.

            I increased from the default 8 to 10.

  11. Amin Sadeghy says

    Hi Mo,
    I would like to now use these points and copy an object to these points generated from this dop net how can I do this?

    Thanks again for Tutorial and your Patreon page.


  12. Amin says

    Hi Mo,
    thanks for amazing tutorial.
    Ho can I replace black and white dots with 2 different geometries?

Leave a Reply

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