Houdini 20.5 Nodes Geometry nodes

Whitewater Solver 1.0 geometry node

Sets and configures a Whitewater simulation inside a SOP network.

On this page
Since 20.0

Overview

The Whitewater Solver simulates whitewater particles from a source liquid simulation. This solver can be used to enhance the look of the underlying simulation by adding dynamic foam, spray, and bubble particles to it. These particles are influenced by the liquid’s motion and interact with each other, exhibiting controllably-realistic fluid-like behavior.

The solver needs an emission volume, the liquid’s velocity and signed distance fields, the simulation container, and the collision geometries used during the liquid simulation (if any). The velocity field can be either a vector VDB (vel) or a triplet of separated volumes (vel.x, vel.y, vel.z). The signed distance field must be called surface (if this volume is dense and not a sparse VDB, then the checkbox by Maximum Half-Width must be unchecked). A Whitewater Source node can be used to extract this data from a FLIP simulation.

For more information, see the SOP Whitewater page.

Inputs

Emission and Fluid Fields

The first output of the Whitewater Source that contains the emission volume (emit) and the fluid fields (surface) and (vel).

Container

The container geometry from the Whitewater Source as a surface field or geometry hull.

Collisions

All collision objects from the Whitewater Source as surface and velocity fields.

Outputs

Whitewater Particles

Simulated whitewater particles.

Container

Pass-through of the Container input.

Collisions

Pass-through of the Collisions input.

Parameters

Reset Simulation

Click this button to refresh the simulation and remove all cached data from the RAM. Already simulated frames will be lost unless they're cached to disk.

Start Frame

Specify a frame for the simulation to start. Until then, no calculations are performed. If you cache the simulation to disk, empty frames are written until Start Frame is reached.

Setup

General

Whitewater Scale

Controls the separation between nearby whitewater particles. Reducing this parameter increases the number of particles in the simulation (with cubic scaling).

Voxel Size

Voxel size for the density volume. The volume is used for emission limiting, foam erosion, as well as repellant seeding when Density Threshold is enabled. Voxel Size should be at least twice as large as Whitewater Scale.

Foam Location

Location of foam with respect to the liquid surface. Note that all depth ranges respect this parameter; that is Foam Location can be changed to raise or lower the foam layer without having to modify other parameters.

Depth Range

This parameter controls the interval around the foam layer in which the forces and aging rates are interpolated. Horizontal axes of Buoyancy by Depth, Advection by Depth, Multiplier by Depth, and Repulsion by Depth span a distance of twice this Depth Range around 0.

Keep Attributes

Specify existing attributes to not delete. Any attributes that match this, and are not deleted by the delete string, will be kept. All others will be deleted.

Add State Attributes

When enabled, whitewater particles will acquire bubble, foam, and spray point attributes. Values for these attributes lie in the 0-1 range, signalling how “strongly” each particle is of the respective state.

Add Relative Density Attribute

When turned on, per particle relativedensity will be computed by the solver. This attribute represents the number of particles in each particle’s neighborhood. Values for this attribute lie in the (0,1) range, where 1 represents a very dense neighborhood of particles.

Simulation

Substeps

How many substeps the DOP simulation should perform every frame.

Cache Simulation

Enables the simulation cache. For very large simulations, turning off this option is the best way to guarantee the smallest possible memory footprint for the simulation.

Cache Memory (MB)

The amount of RAM reserved for caching a simulation to memory.

Physical

Bounce

The elasticity of the object. If two objects of bounce 1.0 collide, they will rebound without losing energy. If two objects of bounce 0.0 collide, they will come to a standstill.

Bounce Forward

The tangential elasticity of the object. If two objects of bounce forward 1.0 collide, their tangential motion will be affected only by friction. If two objects of bounce forward 0.0 collide, their tangential motion will be matched.

Friction

The coefficient of friction of the object. A value of 0 means the object is frictionless.

This governs how much the tangential velocity is affected by collisions and resting contacts.

Dynamic Friction Scale

An object sliding may have a lower friction coefficient than an object at rest. This is the scale factor that relates the two. It is not a friction coefficient, but a scale between zero and one.

