Experiment: Trying out Houdini 19 Vellum, Vellum Fluid and Interactions with Each Other
After giving Houdini Karma a try, this time I decided to try the new features Vellum got with Houdini 19.
If you haven’t heard the new features are Vellum Fluid which lets you make small scale liquid simulations with Vellum, Unified Solver which means you can combine rigid bodies, cloth, grains, wires and now fluids in a single simulation. There is also a Vellum brush option, in addition plasticity is improved and lastly grains work faster. (Check out the new features here)
Things getting fast is no surprise with Houdini, the team behind the software constantly improves the tools so I didn’t test that. What really got my attention was Vellum Fluids and using it in a unified solver. So I tried a test scene, where I decided to make a tower and add rigid bodies, fluids and cloths in the same simulation.
Firstly I modeled the tower with basic tubes to add obstacles to the simulation. This tower was used as a collider of course, it is not a rigid body. I then added some tight nylon like cloth geometries in the middle of the tower. I wanted the fluid and the rigid bodies to pile up and tear the cloths as it is supposed to now with the help of the unified solver. Also wanted to add a container at the bottom of the tower and catch whatever manages to go down to the ground level. And at last exported everything to Blender and rendered it with Octane Free Version. I chose Octane this time because in my tests it gave me a better result compared to Karma and by better I mean in my opinion it looked more realistic and alive.
Impressions and Difficulties
It was pretty straightforward to work with the new Vellum Fluid feature, it is basically just one node that have 9 liquid attributes to play around with. Most of it is self explanatory. I went with a slow moving/viscous simulation to really see small details and be satisfied by seeing all the movement. (When it is a fast flowing/splashing liquid you can get away with some weird behaving parts or exploding particles).
Right of the bat, the biggest issue was the speed of the Vellum Fluid simulation, it is fast but not stable. To make it stable, just like grains you need to increase the substeps and when I say increase I don’t mean like set it to 2 or 3. You should at least go with 5, or even higher for more violent/dynamic simulations. I used 8 substeps for my final simulation. So if you try to fill a big cup with water you’re going to have a hard time with Vellum Fluids. I know that it is related to your hardware but this is not a tool to replace FLIP Fluids. Vellum Fluids is meant for small scale fluids but the speed tells me it is for very small fluids because once you increase quality (decrease particle separation) and the substeps, the simulation goes pretty slow.
Check out the amazing example scene SideFX did below:
This also makes things a bit difficult with testing your scene because once you like the way things move, you lower particle separation and everything changes. Because there are more points, rigid bodies act different, the timings of the cloths tearing changes and many more.
However, the Unified Solver option works amazing. You don’t even have to do anything, it just works by itself. Everything interacts with each other perfectly. Only check your fluid and cloth interactions. I had a few instances where the fluid was a bit far from the surface of the cloths because either the cloth simulation’s thickness was high or the fluid particle number was low.
There is also the option to mix more than one fluid with each other and that also works great. Especially mixing different density fluids is a lot of fun. However, when I tried to add one more fluid to the tower scene, things didn’t go as I expected. Collisions, rigid bodies, cloth worked but for some reason when there was two different fluids either one of them did not simulate or the parameters didn’t act accordingly. Tried to fix it for a couple of hours but didn’t really push it and went with a one fluid setup because I thought the scene would have been too crowded and confusing with two liquids.
To mesh the fluid, I didn’t use the standard Particle Fluid Surface node which is generally used with FLIP. There is no special meshing options for Vellum. I made my own VDB from Particles then eroding and dilating then used some VDB Reshape SDF and Smooth options which gives a better result since this is a small scale fluid. A side note; the Particle Fluid Surface node does the same VDB stuff under the hood, but adding the VDB steps I mentioned can give you more options and control but still using Particle Fluid Surface is perfectly fine.
For cloth, I can’t say there is anything different. It works as before and interacts with everything pretty nice. Rigids were also straightforward, they act accordingly and are very fast. For Rigids there is not an option called rigids or RBDs or something like that as far as I know. I used the old method which is to put down a cloth constraint node and a vellum struts constraints node with high stretch stiffness. Just like Vellum Fluids can’t replace FLIP Fluids, Vellum’s rigid options can not replace the RBD tools. It is not just my idea, SideFX (creators of Houdini) says that, it is not meant to replace those.
And the result is below:
- There are 18 rigid balls in the simulation.
- Vellum Fluid has 386,044 particles.
- 25882 polygons on cloths initially, then they were subdivided by setting the subdivision depth to 1 in the Vellum Post Process node.
- Total Simulation time: 2 hours 42 minutes. (750 frames total, 150 of it is preroll for cloth) PC specifications: i7 9700F 3.0GHz, 32GB RAM , RTX 2060
- 7 minute to render per frame with Octane. Denoising was enabled and used Path Trace Kernel. PC specifications: Intel Core i7–4720HQ, 16GB RAM, NVIDIA GeForce GTX 960M (The stronger PC was busy so had to render it on my laptop)
While working on the tower I got an idea to test something annoying. I tried to see if keeping Vellum Fluids in a moving and deforming container is easy. A couple years ago I tried a simulation using Autodesk Maya where some primitive shapes that were cloths that acted like balloons fell down into a container and bounced around. And in Realflow I filled them up with fluids. First I simulated the cloth then the fluids of course, so the cloths were not affecting the fluid which gave a bit of an unrealistic simulation. Secondly trying to keep the fluids inside the cloth objects was a painful process, I had to go and look at each frame and delete any particles that got out of the their containers. Plus with collisions the fluid even with very high substeps exploded like crazy. With Vellum Fluids, I both got the fluids and cloth to push each other around and it was extremely easy to keep the fluid inside the geometries. No extrude tricks on the balloons or deleting any exploding particles. There were a few leaks at fast collisions but the number of particles that got out was so little that they did not even get meshed. They can also be deleted manually or with some basic VEX code. Check out the result below: