Fluid density and distance fields
Overview
Note | Houdini also supports particle fluids, which is an entirely different way of simulating fluids using particles, and ripples, which simulate wave propagation across a surface. See choosing between liquid simulation types. |
This type of simulation uses a notional box, called a field, which is divided into a three dimensional grid of smaller boxes (sometimes called voxels). Each point in this grid stores a piece of data – an integer, a floating point number, a vector, or other datatype.
This kind of fluid simulation is always bounded by the box (the fluid can never go outside the box, though you can set it to disappear if it reaches the boundaries of the box), and the accuracy of the simulation is limited by the resolution of the field (how many sub-boxes the field is divided into).

Houdini’s dynamics engine can interpret the values at the points of the field in different ways.
Density field
This type of simulation uses a
Smoke Object with a Smoke Solver in the dynamics network.
The value at each point indicates the density of some substance at that point. This is useful for simulating smoke and gases.
You can import simulated density fields into geometry networks using the volume primitive, which is the geometry equivalent of the dynamics density field. See input and output of fluid fields.
Sign distance field
This type of simulation uses a
Fluid Object with a
Fluid Solver in the dynamics network.
The value at each point indicates the distance to the closest point on the surface of a fluid, with the sign of the number (positive or negative) indicating whether the point is inside or outside of the fluid. The fluid’s surface connects all points in the field where the “distance to the surface” is 0. This is useful for simulating liquids with surface tension, such as water.

This is similar to how the Iso surface node creates a surface from the boundaries where the value of a 3D formula is 0, and in fact you can use the Iso surface node to import sign distance fields as surface geometry (see input and output of fluid fields).
Shelf tools
Creating field objects
Smoke container – Creates an empty density field.
Fire container – Creates an empty density field set up for burning.
Liquid container – Creates an empty sign distance field.
Adding density/fluid
Source from objects – Turns an object into a density or liquid generation source.
Smoke from object – Creates smoke in the shape of an object inside a density field.
Burst into flames – Creates fuel in the shape of an object for burning inside a density field.
Liquid from object – Creates liquid surface in the shape of an object in a sign distance field.
Moving and removing density/fluid
Sink from objects – Turns an object into a density or liquid removal sink.
Pump from objects – Turns an object into a pump, which adds velocity to any density or liquid that touches it.
Seed vorticles – Creates a large number of tiny invisible paddle-wheels that move with the fluid and push it around inside the box.
Manipulating fluids
Density and liquid are affected by dynamics forces such as Gravity, Uniform force, Fan, and Wind. See external forces.
When you use
Source from objects or
Smoke from object to create density from an object, you can select the object in the dynamics network and set the Temperature parameter on the Physical tab in the parameter editor to control the temperature of the birthed smoke (increase the temperature to make the smoke rise).The
Source from objects shelf tool adds a Motion node called setsourcevelocityafter the source object. This node is created bypassed (the yellow flag is on, meaning the node has no effect), but you can go into the dynamics network and turn off the bypass flag and use the node to set the initial velocity of the smoke created.When the
Source from objects shelf tool sets up an object as a source, it uses a Merge node to create a source relationship between the source object and the fluid object. You can use Activation parameter on this Merge node to animate the source off (Activation = 0) and on (Activation = 1).If you set up collision relationships between a fluid field and rigid body objects, you can push the density/liquid around with the RBD objects. RBD objects with displace sign distance liquid, and push and drag smoke density.
If you are using the shelf tools, they usually automatically create collision relationships for you.
Use the shelf tools to set up objects as sources, sinks, and/or pumps to add, remove, and move density/liquid.
Use
Seed vorticles or add noisy Wind to mix up and add turbulence to smoke.
Visualizing fluid forces
See fluid visualization.
Velocity and other fields
A fluid object can actually store many different types of information at the points of the field. Houdini itself will store the velocity of the contained fluid at each point for use in calculating the simulation, along with other fields that affect and/or are calculated from the contained fluid. You can see the velocity field using the visualization controls on the fluid object (see visualization).
The velocity field and other fields are available as data attached to the fluid object. The velocity field is named vel. Because fields such as velocity are just data on the fluid object, you can copy them to other parts of the simulation, or copy them from other parts of the simulation. See how to move data around the network.
See the Gas Advect solver for how to use the velocity field from one fluid sim to push around another field or points in a piece of geometry.
Tips
A good high resolution for fields (for offline/overnight beauty simulations) is about 120 divisions per side. More than 250 divisions per side is probably overkill.
The main output of a fluid simulation is the changing velocity field, which records the motion of the contained fluid. You can run an overnight simulation to “bake out” velocity fields, and then use the baked velocities to use the simulated smoke without actually running the simulation.
