Flow

Summary

Flow is a GPU-accelerated 3D fluid solver that simulates gaseous fluids using a 3D texture-based approach. This operator creates smoke, fire, and atmospheric effects by solving the Navier-Stokes equations for incompressible flow on the GPU. The simulation operates in a volumetric grid where velocity and substance density are stored as 3D textures, allowing for real-time interactive fluid dynamics.

The solver supports substance injection from POP point sources, volumetric source inputs, and various forces including buoyancy, gravity, external force fields, and optical flow. You can control fluid behavior through viscosity (thickness), vorticity (swirling motion), pressure iterations (incompressibility accuracy), and dissipation rates for both velocity and substance density. The simulation maintains mass conservation through a pressure projection step and supports collision boundaries and obstacles defined via 3D textures.

Flow optionally generates particle systems that are advected by the fluid velocity field, creating wispy smoke trails or fire ember effects. Particles can spawn from density regions and inherit color from the substance field with customizable lifespans and variance. The simulation outputs velocity, substance density, and temperature as 3D textures suitable for volume rendering or further processing, making it ideal for smoke plumes, fire effects, atmospheric disturbances, and abstract fluid art.

Parameters

Page: Flow

Reset Reset Pulse to clear simulation and reset to initial state.
Time Step Timestep Simulation speed multiplier per frame (higher = faster evolution).
Simulation Bounds Simbounds Physical size of simulation volume in world units.
Simulation Bounds Simboundsx
Simulation Bounds Simboundsy
Simulation Bounds Simboundsz
Max Axis Resolution Maxaxisres Maximum voxel resolution for longest axis (other axes scale proportionally).
Simulation Resolution Resolution Read-only display of actual grid resolution.
Simulation Resolution Resolutionx
Simulation Resolution Resolutiony
Simulation Resolution Resolutionz
Precision Precision Texture precision for simulation data.
16-bit float 16bit
32-bit float 32bit
Velocity Dissipation Veldissipation Rate at which velocity decays over time (0 = no damping, 1 = instant decay).
Pressure Iterations Pressureiters Number of iterations for pressure solve (higher = more accurate incompressibility).
Viscosity Viscosity Fluid thickness controlling resistance to flow (0 = inviscid, higher = thicker).
Diffusion Iterations Diffusioniters Solver iterations for viscosity diffusion (only active when viscosity > 0).
Vorticity Vorticity Vorticity confinement strength to restore rotational motion (creates swirling detail).
Substance Dissipation Dissipation Rate at which substance density fades over time (higher = faster fade).
Substance Color Dissipation Colordissipation Per-channel dissipation rates for RGB color (allows colored smoke to fade unevenly).
Substance Color Dissipation Colordissipationr
Substance Color Dissipation Colordissipationg
Substance Color Dissipation Colordissipationb

Page: Inputs

Inject Inject Enables injection of substance into the simulation.
Injection POP Injectionpop Reference to a POP containing points to use as injection points when no first input is connected.
Inject Position Injectpos Default injection position when no input POP connected and no P attribute present.
Inject Position Injectposx
Inject Position Injectposy
Inject Position Injectposz
Inject Scale Injectscale Scale multiplier for injection area. Uses 'scale' attribute if present in injection POP.
Inject Gain Injectgain Amount of substance added per injection point. Uses 'gain' attribute if present in injection POP.
Inject Strength Injectstrength Strength of force applied at injection points. Uses 'strength' attribute if present in injection POP.
Inject Temperature Injecttemp Temperature value for injected substance. Uses 'temperature' attribute if present in injection POP.
Inject Color Injectcolor Color of injected substance. Uses 'Cd' attribute if present in injection POP.
Inject Color Injectcolorr
Inject Color Injectcolorg
Inject Color Injectcolorb
Add Source Addsource Enables continuous source emission into simulation.
Substance Gain Substancegain Multiplier for substance density from 3D texture source. Enabled when Add Source is on.
Force Strength Forcestrength Multiplier for force computed internally from change in density. Enabled when Add Source is on.
Temperature Gain Temperaturegain Multiplier for temperature from alpha channel of 3D texture source. Enabled when Add Source is on.

