Skip to content

nxFoam reads a running NeXus fluid simulation and spawns secondary foam, spray and bubble particles from it.

Fast, churning water throws up whitewater: foam that mats on the surface, spray flung into the air and bubbles trapped underwater. nxFoam looks at where the fluid is energetic, aerated or breaking and creates these secondary particles there, then advects them with their own lightweight physics so they read as real whitewater rather than as the fluid itself.

nxFoam is a secondary solver. It does nothing on its own: it needs a source fluid simulation (a PBD, SPH, FLIP or APIC solve) to read from. Point it at that fluid, and it generates the whitewater on top.

Add it from Add ▸ INSYDIUM NeXus ▸ nxFoam. It arrives as an empty, and all of its settings live in Properties ▸ Physics.

nxFoam whitewater on an nxLiquid Fill pool, churned up by an nxWave rolling across the surface and breaking over Suzanne.

The three secondary particle classes each get their own tab: Foam (surface foam), Spray (airborne droplets) and Bubble (submerged bubbles). The Object Properties tab holds the shared solver, spawn and containment settings.


The nxFoam Object Properties tab

The nxFoam panel in Properties ▸ Physics, on the Object Properties tab. A row of tabs across the top switches between Object Properties, the three particle-class tabs (Foam, Spray, Bubble) and the shared Groups Affected, Mapping and Falloff tabs.

Turns nxFoam on or off. Disable it to stop generating whitewater without deleting the modifier.

The fluid solver that produced the particles nxFoam reads. Set as FLIP, by default. The alternatives are PBD, SPH and APIC. This tunes the foam generation to suit that solver, so set it to match the fluid you are reading from.

The emitter object that all foam, spray and bubble particles are created into. Leave it empty to use the source fluid’s own emitter.

The nxGravity object the foam matches: spray falls and bubbles rise along it. Leave it empty to use the first Gravity in the scene.

nxFoam handles gravity itself, so the linked Gravity is not applied to the foam particles a second time.

These settings control how newly created particles are launched. They apply to all three classes.

How much of the fluid’s speed new foam, spray and bubbles start with. Defaults to 1.0. At 1.0 they set off at the full speed of the water. Lower values make them start more slowly.

How far new particles are randomly offset from where they appear, so they spread out instead of stacking on top of each other. Defaults to 0m, which sets the spread automatically from the particle size.

The minimum fluid speed below the surface needed to entrain air and create foam at depth. Defaults to 2m/s. Raise it so only violent plunges foam deep. Lower it for calmer deep foam.

Makes foam thrown up by violent, fast water fade sooner than foam from calm water, so spray and splashes are short lived while gentle surface foam lingers. Defaults to 0, which gives every particle the same lifetime. Higher values shorten the most violently born foam.

How secondary particles change class over their lifetime as they move between the surface, the air and the fluid interior. Set as None, by default. The alternatives are Auto and Kill.

  • None: particles keep the class they were created as for life. They are never reclassified and never removed for drifting into another class’s region.
  • Auto: particles change class as they move. A submerged bubble that rises becomes surface foam, and surface foam dragged under becomes a bubble, after holding their birth class for the Transition Time.
  • Kill: instead of changing class, a particle is removed once it is older than the Transition Time and would change class.

How long a particle holds its class before it may change (Auto) or is removed (Kill). Defaults to 5. Short times react quickly. Longer times let a particle settle into its class first. This prevents rapid flickering when a particle sits near a boundary between classes.

Available when Type Transition is set to Auto or Kill.

How long a particle’s color glides to its new class after a class change. Defaults to 5. A value of 0 changes the color instantly.

Available when Type Transition is set to Auto or Kill.

A list of mesh objects that confine the secondary particles. Use it to stop whitewater surviving beyond the edges of the fluid, or to keep it out of a solid obstacle.

