On this page

Since Houdini 12, the preferred method for sourcing is to generate and modify the source fields in a surface network (SOPs) and then import them into the dynamics network (DOPs) and connect them to the fourth (“sourcing”) input of the Pyro solver, Smoke solver, or FLIP solver.

(For pyro effects, the source geometry is used to generate a fog volume. For FLIP fluids, the source geometry is used to generate an SDF volume.)

This allows you to use the full power of the surface node network to noise-ify, combine, edit, etc. the source volume (for example, using the Volume Mix surface node) as well as set up attributes such as velocity (V) before you import the geometry. The sources must be volumes and mapped correctly.


The previous Pyro method for specifying the source volume (merging the pyro object and source volume in DOPs with a “source” relationship or using Source apply) is still available for backwards compatibility (on the Pyro solver’s Relationships tab, turn on Enable relationships). This is still useful when sourcing from simulated objects. However in most cases the new sourcing input is the preferred method for its much greater flexibility and efficiency.

The default Pyro setup copies the initial source volume into the fuel and temperature fields of the pyro object. You can use additional tools such as Expand from objects to affect other fields.

FLIP Fluids

The data flow for the connection between the FLIP Source SOP and the Volume Source DOP for particle fluids is:

In FLIP Source SOP

  1. Create surface SDF field and velocity point attributes as for pyro.

  2. Create particles inside surface SDF with specified particle separation, jitter, and so on.

  3. Sample the velocity field onto particles' v (velocity) attribute (this is the last use of velocity field).

In Volume Source DOP

  1. Import surface field and particles into DOPs.

  2. Delete any incoming particles that overlap with the existing FLIP surface. (This is a fast test to avoid emitting where particles already exist.)

  3. Merge the new particles with existing particles.

  4. Union the emitter’s surface field with the existing FLIP surface field.


The following shelf tools let you convert selected objects into different types of fields in a Pyro or FLIP fluid effect:


  • If you are sourcing from SOPs, you should cache the sources before running the simulation, especially when the source volume is high resolution. Caching ensures the SOP chain doesn’t re-cook every frame.

    Static SOP sources without noise don’t need to be cached, since they are only computed once.

  • If you are using relationships (not the “sourcing” input) and the source object deforms (or collides with a deforming object), go to the Advanced ▸ Forces ▸ Sources subtab of the solver node and set the Velocity Type to “Point Velocity”.

  • You can set the velocity attribute (v) on the source geometry and the pyro solver will pick it up and apply it to the simulation.

    For example, if you created a polygonal tube, you could add a Point node which set the Velocity to

    fit01($BBX, -1, 1), 1, fit01($BBZ, -1, 1)

    This would create upward velocity (1 in the Y direction) with velocity vectors flared outward (the fit01 expressions scale the position of each point within the bounding box of the input geometry ($BBX and $BBZ) to fit within the range -1 to 1).

  • See pyro look development for tips on how to use the source to change the look of a pyro effect.


Learning dynamics

Colliding objects

Simulation types

Next steps