Houdini 20.0 Nodes Dynamics nodes

Filament Solver dynamics node

Evolves vortex filament geometry over time.

On this page
Since 13.0

This node “evolves” the position and shape of vortex filaments by advecting the points of the filament polylines by the filaments' own velocity field.

The Source Filaments imports filament geometry into the network. This node advects the points of the filament curves to create motion. The POP Advect by Filaments node then uses the velocity field created by the moving vortex filaments to move particles.

See the filaments page for more information.



Turns this node on and off. The node is only active if this value is greater than 0. This is useful to control the effect of this node with an expression.


Reconnect Distance

Increase this value if the simulation is generating too many polygon edges.

The solver will attempt to reconnect filaments with approximately anti-parallel edges, as the effects of such edges approximately cancel out. This can prevent the number of polygon edges from increasing exponentially during the simulation. Increasing this value will cause filaments to be reconnected more aggressively.

Min Edge Length

Remove any edges shorter than this length by collapsing those edges to their center point.

Max Edge Length

Subdivide any filament edges that are longer than this length.

Cap Speed

Turn this on to limit the speed of the filament vertices. Set the speed limit in the Speed Cap parameter.

Speed Cap

The maximum speed of a filament vertex (when Cap Speed is on).

Time Scale

An overall scale applied to the actual timestep. You can animate this value.


Filament Geometry

The name of the simulation data that contains the vortex filament geometry.


Make Objects Mutual Affectors

All objects connected to the first input of this node become mutual affectors.

This is equivalent to using an Affector DOP to create an affector relationship between * and * before connecting it to this node. This option makes it convenient to have all objects feeding into a solver node affect each other.


When an object connector is attached to the first input of this node, this parameter can be used to choose a subset of those objects to be affected by this node.

Data Name

Indicates the name that should be used to attach the data to an object or other piece of data. If the Data Name contains a “/” (or several), that indicates traversing inside subdata.

For example, if the Fan Force DOP has the default Data Name “Forces/Fan”. This attaches the data with the name “Fan” to an existing piece of data named “Forces”. If no data named “Forces” exists, a simple piece of container data is created to hold the “Fan” subdata.

Different pieces of data have different requirements on what names should be used for them. Except in very rare situations, the default value should be used. Some exceptions are described with particular pieces of data or with solvers that make use of some particular type of data.

Unique Data Name

Turning on this parameter modifies the Data Name parameter value to ensure that the data created by this node is attached with a unique name so it will not overwrite any existing data.

With this parameter turned off, attaching two pieces of data with the same name will cause the second one to replace the first. There are situations where each type of behavior is desirable.

If an object needs to have several Fan Forces blowing on it, it is much easier to use the Unique Data Name feature to ensure that each fan does not overwrite a previous fan rather than trying to change the Data Name of each fan individually to avoid conflicts.

On the other hand, if an object is known to have RBD State data already attached to it, leaving this option turned off will allow some new RBD State data to overwrite the existing data.



The simulation object to evolve as a set of vortex filaments.


This input attaches microsolvers that are run before the main solve step.


This input attaches microsolvers that are run after the main solve step.


First Output

The operation of this output depends on what inputs are connected to this node. If an object stream is input to this node, the output is also an object stream containing the same objects as the input (but with the data from this node attached).

If no object stream is connected to this node, the output is a data output. This data output can be connected to an Apply Data DOP, or connected directly to a data input of another data node, to attach the data from this node to an object or another piece of data.

See also

Dynamics nodes