Pick or drop a mesh object into the Object field to add it to the list. Each entry has a toggle on the right to enable or disable it, and an Inside toggle: leave Inside on to treat the object as a containment volume that keeps particles inside it, or turn it off to treat it as a solid obstacle that particles stay outside of.

Also keeps foam inside the source fluid’s simulation domain automatically, without needing a bounds object. Foam that leaves the domain is killed or bounced per the boundary behavior below. On by default, so foam never leaks out of a FLIP or APIC pour.

These options decide what each class of particle does when it reaches a Simulation Bounds wall or the edge of the fluid domain. They apply when Contain to Fluid Domain is on or a bounds object is present.

What foam does at a boundary wall. Set as Kill, by default. The alternatives are Collide and Pass Through.

  • Kill: remove particles that cross the wall.
  • Collide: bounce particles off the wall.
  • Pass Through: let particles fly straight through the wall and out of the domain, as an open outflow.

What spray does at a boundary wall. Set as Kill, by default, with the same Collide and Pass Through alternatives as Foam Boundary.

What bubbles do at a boundary wall. Set as Kill, by default, with the same Collide and Pass Through alternatives as Foam Boundary.

How much speed a particle keeps when it bounces off a wall set to Collide. Defaults to 0.3. A value of 0 stops it dead at the wall. A value of 1.0 is a full elastic bounce.

Stops creating new whitewater once the whole simulation, fluid plus foam, reaches this many particles, to keep memory and playback under control on heavy sims. Defaults to 0, which means no limit. The fluid is never affected. Only new secondary particles are held back.

Randomly varies how fast each particle falls, rises and follows the water, so a burst of spray or bubbles scatters and breaks up instead of moving as one flat sheet. Defaults to 0, which makes every particle behave identically.


The nxFoam Foam tab

The Foam tab controls surface foam: the mat of whitewater that forms on top of energetic, breaking or aerated water and rides along the surface.

Foam alone: a patchy white mat clinging to the churning surface.

Generates foam particles. On by default. The rest of the tab is available only when this is on.

These controls decide where and how much foam forms. The same Creation controls appear on the Spray and Bubble tabs, tuning each class independently.

How much foam this creates, relative to the default. Defaults to 1.0, the validated amount. Raise it for more, lower it for less, 0 for none.

The fluid speed where foam begins to form. Defaults to 0.2m/s. Lower it to make foam appear in calmer water.

The fluid speed where foam reaches its maximum. Defaults to 3m/s. At or above this speed the most foam forms.

How much churning and air mixing is needed before foam begins to form. Defaults to 0.07.

Churning at or above this produces the most foam. Defaults to 1.0.

How much foam this creates at wave crests. Defaults to 0, which turns the wave-crest contribution off.

The surface sharpness where wave-crest foam begins. Defaults to 0. Needs Wave Curvature Strength above 0.

The surface sharpness at or above which wave-crest foam is strongest. Defaults to 1.0.

How much foam this creates from rotating water. Defaults to 0, which turns the vorticity contribution off.

The rotation speed where foam starts. Defaults to 0.3m/s.

The rotation speed where foam saturates. Defaults to 3m/s.

How long a source fluid particle must exist before it starts making foam. Defaults to 0, which spawns immediately. Raise it so foam only forms once the water has been moving.

Spawns foam only within this depth of the fluid surface. Defaults to 0m, which spawns at any depth.

These controls set the size, life and look of the foam particles. The same Appearance controls appear on the Spray and Bubble tabs.

The foam particle radius, in meters. Defaults to 0m, which sizes it automatically from the source fluid particle.

A random plus or minus variation in the foam radius, in meters. Defaults to 0m.

How long foam lasts before fading out. Defaults to 60.

A random plus or minus variation in the foam lifetime. Defaults to 0.

Gives foam a fixed color and display mode instead of inheriting the source particle’s. On by default. The Color and Display controls below are available only when this is on.

The foam particle color.