Page: Forces

Apply Buoyancy Applybuoyancy Enables temperature-based buoyancy force (hot rises, cold sinks).
Buoyancy Strength Buoyancystrength Overall scale for buoyancy force magnitude.
Gas Weight Gasweight Density-based downward force (creates heavy smoke effect).
Cooling Rate Coolingrate Rate at which temperature decreases over time.
Expansion Expansion Volume expansion from heating (creates outward push).
Apply Gravity Applygravity Enables uniform gravity force on velocity field.
Gravity Gravityvector Gravity direction vector (default: 0, -1, 0).
Gravity Gravityvectorx
Gravity Gravityvectory
Gravity Gravityvectorz
Gravity Strength Gravitystrength Multiplier for gravity force magnitude.
Surface Level Surfacelevel Y-position where gravity begins to take effect.
Add External Force Addexternalforce Enables custom 3D vector field force from texture.
External Force TOP Externalforcetop 3D texture containing RGB velocity force vectors.
External Force Strength Extforcestrength Multiplier for external force magnitude.
Add Optical Flow Force Addopticalflowforce Enables force from 3D optical flow texture.
Optical Flow TOP Opticalflowtop 3D texture input for optical flow motion vector computation.
Optical Flow Force Strength Optiflowforcestrength Multiplier for optical flow force magnitude.

Page: Collisions

Enable Bounds Enablebounds Enables collision boundaries at simulation volume edges.
Bounds TOP Boundstop Optional 3D texture defining custom boundary regions.
Show Bounds Showbounds Visualizes boundary regions in output.
Obstacle TOP Obstacletop 3D texture defining solid obstacle regions (white = solid).
Render Obstacle Renderobstacle Includes obstacle visualization in output.
Obstacle Opacity Obstacleopacity Opacity multiplier for rendered obstacles.

Page: Advect

Advect Advect Enables particle system advection by fluid velocity field.
Target Particles Update POP Particlesupdatepop Reference to a POP node downstream in the network. This reference will cause a feedback loop and re-injects the particles next frame.
Advection Step Advectionstep Multiplier for particle advection speed.
Spawn From Density Spawn Spawns particles in regions with substance density above threshold.
Number Of Particles Numparticles Maximum particles spawned.
Density Threshold Threshold Minimum substance density required for particle spawning.
Seed Seed Random seed for particle spawn positions.
Max Attempts Maxattempts Maximum spawn attempts per frame before giving up.
Enable Particle Life Enableparticlelife Enables finite particle lifespans with automatic death.
Seed Lifeseed Random seed for lifespan variance.
Life Span Lifespan Base lifespan in seconds before particle dies.
Life Variance Lifevariance Random variation added to base lifespan.
Lookup Substance Color Lookupcolor Particles inherit color from substance field at spawn position.
From Low Fromlow Input range minimum for color remapping (RGBA).
From Low Fromlow1
From Low Fromlow2
From Low Fromlow3
From Low Fromlow4
From High Fromhigh Input range maximum for color remapping (RGBA).
From High Fromhigh1
From High Fromhigh2
From High Fromhigh3
From High Fromhigh4
To Low Tolow Output range minimum for color remapping (RGBA).
To Low Tolow1
To Low Tolow2
To Low Tolow3
To Low Tolow4
To High Tohigh Output range maximum for color remapping (RGBA).
To High Tohigh1
To High Tohigh2
To High Tohigh3
To High Tohigh4

Page: Common

Free Extra GPU Memory Freeextragpumem Free memory that has accumulated when output memory has grown and shrunk.

Inputs

Input 0 POP Injection
Input 1 TOP Source
Input 2 POP Particles In

Outputs

Output 0 TOP Substance
Output 1 TOP Velocity
Output 2 TOP Temperature
Output 3 POP Particles Out