A value of one means that dynamic friction is equal to static friction. A scale of zero means that as soon as static friction is overcome the object acts without friction.

Emission

Limit Emission

Turning this option on reduces emission rates in already whitewater-dense areas.

Emission Amount

A multiplier for the amount of emitted whitewater.

Project New Points to Foam Location

Project new emission points back to the surface when they fall within the specified Depth Range.

Depth Range

The depth range used to select the points to be projected back to the surface.

Note

Smooth transitions are present at both ends inside the range to avoid noticeable discontinuities in the emission pattern.

Velocity Offset

The location along a source point’s velocity vector where the whitewater particles will be created (in world units).

Velocity Multiplier

A multiplier applied to a source point’s velocity before its whitewater particles inherit it.

Maximum Initial Speed

Speed of a newly-birthed whitewater particle is not allowed to exceed this value.

Lifespan

Average lifespan of a whitewater particle (in seconds).

Advanced

Seed

Seed that controls all of the random aspects of particle emission and death.

Aging Rates

Bubbles

Aging rate for bubbles. Can be used to extend or reduce the lifetime of bubble particles.

Note

This parameter augments a particle’s death chance; the age attribute still contains its real age.

Foam

Aging rate for foam. Can be used to extend or reduce the lifetime of foam particles.

Note

This parameter augments a particle’s death chance; the age attribute still contains its real age.

Spray

Aging rate for spray. Can be used to extend or reduce the lifetime of spray particles.

Note

This parameter augments a particle’s death chance; the age attribute still contains its real age.

Velocity Noise

Add Noise

Turning on this option adds velocity noise to newly birthed particles. See help for Turbulent Noise for more information on noise control.

Noise Type

Specifies the noise type.

Frequency

The scale of the noise. Decreasing frequency increases feature size.

Offset

Allows the noise field to be effectively moved through space.

Amplitude

The amplitude of the noise.

Roughness

The amplitude reduction of higher frequency noise contributions.

Attenuation

Raises the noise to the given exponent.

Turbulence

The number of noise generations to use.

Forces

Gravity

Acceleration due to gravity.

Buoyancy

Base acceleration due to buoyancy.

Buoyancy by Depth

A multiplier applied to the buoyancy force.

Base Advection Strength

Strength of the advective force that carries whitewater along the liquid’s velocity field.

Advection by Depth

A multiplier applied to the advection strength.

Base Velocity Multiplier

A multiplier applied to the liquid’s velocity field before advection.

Multiplier by Depth

An extra multiplier applied to the liquid’s velocity field.

Wind

Wind Velocity

The direction and magnitude of the ambient wind field.

Wind Speed

A scale for the wind velocity, allowing you to easily adjust the magnitude without affecting the direction.

Air Resistance

How much particles are to be influenced by this wind field.

Noise Amplitude

Maximum value of the noise field.

Noise Swirl Size

Size of the noise pattern.

Speed Range

Range of particles' speed (relative to the wind) that gets mapped to a (0, 1) range to drive how much each particle is influenced by the wind.

Speed Ramp

By default, the speed is mapped linearly to a (0, 1) range. This behavior can be changed by specifying a custom mapping curve. The default configuration will make fast-moving particles (relative to the wind) more influenced by the wind.

Relative Density Range

Range of relative density that gets mapped to a (0, 1) range to drive how much each particle is influenced by the wind.

Relative Density Ramp

By default, the relative density is transformed using a negative linear mapping from a (0, 1) range. This behavior can be changed by specifying a custom mapping curve. The default configuration should make the loosely packed particles (like spray and mist) easily drift in the wind, whereas densely packed particles will be mostly ignored by the wind.

Wind Shadow

Enable Collider Shadow

Use the collision surface field to shadow/occlude the wind.

Enable Water Shadow

Use the water surface to shadow/occlude the wind.

Max Distance

The maximum distance to check for occlusions.

Foam

Clumping

Enable Density Control

Enables density control for whitewater particles.

Depth Range

Particles in this range will be subjected to density control.

Note

