Method

This node simulates fluid dynamics on a particle system using the FLIP (FLuid In Particle) or PIC (Particle In Cell) simulation methods. This is typically used to simulate smoke, gas and other fluid effects. This works by transferring particle forces to a grid, solving pressure forces on the grid and then transferring the resultant forces back to the particle system. This allows particles to affect each other and to move in a locally coherent manner. The simulation is stable, detailed and efficient.

The grid resolution and size used for the pressure solver is key to the detail and performance of the resultant simulation. A higher resolution grid over a smaller area will give a more detailed simulation, but higher resolution grids are slower to process. The simulation may be switched from 3D to 2D, in which case one axis is dropped from the simulation.

Example
This image is taken from the “sunburstt.dfx” sample project.
Example Nodegraph

Transform

Name Description
Position X Move its position along the x-axis in local space.
Position Y Move its position along the y-axis in local space.
Position Z Move its position along the z-axis in local space.
Rotation Heading Rotate the object about the x-axis.
Rotation Pitch Rotate the object about the y-axis.
Rotation Bank Rotate the object about the z-axis.
Scale X Scale along the x-axis.
Scale Y Scale along the y-axis.
Scale Z Scale along the z-axis.

Inherit Transform Channels

Toggle which transform channels should be inherited. By default, all are on.

Attributes

Name Description
Solver Mode Choose how the solver is calculated.
  • PIC, Particle In Cell. A detailed but more noisy and explosive simulation.
  • FLIP, A less detailed but more stable simulation.
Velocity Scale Scale the strength of the affectors velocity on the particles.
Incoming Velocity Scale Scales the velocity of the particles before they go into the pressure solver.
Radius Alter the outer radius at which the affector is no longer effective.
Simulation Speed Speed at which the simulation is played.
Depth Spread For 2D simuations – control the range at which the solver affects particles in the depth axis.
Surface Tension Control the amount of surface tension in the fluid solver.
Life Effect Coeffs How much the particles are affected by the affector at different stages of the particles life cycle. Values 1 and 2 are control points used to control a bezier curve between values 0 and 3.
Grid Width The width of the grid in cells.
Grid Height The height of the grid in cells.
Grid Depth The depth of the grid in cells.
Use 3D Solver Toggle whether to use a 3D solver in calculating the fluid dynamics.
2D Axis If 3D solver is turned off, the selected 2D axis is used.
Visualise Solver Visualise the fluid dynamics solver.
Fixed Solver Update Framerate Toggle whether to use the fixed solver, or the legacy mode.
Blend Weight Control how much the affector has an effect on the particles.

Updates

Name Description
Time Step Mode Choose how the simulation update rate is calculated. FLIP simulations are sensitive to the update rate: different update rates change the simulation results, so it may be desirable to control it in order to achieve a deterministic simulation.
  • Running (Normal) – use the same time delta as the main render, which may vary frame by frame. Perform a single simulation update per frame.
  • Fixed – use a fixed update frame rate as specified by the Update Frame Rate property. Perform a single simulation update per frame.
  • Adaptive – use a fixed update frame rate as specified by the Update Frame Rate property. If the render time step is greater than the fixed update rate, perform multiple simulation steps in a frame to keep in sync with it – at the cost of slower processing.
Update Frame Rate The frame rate used for simulation updates in Fixed or Adaptive time step mode.
Num Update Steps The number of simulation steps to take per frame. This allows the simulation to be performed with multiple small time steps rather than single large steps, which may give better quality.

Inputs

Name Description Typical Node Input
Bounds Transform Controls the area of space covered by the FLIP simulation. Bounding Box
Affected Emitters Choose which emitters can be affected by the affector. Primitive Emitter
Procedural Falloff Use the SDF values from a procedural system to dictate the falloff. Procedural Root
Transform Modifier Links all transform properties to the input node. Null
Target Node Always faces the x-axis towards the inputs anchor point. Null
Local Transform Override Override the transformation values of the node, relative to its parent. Null

Outputs

All nodes connected to this node are treated as if flowing to the parent node, and inherits any transformation changes along the chain.