On this page |
The Vellum fluid solver is a particle-based fluid simulation framework. Vellum fluids are fully integrated into Houdini’s Vellum dynamics system: fluid particles can interact with grains, cloth, and soft bodies. Hair-fluid interaction is currently not supported. This allows for multi-material simulations, e.g. sand being washed away by water, or cloth reacting on rain drops. In contrast to FLIP fluids, Vellum fluids are not limited through grid and domains. The particles can move freely and they're connected through constraints.
Physical attributes like Density, Viscosity, and Surface Tension can be used to simulate different types of materials such as water, oil, or honey. Surface tension controls a fluid’s tendency to contract and create drops or tendrils.
There are three ways to setup Vellum fluids:
-
through a shelf tool,
-
manually inside a DOP network,
-
manually inside a SOP network.
Each method has it own pros, cons and things to consider. In the end it’s mainly a matter of preference and experience which route you want to go. Houdini’s shelf tools are especially suited for beginners, because they create the entire network with all relevant nodes and you can directly start to adjust simulation parameters. The other methods require a certain amount of work to connect nodes and scene elements correctly. The advantage is that you get a better understanding of how the individual parts work together.
Scene setup ¶
The following chapters guide you through the creation of a basic Vellum fluid simulation using all three methods. The scene uses a sphere to source Vellum fluid particles and create a drop. The drop is then attracted by gravity and collides with a glass. Each method should create the same results.
Download and open the scene file with the sphere and glass objects as a starting point.
The objects in this file are required to follow the workflows in Vellum fluid setups.
The sphere is located inside the source_geo
node, the glass inside glass_geo
. Both containers are Geometry OBJs. Note that this setup isn’t a real world scenario. For demonstration purposes, scene scale is very big. When you open the file, you should see this:
Shelf tool and DOP workflows ¶
Note
All descriptions, names, and settings are based on the example file mentioned in the 'Scene setup' chapter above.
The idea behind Houdini’s shelf tool is to provide fast access to preconfigured setups. You don’t have to think about different types of networks, connections or data exchange between DOP and SOP networks. Anyway, shelf tools don’t save you from configuring your simulation, adjusting solver settings, and so on. What you get from these tools is a fundamental setup you can start working with.
The shelf method is already a DOP version and you can use the shelf setup as a template for examining and recreating the networks manually.
Start with the source geometry and the Vellum Solver DOP.
-
Select the
source_geo
Geometry node. The Sphere SOP inside acts as the source object for the particles. -
Open the Vellum shelf and click Vellum Grains. After a few moments Houdini dives into a newly created
AutoDopNetwork
DOP Network node. The sphere is no longer visible, but now you can see some particles instead. -
In the Network Editor, press L for a clean node layout.
-
Click the
vellumsolver1
node to see its parameters. -
For fluids, the default Substeps value is
5
. Enter a value of10
to get higher precision. -
A Constraint Iterations value of
20
is sufficient for fluids. -
Smoothing Iterations are not required here and should be set to
0
.
The shelf tool created the AutoDopNetwork
and a grains_vellum
Geometry node on obj level. The latter node is described later. Now the fluid properties are adjusted.
-
On obj level, double click
source_geo
to dive into the node. -
Turn on the
GEO
node’s blue Display/Render flag to see the particles. -
Click the
grain_constraints
node. This node is a Vellum Configure Grain SOP and is currently configured as a grain source. -
Change Type to Fluid.
-
With Particle Size you can change the number of particles. For this scene, use a value of
0.01
. -
Change Packing Density to
1.5
for a better particle representation of the source object. -
Open the Physical Attributes sub-pane.
-
Set Mass to Calculate Uniform. This action unlocks the Density parameter. The default value of
1000
describes water and can be kept.
The glass should act as a collision object and interact with the particles. To establish this connection, you can use another shelf tool.
-
Go back to obj level and select the
glass_geo
node. -
Open the Collisions shelf and choose Static Object.
-
Dive into
AutoDopNetwork
again, and press L to reorganize the nodes. You can now see a new branch in the network, introducingglass_geo
as a collision object.
The scene is now ready to simulate, but you can further explore all networks to become more familiar with the nodes. If you want to cache the result, go back to obj level and dive into grains_vellum
. The vellum_io
node provides two options for saving the simulation to disk.
-
Save to Disk opens a progress bar and Houdini’s UI is locked during simulation.
-
Save to Disk in Background asks if you want to save the project. During simulation, the UI remains responsive.
-
For simulating without saving, press the button.
SOP workflows ¶
In SOP-based setups you can create the entire network within in a single Geometry OBJ node. You don’t have to separate networks and exchange data. However, with complex networks it makes sense to keep things separated and store different parts of the scene in different Geometry OBJs. Create a new scene and reload the file with the base setup. Start with the source object to create the fluid particles.
-
On obj level, double click
source_geo
to dive into the node. -
Press ⇥ Tab to open the TAB menu, and enter
config fluid
. Choose the only resultVellum Configure Fluid
. You can see that this node is a Vellum Configure Grain SOP, but Type is set to Fluid already. -
Set Particle Size to
0.01
to get more particles. -
The Packing Density parameter is
1.5
for a better particle representation of the source object. -
Connect the
sphere1
node’s output with the first input ofvellumfluid1
. -
Turn on the
vellumfluid1
node’s blue Display/Render flag to see the particles.
The next stop is the Vellum Solver SOP where you determine simulation settings.
-
Press ⇥ Tab and enter
solver
. From the list, chooseVellum Solver
. -
Set the solver’s Substeps to
10
. This is the recommended value for Vellum fluids. -
Decrease Constraint Iterations to
20
to make particle constraints less stiff. -
Smoothing Iterations are not required for fluids and you can set them to
0
.
In many cases the next step is to connect the outputs of vellumfluid1
with the inputs of vellumsolver1
. For this setup, we use a different approach.
-
Press ⇥ Tab. Enter
null
and create two Null SOP nodes. -
Rename one Null to
GEO
, the other toCON
. -
Connect the
GEO
node’s input with the first output ofvellumfluid1
- the Geometry output. -
Connect the
CON
node’s input with the second output ofvellumfluid1
- the Constraints output. -
Link the third output of
vellumfluid1
with the third input ofvellumsolver1
.
If you went through the Shelf tool and DOP workflows chapter, you might came across a Vellum Source DOP node. There, the node establishes a connection between particles, constraints, and the solver. Here, the Vellum Source provides fast access to the Emission Type parameter. With this parameter you can choose, whether you want to source particle once, per frame or per substep. With direct connections between vellumfluid1
and vellumsolver1
you'd have to unlock the solver and dive deep into its network to access Emission Type.
Note
To learn more about the Emission Type parameter and its methods to turn sourcing on or off, please visit Emission methods.
-
Double click
vellumsolver1
to dive into the node. -
Press ⇥ Tab to add a Vellum Source DOP.
-
Connect the
vellumsource1
node’s output with the input ofSOURCE
. -
Select the source node to access its parameters.
-
For Source ▸ SOP Path enter
/obj/source_geo/GEO
. -
For Source ▸ Constraint SOP Path enter
/obj/source_geo/CON
. -
Return to obj level.
Note
Although the vellumsolver1
node’s first two inputs are mandatory, you have a working setup here. The necessary information comes from the SOURCE
inside the solver. The Vellum Source DOP is only needed if you need access to the Emission Type parameter, e.g. if you want to emit particles each frame or substep. For scenes without continuous emission you can connect the Vellum Configure and Vellum Solver nodes directly.
Now connect the glass as a collision object for the particles. The shelf tools workflow uses a static solver. Here you take a shortcut through a direct connection.
-
Press ⇥ Tab to add a Merge SOP and an Object Merge SOP node.
-
Place
merge1
between the third output ofvellumfluid1
and the third input ofvellumsolver1
. -
Link the
object_merge1
node’s output tomerge1
. -
Select
object_merge1
and look for the Object 1 parameter. There, enter/obj/glass_geo/GEO
to import the glass’s geometry fromglass_geo
. Once the connection is active you can see a blue wireframe representation of the glass.
Note
More experienced users might ask if it’s possible to use opinputpath
expressions for the Vellum Source node’s SOP Path and Constraint SOP Path parameters? It’s possible, but this method changes the number of particles, because the particle geometry is connected twice: through the solver inputs and the Vellum Source node.
Collision objects ¶
Collision objects can be directly connected to the Vellum Solver’s fouth input (Collision Geoemtry). Vellum fluids use a geometric approach and therefore, objects must be polygons. If necessary, add a Convert SOP with Convert To set to Polygon.
It’s also possible to add collision geometry to the Vellum Configure Grain SOPs third input (Collisions). Once connected, objects appear as a blue grid in the viewport. If you want to hide this grid, go to the Vellum Solver and turn off Visualize ▸ Show Collision.
Another way to connect collision geometry is through a shelf tool. Note that this method is only available for DOP setups, and the Vellum fluids network has to exist before you execute the tool. Select the object you want to use. Then, go to the Collisions shelf and choose, as already mentioned earlier, the Static Object tool.
SOP caching ¶
The shelf tool’s network comes ready to use with a Vellum I/O SOP node to cache the simulation results to disk. In manually created networks this node has to be added. For simulating without saving, press the button.
-
Add a Vellum I/O SOP and connect its inputs to the outputs of
vellumsolver1
. -
Press Save to Disk (locked UI) or Save to Disk in Background (responsive UI) to cache the simulation data.