If an endpoint of Stiffness by Depth does not evaluate to 0 (when Variable Stiffness is enabled), then all particles beyond that point will also have density control enabled.

Constraint Stiffness

Stiffness of the density constraints, controlling how harshly deviations from target density are penalized.

Variable Stiffness

Enable variable enforcement of the density constraints at different liquid depths.

Note

The solver will interpret constraints to have a variable stiffness if the pbfstiffness point attribute is present, even when Variable Stiffness is disabled.

Stiffness by Depth

Controls the stiffness of density constraints at different liquid depths. Note that if an endpoint of this ramp evaluates to a non-zero value, then all particles beyond that end will also be subjected to density control.

Advanced

Neighbors

Neighborhood Size

Desired number of points in each particle’s neighborhood.

Adaptive Range

Range of allowed kernel radii as multiples of a global radius.

Maximum Neighbors

The number of points in a whitewater particle’s neighborhood is not allowed to exceed this value.

Inclusion Chance

This fraction of all particles that are eligible for density control will actually be used. Reducing Inclusion Chance will decrease running times, but may degrade quality.

Note

All eligible whitewater particles are collected into the controldensity_candidate group; particles that are actually used for density control are put into the controldensity group.

Constraint Iterations

Number of times to repeat constraint projection for each particle.

Maximum Acceleration

The maximum acceleration that can be applied to a particle by constraints.

Tensile Radius

Particles apply repulsive forces on their neighbors to prevent clustering. This parameter determines the distance (as a fraction of the particle’s kernel radius) at which this force is equal to Tensile Strength.

Tensile Strength

Magnitude of the repulsive forces between nearby particles.

Viscosity

Enabling viscosity causes velocity diffusion, resulting in more coherent motion among nearby whitewater particles.

Erosion

Enable Erosion

Enabling this feature preserves foam in denser areas and erodes it in sparser regions.

Depth Range

Particles within this distance of the liquid surface will be subjected to erosion.

Erosion Strength

Strength of erosion in less dense foam areas. Higher values for this parameter will result in more rapid disappearance of foam.

Preservation Strength

Controls the density range at which whitewater is protected from erosion.

Repellants

Enable Repellants

Create and maintain repellant particles that push whitewater away and give rise to a cellular foam structure. These particles are contained in the object’s Repellants geometry.

Reseed Frames

Amount of frames between each reseeding of the repellants.

Feature Size Range

Range of repellant sizes (stored in the radius point attribute).

Strength Range

Range of repellant strengths (stored in the magnitude point attribute).

Noise Range

Range of values for the repellants' noise point attribute. This attribute controls the shape of each repellant, with 0 being perfectly circular and 1 being maximally “noisy”.

Pulse Frequency Range

Range of values for the repellants' pulse point attribute. This attribute controls how fast the shape of a “noisy” repellant evolves.

Life Range

When enabled, repellants will age and die once their life is up. The lifespan for a repellant is randomly selected from the provided range.

Density Threshold

Enabling this option limits seeding of repellants to areas that already contain whitewater. A region is considered eligible for seeding if relative whitewater density is above the specified threshold.

Advanced

Seed

Seed that controls random repellant seeding.

Match Radius Distribution

When this option is enabled, distribution of repellant sizes matches the given Radius Distribution; otherwise, size distribution is uniform.

Radius Distribution

Defines the distribution of repellant radii.

Strength by Speed

When enabled, repellant strengths are attenuated based on liquid’s speed. With default settings, for example, repellants will be active only in slow regions.

Speed Range

Horizontal axis of Repulsion by Speed corresponds to this range.

Repulsion by Speed

A multiplier applied to the repellant strengths based on the underlying liquid’s speed.

Strength by Acceleration

When enabled, repellant strengths are attenuated based on liquid’s acceleration. With default settings, for example, repellants will be inactive in regions that are rapidly accelerating.

Acceleration Range

Horizontal axis of Repulsion by Acceleration corresponds to this range.

Repulsion by Acceleration

A multiplier applied to the repellant strengths based on the underlying liquid’s acceleration.

Repulsion by Depth