The display shape for foam in the viewport. Set as Inherit, by default, which uses the output emitter’s display mode. The alternatives are the standard particle display shapes, such as Points, Square, Sphere and Axis.

How tightly foam follows the fluid it sits on. Defaults to 1.0. At 1.0 the foam rides the surface exactly. Lower values let it lag behind and drift.

Turns foam particles to lie flat against the water surface. Defaults to 0, which keeps their orientation. Useful when foam is rendered as oriented sprites or instanced geometry.

Makes thick foam mats linger: foam well supported by the fluid surface lives longer. Defaults to 0, which keeps the plain lifetime. Higher values make dense foam last.

Pulls nearby foam of the same kind together so it gathers into clumps, streaks and ribbons instead of spreading into an even film. Defaults to 0, which keeps foam evenly spread. Higher values make it cling together. It works on its own or alongside Foam Push.

Pushes neighboring foam apart so clumps spread into an even mat. Defaults to 0, which turns it off.

How quickly isolated foam, with fewer foam neighbors than the Erosion Threshold, fades. Defaults to 0, which is no erosion. Higher values remove stray foam faster.

Foam with fewer neighboring foam particles than this is treated as isolated and fades. Defaults to 3. Higher values erode more, since a dense mat has many neighbors and so is spared. Lower values fade only the most isolated wisps.

The emitter foam particles are created into. Leave it empty to use the overall Output Emitter on the Object Properties tab.

The nxGroup that foam is created into. Leave it empty to keep the default.


The Spray tab controls spray: fine droplets flung clear of the water into the air, such as at the tip of a breaking wave or the peak of an impact.

Spray alone: dropping Suzanne into the pool throws up a crown of spray on each impact.

The Spray tab's Behavior and Output settings

Spray’s Behavior and Output settings. Its Creation and Appearance controls match the Foam tab.

Generates spray particles. On by default.

Spray shares the same Creation and Appearance controls as the Foam tab, tuned separately here. Its Lifetime defaults to 24, shorter than foam, since airborne droplets are short lived.

Turns spray particles to lie flat against the water surface. Defaults to 0, which keeps their orientation.

The emitter spray particles are created into. Leave it empty to use the overall Output Emitter on the Object Properties tab.

The nxGroup that spray is created into. Leave it empty to keep the default.


The Bubble tab controls bubbles: air trapped inside the body of the fluid that rises toward the surface under buoyancy.

Bubble alone: air rising through the pool and breaking at the surface.

The Bubble tab's Behavior and Output settings

Bubble’s Behavior and Output settings. Its Creation and Appearance controls match the Foam tab.

Generates bubble particles. On by default.

Bubbles share the same Creation and Appearance controls as the Foam tab, tuned separately here. Their Lifetime defaults to 42.

How fast submerged bubbles rise toward the surface. Defaults to 0.667. Higher values lift bubbles up faster. A value of 0 leaves them suspended where they were created.

How strongly submerged bubbles are pulled along by the surrounding fluid as they rise. Defaults to 0.5. Higher values make bubbles track the flow more closely.

Pushes neighboring bubbles apart so they spread out. Defaults to 0, which turns it off.

Turns bubble particles to lie flat against the water surface. Defaults to 0, which keeps their orientation.

The emitter bubble particles are created into. Leave it empty to use the overall Output Emitter on the Object Properties tab.

The nxGroup that bubbles are created into. Leave it empty to keep the default.


Use the Groups Affected tab to restrict nxFoam to particles in specific nxGroup groups, rather than reading every particle. This is useful for generating whitewater from only part of a simulation.


Use the Mapping tab to drive nxFoam’s settings from particle data instead of fixed values, so a particle’s own attributes can change how it makes foam. See Mapping for how this works.


Use the Falloff tab to limit where nxFoam operates. Add one or more nxFalloff objects to the list and blend them, so only particles inside the falloff region generate whitewater.


Copyright © 2026 INSYDIUM LTD. All Rights Reserved.