Jump to content

Rain, Condensation droplets, Rivulets flowing over Hard Surface RnD

Recommended Posts

Hi all, been learning Houdini since mid Feb and thought it time I better share something back as I've found the forum immensely useful ;-)


RnD of Houdini particles flowing over a hard surface model to simulate a condensation/rain/rivulet/droplet effect.

This is part of a larger RnD project I'll render & upload shortly (this is one section of a larger flying object - a cloud seeding drone... just an excuse to learn a load of Houdini).

Partly inspired by Mark Theriault's Sucker Punch Intro Breakdown using Pflow (vimeo.com/39161208) and having just starting making the switch for fx from Maya to Houdini,

this was one of those "I wonder if I can do that now in Houdini" things that I just had to try. I remember years ago doing something similar in Maya and it taking a heck of a lot longer!

This effect took about a week of tweaking.

The sim is basically just a popnet which relies on an SDF volume (isoOffset) for surface interaction and uses a voppop (VEX) to control the "drip off threshold".

Once I had a working method, I then used 3 duplicate variations for the different rivulets (trail SOP) and finally added a random scatter SOP for some extra motionless droplets.

As the final shot won't be so closeup, I have to option of increasing/decreasing the uniform sampling of the SDF to fit.

When all this is done, I'll hopefully be taking this RnD further with a rain-on-a-window-pane high-detail/realism sim.

Thanks to SpencerL for advice on the initial VEX methodology.

  • Like 2

Share this post

Link to post
Share on other sites

very nice, indeed!

Obviously, much of the "magic" part happens on that voppop

Would you offer some more insights on this?

Share this post

Link to post
Share on other sites

Hi Netvudu, thanks!

And yes, of course you are correct in that the main control is in the voppop. Initially I was going "right round the houses" trying all sorts including the creep SOP - a noob error I'm sure.

So, the particles are split into 4 separate popnets based on the same initial voppop setup, some with trails added, some without, with varying degrees of randomised noise.

Within the voppop with geometry is called up via an isoOffset/SDF volume. This volume has a triple purpose:

  • To test if the particles are on or off the surface via a volumeSampleFromFile (along with the point position).
  • To set up the "flow direction" via a volumeGradientFromFile into a crossProduct (along with the points velocity).
  • The volumeGradientFromFile is also piped through to a dotProduct used to compare against a constant to set the "dripping off threshold".

I actually had to sit down for a day and watch these maths videos (very out of character) just to get my head round the theories of

as I must have missed that one in school.

For how much speed the particles will inherit, the incoming point velocity is measured with a length and multiplied by the flow direction.

Wow, that hurt my head. I did the fundamentals a month ago but hopefully I've explained it well enough.

Currently I'm scaling up the entire setup so that I can knock out the rivulets pass for the main project it's part of, though with the added shaking motion now on the geometry before it becomes an SDF,

it's bringing with it it's own set of challenges.

  • Like 6

Share this post

Link to post
Share on other sites

Cheers guys...


"Hey you! You give me scene now..."


Well actually, I'm a bit busy at work and those project files are at home. Might I suggest this Orbolt Rain freebie to get started with:



I haven't looked it's network but the video demo looks like a similar effect and should get you started.




Share this post

Link to post
Share on other sites

to be fair that example is with the "old" pops.
but it is fairly easy to take it as an example and replicate it in the new pops :)

Share this post

Link to post
Share on other sites

I only got as far as the video, but seeing as how every every fx td and his dog seems to want to see my set up this week including Netvudu I said I'll try and post something asap. I just got to get past the current round of crunchtime first... But I will post a hip!

Share this post

Link to post
Share on other sites

Thanks Matt. I have created my own version, but it still lacks a few features and it gets problematic with some vertical faces. There´s some hidden math I´m still failing at.

Also, I´m not releasing with a dot product (I´m assuming you chose an angle for releasing) but based on ther droplet life.

Addmitedly I spent just two or three hours so it´s only logical it still has problems.

It would be helpful to be able to see your VOPPOP logic, but don´t loose your job about it :)


I didn´t know about the orbol asset. I´ll try to check it as well.

Share this post

Link to post
Share on other sites

Ok it's probably 2 years late :blink: but here's a hip file based on the above rivulets setup.


Sorry it took so long - I actually prepped this file back in 2014 to upload but could never figure out how to - but here it is.


I still get constant requests for this setup or help with similar so it should still be useful.


Note - it this example uses the old popnet method. But the vop stuff is still all good.


Edited by mattak
  • Like 3

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now