viscous flip - drooling effect

LIQUID REFERENCE

GOAL OF THE EFFECT

The Raspberry is covered in a thick syrup.

This liquid slowly slides of the edge of the fruit, adheres to the surface,

then random droplets detaches from the main liquid body to fall off the fruit.


PROBLEMS & SOLUTIONS

-How to efficiently cover the whole raspberry without losing to much time on pre-sim ?

I’ve tried different techniques to cover the fruit in syrup. After trying dipping, and spraying, I found that an animated small sphere used as a DOP SOURCE FLIP worked really well,

even more when combined with a POP Force curl noise ! You have really interesting non-uniform results.

-How to make the viscous liquid follow the surface of the fruit and not succombing to the effect of gravity ?

With adhesion. unfortunately, it does not come straight from the box with the solver or the object. We have to build our own adhesion sytem (pretty simple and fun). Here are the steps:

  1. Collider geo goes in input1 and VDB collider in input 2 of a point VOP.

  2. Compute the volume gradient of the VDB and the relative bounding box in Y of the GEO, add a ramp for control of the position.

  3. Multiply them together and output the N attribute. You will now have a set of normals pointing to the inside of your collider.

  4. Create a null after this VOP and import in in a GEO VOP inside your DOP (it naturally goes in the POP Velocity of the flip solver (input2))

Your VOP should look somthing like this

In this GEO VOP, it’s not that complex, the goal is to use these normals as a magnet for the particules, here’s how :

  1. Compute the point cloud (with pcopen) maxpoints from ptnum, p from p, file from input where you called your null (step 4) (you can promote the radius parameter for easier access straight from the DOP

  2. With the pcfilter node, you can translate the information from the pcopen handle to the N attribute. Add what we just did with the v and output to v. It should now work. But radius isn’t enough to have full control over the adhesion. We need to add a factor acting as the strength of the adhesion.

  3. Multiply the result of the pcfilter with a constant (I used multiply node and promote to parameter the second input for easier access from DOP)

Your GEO VOP should look somthing like this :

-How to create and control those droplets ?

I animated the search radius and strength parameter in my adhesion GEO VOP to create a motion resulting in the formation of droplets.

The strength parameter will act as a force that will determine the speed of the stretching of a drop. the strength goes from 2 to 0.75 in a few dozen frames to 0.2 in 200frames.

The search radius, on the other hand will create a “ripple-pingpong” movement in the adhesion. It will result in a perturbation and will create droplets at random positions. it is animated with a sinwave in CHOP.

Then create a mask from a simple GEO VOP: “P” in “vec to float”, Y in “fit01” paints white the particles on the bottom half of my fruit. clamp then ramp, bind export to “resistY” and used in a POP Wrangle with this expression :

@airresist *= @resistY;

this will add drag to the liquid only when on the fruit, but not when a droplet detaches from the main liquid.

In the end, I will need 380ish pre-sim frame before my shot starts. It’s a lot, but after a few days of “die and retry”, I’m more than happy to trade a bit more sim time for a good result, even tho there’s room for a lot of opitmization (mostly in my sourcing method). Anyway, sometimes it’s better to “have it good enough today than perfect never”. :)

Here’s the hipfile: