> simulations

Flow

simulations/flow·v1.3.0
IN:3  OUT:4

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.

PAGEFlow
ResetResetPulse to clear simulation and reset to initial state.
Time ScaleTimescaleSimulation speed multiplier per frame (higher = faster evolution).
Time StepTimestepRead-only display of effective timestep, equal to 1/FPS of TouchDesigner.
Max Axis ResolutionMaxaxisresMaximum voxel resolution for longest axis (other axes scale proportionally).
Velocity DissipationVeldissipationRate at which velocity decays over time (0 = no damping, 1 = instant decay).
Pressure IterationsPressureitersNumber of iterations for pressure solve (higher = more accurate incompressibility).
ViscosityViscosityFluid thickness controlling resistance to flow (0 = inviscid, higher = thicker).
Diffusion IterationsDiffusionitersSolver iterations for viscosity diffusion (only active when viscosity > 0).
VorticityVorticityVorticity confinement strength to restore rotational motion (creates swirling detail).
Substance DissipationDissipationRate at which substance density fades over time (higher = faster fade).
PAGEInputs
InjectInjectEnables injection of substance into the simulation.
Injection POPInjectionpopReference to a POP containing points to use as injection points when no first input is connected.
Inject ScaleInjectscaleScale multiplier for injection area. Uses 'scale' attribute if present in injection POP.
Inject GainInjectgainAmount of substance added per injection point. Uses 'gain' attribute if present in injection POP.
Inject StrengthInjectstrengthStrength of force applied at injection points. Uses 'strength' attribute if present in injection POP.
Inject TemperatureInjecttempTemperature value for injected substance. Uses 'temperature' attribute if present in injection POP.
Add SourceAddsourceEnables continuous source emission into simulation.
Substance GainSubstancegainMultiplier for substance density from 3D texture source. Enabled when Add Source is on.
Force StrengthForcestrengthMultiplier for force computed internally from change in density. Enabled when Add Source is on.
Temperature GainTemperaturegainMultiplier for temperature from alpha channel of 3D texture source. Enabled when Add Source is on.
PAGEForces
Apply BuoyancyApplybuoyancyEnables temperature-based buoyancy force (hot rises, cold sinks).
Buoyancy StrengthBuoyancystrengthOverall scale for buoyancy force magnitude.
Gas WeightGasweightDensity-based downward force (creates heavy smoke effect).
Cooling RateCoolingrateRate at which temperature decreases over time.
ExpansionExpansionVolume expansion from heating (creates outward push).
Apply GravityApplygravityEnables uniform gravity force on velocity field.
Gravity StrengthGravitystrengthMultiplier for gravity force magnitude.
Surface LevelSurfacelevelY-position where gravity begins to take effect.
Add External ForceAddexternalforceEnables custom 3D vector field force from texture.
External Force TOPExternalforcetop3D texture containing RGB velocity force vectors.
External Force StrengthExtforcestrengthMultiplier for external force magnitude.
Add Optical Flow ForceAddopticalflowforceEnables force from 3D optical flow texture.
Optical Flow TOPOpticalflowtop3D texture input for optical flow motion vector computation.
Optical Flow Force StrengthOptiflowforcestrengthMultiplier for optical flow force magnitude.
PAGECollisions
Bounds TOPBoundstopOptional 3D texture defining custom boundary regions.
Show BoundsShowboundsVisualizes boundary regions in output.
Obstacle TOPObstacletop3D texture defining solid obstacle regions (white = solid).
Render ObstacleRenderobstacleIncludes obstacle visualization in output.
Obstacle OpacityObstacleopacityOpacity multiplier for rendered obstacles.
PAGEAdvect
AdvectAdvectEnables particle system advection by fluid velocity field.
Target Particles Update POPParticlesupdatepopReference to a POP node downstream in the network.
Advection Step ScaleAdvectionstepMultiplier for particle advection speed.
Spawn From DensitySpawnSpawns particles in regions with substance density above threshold.
Number Of ParticlesNumparticlesMaximum particles spawned.
Density Resolution Scale (Fraction)DensityscaleFraction of simulation resolution used for the density field when spawning particles (lower = faster, less precise).
Density ThresholdThresholdMinimum substance density required for particle spawning.
SeedSeedRandom seed for particle spawn positions.
Max AttemptsMaxattemptsMaximum spawn attempts per frame before giving up.
Enable Particle LifeEnableparticlelifeEnables finite particle lifespans with automatic death.
Life SpanLifespanBase lifespan in seconds before particle dies.
Life VarianceLifevarianceRandom variation added to base lifespan.
SeedLifeseedRandom seed for lifespan variance.
PAGEAdvect
Lookup Substance ColorLookupcolorParticles inherit color from substance field at spawn position.
Match Bounds To T3DMatchtot3dMatches particle advection bounds to the 3D texture input dimensions.
PAGECommon
Free Extra GPU MemoryFreeextragpumemFree memory that has accumulated when output memory has grown and shrunk.
Input 0 POP Injection
Input 1 TOP Source
Input 2 POP Particles In
Output 0 TOP Substance
Output 1 TOP Velocity
Output 2 TOP Temperature
Output 3 POP Particles Out