|On this page|
A FLIP solver is a type of hybrid between a particle based and volume based fluid simulations. All fluid data is stored in the particles and only particles need to persist frame to frame, ensuring no unwanted mixing or loss of fluid can occur. However, the pressure projection step is done on a volume that is created just in time. The fluid is represented by particles with their
pscale, and can be moved around with POP and DOP forces.
When FLIP fluids are solved, a temporary velocity field is made. The particle velocities are transferred to this grid and the grid is used to perform the fluid projection. This is what prevents the particles from all going on top of each other and start moving in similar directions.
The advantage of the FLIP Solver is that you run with only a few time steps per frame while other methods require anywhere from 5 to 10 time steps or more per frame to stabilize. FLIP utilizes a few grids (volume fields) to help tame the instantaneous impulses that can arise in a fluid sim. This way you can run far fewer points at far fewer time steps and the inter-spacing between particles can be random. You can introduce new particles at any time with little to no consequence.
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.
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.
Particles can end up closer together than their
pscale attribute. When this happens, internal forces can’t separate the particles. This results in the fluid compressing over time. For correct results, take the Particle Separation value from the FLIP Container SOP node and use it here.
A fudge factor to account for the inability for the particles to actually pack at the
pscale amount due to the sphere packing problem. To test different values, run a FLIP solve without any volume or particle forces and see which values cause your initial particles to retain the desired volume.
A scaling factor for time inside this solver.
1 is normal speed, greater than
1 makes the FLIP simulation appear speeded up, less than
1 makes the simulation appear to be in slow motion.
Changing the Time Scale only affects the timestep of the simulation. If adding velocities calculated in SOPs to the simulation for collisions or pumps with the Volume Source DOP, scale the incoming velocities by
1 / timescale to match the timestep of the simulation.
Use this parameter to overwrite Minimum Substeps and Maximum Substeps. More substeps lead to longer simulation times.
The FLIP solver will always enforce this minimum number of substeps.
This should only rarely need to be changed.
The FLIP solver will not break the simulation down in to more substeps than this value.
Cache Memory (MB)
The amount of RAM, reserved for caching a simulation to memory.
Turn on this option to create an initial water volume, e.g. to partially fill a container or create a water surface for interaction with objects or fluid sources.
By default, you can only see a layer of water with a certain thickness, because of the solver’s narrow band option. Narrow band is an effective method to speed up a simulation and reduce its memory footprint while maintaining the fluid’s behavior and quality. In narrow band simulations, the fluid below the waterline is represented by volumes and fields (e.g. velocity and surface).
If you want to perform a waterline check in VEX or VOPs, for example if a displaced particle is above the waterline, you have to take
pscale into account. In DOP-based FLIP fluids, particles are created up to
0. In SOP-based fluids, Waterline creates particles up to
-pscale. So, the correct expression is
v@P.y>-f@pscale. To get the current
pscale value, please check the Geometry Spreadsheet pane.
When turned on, you see a particle band around the domain’s outside. This band represents the outside environment and injects velocity and pressure to the fluid inside the domain. New particles are also sourced from this layer. Note that the particle layer is taken into account when you surface the fluid particle. You can adjust the width of this layer with Source Band.
By default, water origins at
0,0,0. With Water Origin you can change this position and add an offset, for example in Y direction. The fluid is then simulated in the space between Water Origin and Waterline.
Drag the slider to move the waterline along the Y axis or enter a value. The waterline has to be inside the FLIP Container SOP’s boundaries.
You can add an initial velocity and direction to the waterline particles, e.g. to create a stream of water similar to a river. New particles are constantly sourced and removed at the domain’s boundaries.
Type determines how particles, interacting with the domain’s boundaries, are handled. With both types, water vanishes once it hits the domain’s boundaries, while new particles are sourced to maintain an equilibrium. Sourcing and deleting of particles happens within the Source Band around the domain’s outside. The parameter is also relevant in simulations with boundary transfer, e.g. the creation of rolling ocean waves or up-ressing scenarios. For simulations without contact to the domain’s boundaries, e.g. when you fill a glass, Type doesn’t have to be considered.
Results can turn out completely different depending on which Type you're using. Pressure Driven boundaries tend to be more splashy.
With this option, fluids tend to be more splashy and turbulent, but also less stable.
Velocity driven fluids are less turbulent, but more stable.
The way, how the domain is filled, depends on a combination of Initial Surface, Waterline, and Enable Particle Narrow Band in the Advanced sub-pane.
When you turn on Waterline, you see a water surface by default.
Turn off Enable Particle Narrow Band to get a particle volume.
With all three parameters turned off, the domain remains empty.
If you only turn off Initial Surface, a particle band is created around the domain.
When you turn on Waterline, you can see a water surface inside the domain and a particle area around the outside - the source band. The source band is the area where new particles are sourced and this parameter controls its size.
Which mode you have to use depends on the collision object’s geometry, but also the FLIP Collide SOP node’s Volume Collide and Surface Collide settings. The default mode works for closed 3D objects and volumes.
Disables particle-object collision for the entire simulation.
Use this mode if there is 2D or open 3D geometry involved.
Move Outside Collision
Use this mode with closed 3D objects and volumes.
When the fluid surface is within this voxel distance of a collision, the solver will consider it part of the collision object. This extrapolation helps fluid flow smoothly along curved surfaces, but can create a slight stickiness. Decreasing this value can create more dynamic splashes from collisions, especially as objects enter the fluid.
Setting this to 0 is not recommended.
Stick on Collision
Causes the fluid’s velocity to match the collision velocity when close to collision objects. See the Gas Stick On Collision DOP for more information.
The amount of collision velocity to blend into the fluid’s velocity, where a value of 1 indicates fully matching the collision velocity.
Specifies the world-space distance within which to apply the effect.
Specifies the maximum number of voxels within which to apply the effect.
Controls how quickly within the stick distance the effect will reach the full Stick Scale. Values closer to 1 will have more effect throughout the stick distance.
Scale the amount of velocity adjustment in the direction normal to the collision surface.
Scale the amount of velocity adjustment in the direction tangent to the collision surface.
Scale the effect by this spatially varying field, which should match the collision field in resolution.
Add Ground Plane
You can add a ground object and make it interact with the fluid particles.
No ground plane will be added.
Adds a ground plane to the simulation.
Adds a heightfield static object to the simulation.
SOP path to the height field geometry.
The location of the center of the ground plane.
The orientation of the ground plane.
The Velocity Transfer parameter lets you choose between the default FLIP (Splashy) and APIC (Swirly). FLIP (Splashy) is typically used for high energy, noisy large FLIP simulations like rivers or oceans, where the surface from FLIP noise isn’t a problem. APIC is typically used for high vorticity simulations where you need to reduce surface noise as much as possible while still retaining the swirling nature of the simulation. For example, for small scale fluids where surface noise can be really distracting or for lava type simulations.
Enforce Air Incompressibility
The divergence free constraint will now also be applied to the air volume. This will prevent air volumes from collapsing and create rising bubbles. This is useful for capturing realistic air-liquid interaction like a glugging watercooler.
This does not work with Pressure Adaptivity.
Apply Moving Collision
Moving collisions can interact indirectly with the liquid through an air pocket. Any compression applied to the air pocket by the collision is compensated for at the liquid surface of the air pocket.
Min Air Region Voxels
Air regions containing fewer voxels than the minimum will not have their incompressibility enforced. This is useful for preventing small bubbles from emerging along collision surfaces.
The Enforce Air Incompressibility feature does not solve for the velocity in the air volume. It simply constrains the velocity of the liquid from compressing or expanding the air volume. This approach makes the simulation much mor efficient than fully simulating the entire air-volume.
Apply Particle Separation
Despite the velocity projection stage, particles can end up closer
together than their
pscale attribute. When this happens, internal
forces can’t separate the particles because the velocity projection
will remove those forces. This results in the fluid compressing
The number of times to perform the separation relaxation step. This value can usually be set to 1 since successive frames of separation will have the same effect.
How far to move the particles towards their desired separation locations. This can be reduced to get the effect of a fractional iteration.
A fudge factor to account for the inability for the particles to
actually pack at the
pscale amount due to the sphere packing
problem. To test different values, run a FLIP solve without any
volume or particle forces and see which values cause your initial
particles to retain the desired volume.
Create new particles in voxels where the particle count has dropped too low to properly represent the fluid surface, and delete particles in voxels that have become too crowded. Reseeding can help avoid collapsing pockets of air forming in the fluid near collisions, as well as provide a smoother surface from which to generate a polygonal mesh.
Particles will be added to a voxel once the current number drops below the product of this parameter and the goal number of particles.
Particles will be deleted from a voxel once the current number rises above the product of this parameter and the goal number of particles.
Oversample At Boundaries
Oversample within Oversampling Bandwidth voxels of the fluid volume boundaries. This setting helps avoid collapsing pockets of fluid at the boundaries of a “Tank”-type simulation.
The goal number of particles will be scaled by this amount when within Oversampling Bandwidth of the surface.
Oversample within this number of voxels from the surface or any Surface volume boundaries, if Oversample at Boundaries is enabled.
A seed that controls the time-varying random function used to generate new particle positions when reseeding. Because high-frequency splashes in a simulation are strongly influenced by particle positions, varying this value (e.g. with a Wedge ROP) can generate multiple simulations with similar bulk motion but different splash behavior from otherwise identical simulation parameters.
Turn on the checkbox to display a wireframe representation of the collision objects' surface to check for leaks or insufficient resolution.
Points as Spheres
When turned on, particles are displayed as small spheres.
Color by Speed
Use Max Speed and the Visualization Ramp to dye the particles according to their speed and enhance areas of interest like splashes.
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.
The speed values will be fed through this ramp to obtain a particle color.
The number of ramp’s color sliders.
The current position of the active color slider. Values range from
0 (leftmost color) to
1 (rightmost color).
The base color for this set. You can choose a color from a palette or define numerical RGB through the input fields.
Choose a method from the dropdown menu to determine, how the curve between the color points should be interpolated.
Solve Pressure with Adaptivity
When turned on, the pressure solver uses adaptive timesteps where possible to decrease simulation time. If you observe instabilities or exploding particles, try to turn off this option.
This mode can’t be used in conjunction with Fluid Behavior ▸ Air Incompressibility. You also have to turn off this option in simulations with point variable density.
Solve Viscosity with Adaptivity
When turned on, the viscosity solver uses adaptive timesteps where possible to decrease simulation time. If you observe instabilities or exploding particle, try to turn off this option. If the problems persist, consider increasing Solver ▸ Global Substeps.
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.
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.
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.
Expects the fluid’s particles.
Expects the geometry from the FLIP Container SOP as a surface field.
Expects all collision objects from the FLIP Collide SOP nodes as surface and velocity fields.
This input can be used to transfer boundary pressure or velocity information, for example for up-res simulations. It’s also possible to connect an ocean spectrum as an external source to create rolling waves.
Contains the fluid particles.
Contains the geometry from the FLIP Container SOP as a surface field.
Contains all collision objects from the FLIP Collide SOP nodes as surface and velocity fields.