Share

source_liquid

Specifies the parameters of a source that emits properties into the liquid simulation.

Inputs

geometry

An array of input meshes, points and volumes that define the source geometry.

General

enable_liquid_source

Enables the source.

start_frame

The frame at which emission from the source starts.

use_end_frame

Can be enabled to stop the emission at a certain frame. Otherwise emission will continue for the duration of the simulation.

end_frame

The frame at which emission from the source stops.

resolution_mode

How the voxel size is determined for mesh emitters.

  • Absolute: The size of an emitter voxel is the fluid_detail_size value in world-space units.
  • Relative: The fluid_detail_size is taken to be proportionate to the largest dimension of the source axis-aligned bounding box. So, a cube that is 20 units in size will have a world-space voxel size that is 20 times larger than the specified fluid_detail_size value in Relative mode. For sources, the bounds of the source mesh at the start frame are used to determine the fluid_detail_size and geo_detail_size for the full animation, even if the source size is animated.

Point Settings

passthrough_points

Turn on this option to use the point_position of the input geometry as the initial point_position for the points.

passthrough_properties

When passthrough_points is on, these additional properties will be copied to the points every frame, and interpolated to substeps when the type supports it.

Geometry Volume Conversion

geo_volume_mode

Defines how an input mesh is voxelized.

  • Solid: This mode voxelizes a polygonal mesh as a solid and works best if the mesh is watertight.
  • Shell: This mode voxelizes a mesh as a thin shell and does not require the mesh to be watertight.

use_fluid_detail_size

Uses fluid_detail_size to voxelize the sources instead of geo_detail_size.

geo_detail_size

The size of the smallest resolvable detail in the voxelized emitters. When emitting from highly detailed meshes, you can sometimes improve performance without sacrificing visible detail in the simulation by setting this value higher than the fluid_detail_size.

geo_volume_offset

The amount to offset the voxelized volume when emitting from meshes or points. Positive values expand the volume and negative values shrink it.

min_hole_radius

Fills gaps and holes that have a smaller radius than this value, when emitting from meshes using Solid mode.

optimal_adaptivity

Uses coarser voxels in planar and smooth areas. This can increase performance by reducing the number of voxels.

display_diagnostic

Whether to display the sources.

Liquid Properties

fluid_detail_size

The size of the smallest resolvable detail in the liquid or other property emitted from this source. In the presence of multiple sources with arbitrary fluid_detail_size, the fluid_detail_size of a particular source may not be exact. More specifically, the finest resolution level in the simulation will be determined from the finest fluid_detail_size of all the input sources. For the remaining sources, the source's resolution level maps to the closest discrete level in the adaptive grid structure. This means that small differences in fluid_detail_size may not produce any visible changes.

mass_density

The mass density of the emitted liquid using the mode specified by mass_density_mode.

  • Connect a float to use a constant value.
  • Connect a scalar field to vary values based on position.
  • Connect a string with the name of a property on the source geometry to use the value of that property at the emission location.
  • Connect an array whose size matches the number of points or voxels in the geometry as an alternative to using a pre-existing property.

mass_density_mode

How mass_density is emitted.

  • set: Sets a source into a property (note that if edges are hard in the input, this will also be the case in the output).
  • rate: Blends and adds a source as a time-dependent rate into a property.
  • add: Blends and adds a source into a property.
  • subtract: Blends and subtracts a source into a property.
  • over: Blends a source into a property.
  • min: Blends based on the minimum of the source and the property.
  • max: Blends based on the maximum of the source and the property.
  • multiply: Blends based on the product of the source and the property.

expansion_rate

Expands or contracts the liquid within the emitter. Positive values push points out of the emitter in all directions, while negative values pull points in, and a value of 0.0 neither pushes nor pulls. For example, to fill a container from the bottom, you can use a positive expansion_rate to push points out of the emitter to refill the emitter as it empties. The expansion can be further controlled via influence fields connected to the influences port on the simulate_liquid compound. For example, influence_set_property with key set to voxel_expansion_rate combined with a mask_influence can be used to confine expansion to a certain region.

Mathematically, this value defines the relative volume expansion per second that the liquid solver tries to maintain in each voxel of the emitter's velocity field. A value of 0.0 corresponds to an incompressible fluid.

expansion_rate_mode

Same options as for mass_density_mode.

stickiness_strength

The amount that the liquid from this emitter adheres to nearby colliders. Stickiness pulls liquid towards colliders in the normal direction, but does not affect the tangential liquid velocity. The stickiness is strongest near the collider surface and tapers off towards the edge of the stickiness band.

stickiness_strength_mode

Same options as for mass_density_mode.

stickiness_bandwidth

How close the liquid from this emitter needs to be to a collider for the stickiness to affect it, in world-space units.

stickiness_bandwidth_mode

Same options as for mass_density_mode.

initial_speed

The initial speed (velocity magnitude) of properties emitted.

  • Connect a float to use a constant value.
  • Connect a scalar field to vary values based on position.
  • Connect a string with the name of a property on the source geometry to use the value of that property at the emission location.
  • Connect an array whose size matches the number of points or voxels in the geometry as an alternative to using a pre-existing property.

initial_speed_direction

The initial velocity-direction of properties emitted.

  • Connect a float3 to use a constant value.
  • Connect a scalar field to vary values based on position.
  • Connect a string with the name of a property on the source geometry to use the value of that property at the emission location.
  • Connect an array whose size matches the number of points or voxels in the geometry as an alternative to using a pre-existing property.

speed_mode

How initial_speed, initial_speed_direction and inherit_velocity is emitted. The options are the same as for fog_density_mode.

inherit_velocity

The proportion of the source geometry's velocity added to the velocity of properties emitted by the source.

  • Connect a float to use a constant value.
  • Connect a scalar field to vary values based on position.
  • Connect a string with the name of a property on the source geometry to use the value of that property at the emission location.
  • Connect an array whose size matches the number of points or voxels in the geometry as an alternative to using a pre-existing property.

When using a vary_source_property node to randomize inherit_velocity, the value of inherit_velocity must be set to the smallest number used in the randomization to get a smooth trail in the presence of negative inherit_velocity values.

trail_smoothness

The smoothness of liquid emitted in the presence of large source velocities. If the emitted trail of liquid has too much noise or obvious holes, trail_smoothness can be increased in increments of one to reduce such artifacts.

On the iterate compound inside source_liquid there are some additional controls that can come in handy to ensure smooth emission in the presence of large velocities and/or large negative or positive inherit_velocity values:

  • source_time_shift shifts the emission forward or backward in time by the specified proportion of a time step. This can be used to prevent the emission from appearing ahead of or behind a fast-moving emitter when using large positive or negative values of inherit_velocity. The value can be varied continuously. A value of 0 emits over the range traveled in the current time step, a value of -1 emits over the range traveled in the previous time step, and a value of 1 emits over the range traveled in the next step.
  • source_time_stretch is a factor for stretching the region of space traveled by the source and emitted into, if the liquid has gaps or lags behind an emitter with large negative inherit_velocity.
  • You can use scale on the compute_time_shift_and_stretch sub-node to adjust source_time_shift and source_time_stretch together. A scale value of 1 is good for things like straight rocket trails, but values closer to 0 prevent streaks along paths with high curvature. You can animate this over time to adjust for changes in curvature.

Additional Properties

additional_properties

Connect set_property nodes to define and initialize additional properties that are transported along the flow. These properties can be modified during the simulation by using influences.

Outputs

liquid_source

The output is an object that contains an aggregation of source related inputs to the liquid solver and should be connected to the sources port on a simulate_liquid node.

Was this information helpful?