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

comments 26
Free Tutorials

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 🙂

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


  1. Dimitri S.

    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. 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 🙂

    • 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.


    • 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

    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 🙂

  7. Matt Chandler

    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

    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.

    • Hi,

      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. 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?)

    • Hi Kornel,

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

      Cheers, Mo

        • 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.

          • 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

    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. Hi Mo,
    thanks for amazing tutorial.
    Ho can I replace black and white dots with 2 different geometries?

Leave a Reply