A multiplier applied to the repulsion force based on whitewater particle’s depth.

Adhesion

Enable Depth Control

Enable a depth control mechanism to keep foam attached to the fluid surface.

Upper Surface Only

When this option is enabled, adhesion is only applied to particles on the liquid’s upper surface, as determined by the direction of gravity. Turning this feature on reduces foam sticking to the bottom or sides of the domain.

Control Range

Particles within this distance of the liquid surface will be subjected to depth control.

Off Velocity Angle

Depth control is disabled for particles if the angle between their velocity vector and surface normal is no larger than this value.

Stiffness by Depth

Controls how strictly depth control will be enforced at different depths. Lower stiffness values give rise to thicker foam.

Visualization

Show Collision

Turn on this checkbox to display a wireframe representation of the collision objects' surface to check for leaks or insufficient resolution.

Particles

Mode

None

The color of the particles is unaffected.

Depth

Use Depth Range and the Depth Ramp to dye the particles according to their depth.

Speed

Use Max Speed and the Speed Ramp to dye the particles according to their speed.

State

Use the user-defined colors Bubble, Foam, and Spray to dye the particles according to their state.

Relative Density

Use the Relative Density Ramp to dye the particles according to their relative density.

Depth Range

Range of particle’s depth that gets mapped to a (0, 1) range.

Max Speed

Use this parameter to visualize the fluid’s velocity differences. All particles with velocities equal to or greater than the adjusted value will be displayed with the same color.

Depth Ramp

Color ramp using the remapped particle’s depth to color the particles.

Speed Ramp

Color ramp using the remapped particle’s speed to color the particles.

Bubble

The color used to visualize bubble particles.

Foam

The color used to visualize foam particles.

Spray

The color used to visualize spray particles.

Relative Density Ramp

Color ramp using the remapped particle’s relative density to color the particles.

Advanced

Maximum Half-Width

The liquid’s (as well as collision geometry’s if Collision SOP is specified) signed distance VDB will automatically be activated beyond its zero-crossing to enable accurate distance evaluations. The Maximum Half-Width parameter can be used to limit the number of voxels that get activated, preventing exhaustion of computing resources. Note that this option should be disabled for dense SDF’s.

Time Scale

An overall scale applied to the actual timestep.

Use OpenCL

Use the OpenCL device to accelerate computations for density control.

Save Checkpoints

Normally when the Allow Caching to Disk is enabled and the simulation hits the memory limit, the simulation is saved to files in the temp directory. While these are valid .sim files, they can be hard to manage. When this options is on, each frame is immediately cached to the specified directory. It is still kept in memory until the Cache Memory is hit, but at that point it is not saved to disk (since it’s already on disk). The advantage of checkpointing is that if a cache frame already exists DOPs will not cook that frame, even if the simulation has been reset. Instead it will load that frame. Further, it only needs to cook the frames after the last valid checkpoint frame before the requested frame. So if you have cache_50.sim and try to cook frame 100, cooking can start at frame 50.

Using save checkpoints is similar to using a File DOP in Automatic Mode. However, when you try to jump to frame 50 with a File DOP it must load the first 50 frames. With checkpoints it can skip this step.

Checkpoints

Checkpoint Files

The file sequence to save the checkpoints to. These are .sim files, loadable with the File DOP or File SOP. The variable $SF must be used to specify the frame number - $F cannot be used because this is working in simulation space. $SF4 is also supported.

Checkpoint Trail Length

How much of a history to keep before the checkpoint files are deleted. A value of 0 will never delete cache files. Otherwise, frames older than this value will be erased from disk.

Note that only checkpoint files created by this session of Houdini will be deleted. If you restart Houdini with an existent cache files, they will not be deleted. This is done because you were likely restarting from a crashed location and will want to guarantee you can once again restart there if it crashes again.

Checkpoint Interval

The frame interval between checkpoints. Setting this to a value of 1 will save a checkpoint every frame. Setting this to higher values will save a checkpoint after every number of frames specified. For example setting this to 5 will save a checkpoint every 5 frames.

This can be done to save disk space if you are running a large simulation.

See also

Geometry nodes