Flow
The Flow operator simulates smoke and fire in voxel bricks allocated around the smoke every frame, so the fluid can travel anywhere and its cost follows the smoke rather than a fixed box. An Emission Field feeds density, color, heat, fuel and velocity, fuel burns into heat, soot and an expanding blast, and a Bounds Field, a Collision Field and a Force Field contain, push and steer the flow alongside buoyancy, gravity, wind and turbulence.
The operator outputs a POPX Field with Weight, Color and Velocity for other field operators, particles advected by the flow with optional trails, and a lit volume render with fire glow that can be composited over a Render TOP. The simulation runs as a feedback loop (Initialize, Start, Play), and a Target Particle Feedback Loop POP adds forces to the particles on top of the flow.
| Voxel Size | Voxelsize | Sets the size of a voxel in world units. Halving it doubles the detail; the cost follows the active voxels, since the simulation is unbounded. |
| Max Active Voxels (M) | Maxvoxels | The simulation budget in millions of voxels. Past it the faintest smoke is dropped and the operator warns. Changing it reinitializes the simulation. |
| Display Active Voxels | Displayactivevoxels | Draw the active bricks as wireframe boxes. |
| [+]Solver Quality | Quality | The solver quality. Fast, Balanced and High set the pressure and viscosity iterations; Custom enables them on the Advanced page. |
| Active Voxels | Activevoxels | The number of voxels simulated this frame, updated every 5 frames. |
| Budget Used | Budgetused | The share of Max Active Voxels in use, read back every 5 frames. At 100 % the faintest smoke is dropped and the operator warns. |
| GPU Memory | Gpumemory | An estimate of the GPU memory the budget reserves: the brick pool, the brick map and the lighting. |
| [+]Bounds | Bounds | Limits where the smoke can live. Off is unbounded, Custom Bounds uses Bounds Center and Size, Emission Field uses the Emission Field's own box. |
| [+]Bounds Center | Boundscenter | The center of the bounds, in world units (read only with Emission Field). |
| [+]Bounds Size | Boundssize | The size of the bounds, in world units (read only with Emission Field). |
| [+]Bounds Walls | Boundswalls | Determines the faces of the bounds. Open removes smoke leaving them, Closed is a sealed container, Floor Only is a solid floor with the other faces open. |
| Bounds Fade | Boundsfade | The distance, in world units, over which the smoke fades out as it approaches an open face of the bounds. 0 removes it at the face. |
| Display Bounds | Displaybounds | Draw the active region's bounding box (red). |
| Pressure Iterations | Pressureiters | The pressure solver passes per frame. More is more incompressible and slower. Set by Quality unless Quality is Custom. |
| Viscosity Iterations | Diffusioniters | The viscosity solver passes per frame (with Viscosity above 0). Set by Quality unless Quality is Custom. |
| Activation Threshold | Activationthreshold | The smoke density that keeps a brick active. Higher drops faint smoke sooner and uses fewer bricks; lower keeps thinner smoke and uses more. |
| Padding | Padding | The bricks kept active around the smoke. |
| Brick Lifetime | Bricklifetime | The frames a brick stays active after its smoke falls below the threshold. |
| Time Scale | Timescale | Speed multiplier on the time step. 0 freezes and 2 doubles. |
| Time Step | Timestep | The time step per frame in seconds, 1 divided by the cook rate (read-only). Time Scale multiplies it. |
| Max Substeps | Maxsubsteps | The most steps the simulation splits a frame into when the smoke moves fast. More keeps fast smoke sharp, at a higher cost. 1 never splits. |
| CFL Condition | Cfl | How many voxels the smoke may travel in one step before the frame is split into more steps. Lower is more accurate for fast smoke and costs more steps. |
| Substeps | Substeps | The number of steps the current frame is split into (from the fastest smoke, up to Max Substeps). |
| Output Field | Outputfield | Outputs the smoke as a POPX Field for the operators downstream. Off saves its cost. |
| Output Resolution | Outputresolution | The Output Field's cells along the longest side of its region. A 3D region is scaled down to fit the cell cap; a flat region keeps its full resolution. |
| Display Field | Displayfield | Displays the Output Field (its voxels) in the viewer. Needs Output Field on. |
| Initialize | Initializepulse | Initializes the POP from its input and parameters. The simulation starts as an empty grid, the Emission Field's grid. |
| Start | Startpulse | Start the simulation from the initialized state. |
| Play | Play | Pause or play the feedback loop. |
| Step | Steppulse | Advance the simulation by one frame while paused. |
| Emission Field POP | Emissionfieldpop | The field that feeds the simulation. Its grid is the simulation grid, and each frame it adds mass, color, temperature and velocity where it is occupied. |
| Color Attribute | Emissioncolorattr | The emission field's color attribute (vec4, RGB premultiplied by occupancy). |
| Weight Attribute | Emissionweightattr | The emission field's density attribute: the mass added per second, times Density Scale, where the field is occupied. |
| Density Scale | Emissiondensityscale | Sets the mass added per second per unit of the emission field's Weight. |
| Temperature Attribute | Emissiontempattr | The Emission Field's attribute that sets how hot each voxel is emitted. Empty uses the field's Weight, scaled by Temperature Scale. |
| Temperature Scale | Emissiontempscale | How much heat the emission releases per second. Heat makes the smoke rise and expand, and ignites fuel. 0 emits no heat. |
| Fuel Attribute | Emissionfuelattr | The Emission Field's attribute that sets how much fuel each voxel emits. Empty (or missing on the field) uses the field's Weight. |
| Fuel Scale | Emissionfuelscale | How much fuel the emission releases. Fuel burns above the Ignition Temperature and releases heat and smoke. 0 emits plain smoke. |
| Velocity Attribute | Emissionvelattr | The emission field's velocity attribute (world units per second): a moving voxelized object pushes the fluid. |
| Velocity Scale | Emissionvelscale | Multiplies the emitter's velocity. Where the emission field is occupied the fluid takes that velocity, so a moving voxelized object pushes the smoke. |
| Bounds Field POP | Boundsfieldpop | A field whose Dist defines static walls. Cells with a positive Dist are solid and the fluid slips along them. Outside the field's box is solid too. |
| Display Field Bounds | Displayfieldbounds | Show the Bounds Field's wall surface (its Dist zero level, polygonized) in the viewer. |
| Dist Attribute (SDF) | Boundsdistattr | The bounds field's signed distance attribute, negative in the fluid and positive in the wall. |
| Weight Attribute (Optional Mask) | Boundsweightattr | Optional: the bounds field's occupancy used as the fluid mask (1 fluid, 0 wall) instead of deriving it from the distance. |
| Boundary Softness | Boundarysoftness | Width (world units) over which the density fades into a wall when the mask comes from the distance. |
| Collision Field POP | Collisionfieldpop | A field with Dist and Velocity for a moving object. It is solid inside its surface, and the fluid flows around it and is pushed and dragged by it. |
| Display Collision Field | Displaycollisionfield | Show the Collision Field's wall surface (its Dist zero level, polygonized, red) in the viewer. |
| Dist Attribute | Collisiondistattr | The collision field's signed distance attribute, negative inside the solid object and positive in the fluid. |
| Velocity Attribute | Collisionvelattr | The collision field's velocity attribute (world units per second). |
| Force Field POP | Forcefieldpop | A field whose vector attribute pushes the fluid as an acceleration, applied to every cell inside the field's box. |
| Force Attribute | Forceattr | The force field's vector attribute (3 components): the acceleration the fluid receives, world units per second squared, times Force Scale. |
| Force Weight Attribute | Forceweightattr | Optional 0 to 1 attribute of the force field that masks the force. Empty, or missing on the field, applies the force everywhere in the field's box. |
| Force Scale | Forcescale | Multiplies the force field's acceleration. 0 turns it off. |
| Vorticity | Vorticity | Vorticity confinement: puts back the small swirls that the grid smooths away. 0 turns it off. |
| Viscosity | Viscosity | Sets how thick the fluid is, as a kinematic viscosity. 0 is none, high values are honey-like. |
| Damping | Velocitydamping | Sets how fast the velocity decays, per second. 0 is none. |
| Dissipation | Densitydissipation | How fast the mass (Weight) fades, per second. |
| Fade Out | Fadeout | A density removed from the smoke every second, on top of Dissipation, so thin smoke vanishes in a finite time and releases its bricks. 0 turns it off. |
| [+]Color Dissipation | Colordissipation | Per-channel multiplier on the color's fade rate, relative to Dissipation. |
| Ignition Temperature | Ignitiontemp | The temperature above which the fuel burns. The emission heats it (Fields page, Temperature Scale). |
| Burn Rate | Burnrate | How fast burning fuel is used up, per second. Higher is a shorter, fiercer flame. |
| Heat Release | Heatrelease | The heat burning fuel releases. It drives the flame up (Buoyancy) and out (Expansion), and makes it glow (Render page, Fire). |
| Smoke Release | Smokerelease | The smoke (soot) burning fuel releases. |
| Burn Expansion | Burnexpansion | How hard burning fuel pushes outward. It pushes only while the fuel burns, unlike Expansion, which pushes wherever the smoke is hot. |
| [+]Soot Color | Sootcolor | The color of the smoke burning fuel releases. |
| Apply Buoyancy | Applybuoyancy | Hot, light gas rises against Buoyancy Direction, heavy gas sinks (Gas Weight). |
| [+]Buoyancy Direction | Buoyancydirection | The direction hot gas rises toward (up). |
| Buoyancy Multiplier | Buoyancymultiplier | Overall strength of the buoyancy acceleration. |
| Gas Weight | Gasweight | How heavy the substance is. 0.1 is a light smoke that rises when hot, 1 is a heavy gas that sinks. |
| Cooling Rate | Coolingrate | How fast the temperature returns to ambient, per second. |
| Expansion | Expansion | Thermal expansion: hot cells push outward, a source of outward flow that grows with the temperature. |
| Apply Gravity | Applygravity | Enable a constant gravity acceleration on the velocity. |
| [+]Gravity | Gravity | The gravity vector in units per second squared. |
| Gravity Multiplier | Gravitymultiplier | Multiplies the Gravity vector. |
| [+]Wind | Wind | The velocity of the air around the smoke, in world units per second. A crosswind carries the whole plume. 0 is still air. |
| Wind Speed | Windspeed | Scales the Wind. |
| Turbulence | Turbulence | The strength of a swirling noise force (curl noise: it stirs the smoke without compressing it), in world units per second squared. |
| Turbulence Size | Turbulencesize | The size of the turbulence swirls, in world units. |
| Turbulence Speed | Turbulencespeed | How fast the turbulence pattern changes over time. |
| Advect | Advect | Run a particle system through the flow: the particles read the velocity at their world position (trilinear) and move with it. |
| [+]Solver Mode | Solvermode | Advect runs a particle system in a feedback loop, pushed every frame. Simple gives the input points one push per frame from the flow, with no state. |
| Target Particle Feedback Loop POP | Targetpareticlepop | A Feedback Loop POP downstream to re-inject as the particle state. Empty: the internal loop. |
| Speed | Speed | Multiplier on the flow velocity the particles follow. |
| Flow Drag | Flowdrag | How strongly the flow pulls the particles back after a force pushes them. 0 lets forces accelerate them freely. |
| Maximum Particles | Maxparticles | The particle buffer's size. |
| Birth Rate | Birthrate | Sets the number of particles born per second. |
| Spawn From Density | Spawn | Spawn the particles where the flow's density is above Density Threshold instead of from the input points. |
| Density Threshold | Densitythreshold | The density below which the smoke spawns no particles. With Life From Density, particles die below half of it. |
| Spawn Jitter | Spawnjitter | How far from its voxel center a particle is born, in voxels. 0 places it at the center, 1 anywhere inside the voxel. |
| Spawn Seed | Spawnseed | Changes where in the smoke the particles are born. |
| [+]Life From | Lifefrom | Life gives every particle Life seconds. Density keeps a particle alive until the smoke around it thins below half the Density Threshold. |
| Life (Seconds) | Life | A particle's life in seconds. |
| Life Variance (Fraction) | Lifevariance | Randomizes each particle's life: a fraction of Life, or with Life From Density, a fraction around half the Density Threshold. |
| Random Seed | Randomseed | Changes the random life variance and the order the input points are used (Spawn off). |
| Lookup Density Color | Lookupdensitycolor | Colors the particles with the smoke density they sit in, remapped per channel below. Not used with the Opacity Shadow Map. |
| Add Fire Color | Lookupfirecolor | Adds the fire glow of each particle's temperature, from the Fire Ramp and Fire Intensity, to the density color. |
| Channel Mask (RGBA) | Channelmask | Which RGBA channels of the density are read. |
| From Low | Fromlow | Sets the low end of the input range of the color remap, per RGBA channel. |
| From High | Fromhigh | Sets the high end of the input range of the color remap, per RGBA channel. |
| To Low | Tolow | Sets the low end of the output range of the color remap, per RGBA channel. |
| To High | Tohigh | Sets the high end of the output range of the color remap, per RGBA channel. |
| Trails | Trails | Output trails (the Trail POP) instead of the points. |
| Always Cook | Alwayscook | The trails cook every frame even when nothing pulls them. |
| Trail Length (Seconds) | Length | Sets the trail length in seconds. |
| Trail Increment (Frames) | Inc | Sets the number of frames between trail samples. |
| [+]Age Attribute | Ageattr | Add an age attribute along the trails (seconds or frames). |
| Oldest Point First | Oldestpointfirst | Order the trail points oldest first. |
| Render Volume | Rendervolume | Draws the flow as a lit, raymarched volume in any Render TOP that includes this operator and in the Geometry Viewer. |
| Render Particles | Renderparticles | Draw the particles (with Material) in your Render TOP. |
| Opacity Shadow Map | Opacityshadowmap | Light the particles with the volume's lighting (an opacity shadow map from the density). |
| Material | Particlesmat | The particles' material (a Point Sprite MAT when empty). |
| Render TOP | Rendertop | The Render TOP whose lights light the smoke, the medium and the particles. With Compose With Scene, the volume is composited over its image. |
| Compose with Scene | Composewithscene | Outputs the Render TOP's image with the volume composited over it, occluded by the scene's geometry. That Render TOP then does not draw the volume. |
| Scattering | Scattering | Sets how much light the smoke scatters toward the camera. The Medium is not affected. |
| Absorption | Absorption | How much light the smoke absorbs along the ray. The Medium is not affected. |
| Density Scale | Densityscale | Multiplies the density read from the flow. |
| Sharpen | Sharpen | Crisps the smoke by pushing fine wisps and edges away from their surroundings at render time. 0 turns it off. |
| Anisotropy | Anisotropy | How the smoke scatters light: 0 evenly in every direction, above 0 forward (smoke lit from behind glows at its edges), below 0 back toward the light. |
| Multiple Scattering | Multiplescattering | Adds the light that bounces around inside the smoke: thick smoke gets a soft, bright interior instead of a dark core. |
| Multiple Scattering Amount | Msamount | Scales the multiple scattering. |
| Octaves | Msoctaves | The number of light bounces the multiple scattering approximates. More octaves carry light deeper into dense smoke, for a brighter, softer interior. |
| Octave Depth | Msdepth | How far each bounce reaches into the smoke. Higher is a deeper, milkier glow; lower keeps the bounced light near the lit side. |
| [+]Ambient Color | Ambientcolor | Sets the color of the light around the smoke, the sky. It lights the smoke in shadow. |
| Ambient Intensity | Ambientintensity | The strength of the ambient light, added to the ambient light of the render. 0 leaves the shadowed smoke black. |
| Shadow Step Size | Lightstepsize | The distance between the shadow samples toward each light, in light cells. Smaller is finer and slower; 1 is usually enough. |
| [+]Medium Color | Mediumcolor | Sets the color of the constant fog inside the box. |
| Medium Density | Mediumdensity | The density of a uniform fog filling the Bounds, lit by each light and shadowed by the smoke. Needs Custom Bounds or Emission Field. |
| Fire Intensity | Fireintensity | How brightly hot smoke glows, with a blackbody color from its temperature that is not shadowed. 0 turns the glow off. |
| Temperature Range | Firerange | The temperatures the glow spans: dark red at the first, white hot at the second. |
| [+]Fire Ramp | Fireramp | The colors of the fire glow, from the coolest glowing temperature (left) to the hottest (right). |
| Open Fire Ramp Editor | Openfirerampeditor | Opens the editor of the custom fire ramp. |
| Reset Fire Ramp | Resetfireramp | Resets the custom fire ramp. |
| Fire Lights Smoke | Firelight | The fire lights the smoke around it: the soot above and around a flame picks up its glow. |
| Fire Light | Firelightamount | How brightly the fire lights the smoke. |
| Fire Light Radius | Firelightradius | How far the fire light reaches, in world units. |
| Point Size | Pointsize | The particles' point size. |
| Alpha | Alpha | The particles' alpha. |
| Free Extra GPU Memory | Freeextragpumem | Free memory that has accumulated when output memory has grown and shrunk. |
POP - Emission FieldPOP - Bounds FieldPOP - Collision FieldPOP - Force FieldPOP - Particles InPOP - FieldPOP - Particles OutPOP - Particle TrailsTOP - Scene Composite
