User Tools

Site Tools



thinkingParticles offers a multi physics fluid dynamics system to simulate water or other incompressible flowing substances. The basis of the fluid solver is a Smoothed Particle Hydro dynamics (short:SPH) method.
SPH solvers have some advantages over other fluid methods as they are based on a  mesh-free system that only relies on particles and their positions in space. No boundary restrictions are in effect nor is a fixed amount of particles at any given time needed.
However, one system related drawback of SPH solvers can be found in the much higher inaccuracy in simulating and maintaining the incompressible component of a fluid, especially with large sub-frame time samples. thinkingParticles uses it's own flavor of a SPH solver that is  specifically developed to perform with larger time steps (sub-frame samples) and perfectly integrates into the fully procedural workflow thinkingParticles is famous for.

With the introduction of the Viscoelastic solver, a new setup logic has been introduced as well. Viscosity and both stiffness values are directly linked to sub samples. A value of 1 now represents the highest maximum safe viscosity for a fluid setup with a specific sub-sample amount. To safely increase the viscosity of a fluid when using the 6.4 Viscoelastic solver, all you have to do is increase the sub samples. Values greater than 1 are possible and might create some interesting results but can lead to explosion of the fluid.

Operator Inputs

ON - (Bool) This input data stream determines whether the operator is considered 'on' or 'off.' You can connect other operators to this input channel such as a Bool Helper to activate/deactivate the whole operator.

Time - (Time) This input data stream is used to define the local time for the operator when the user wants to override the default system time.

The remaining input parameters are identical to the UI controls. For more information about the use of an individual parameter check out the descriptions below.

Operator Outputs

There are no outputs for this operator.

Rollout Menu

Solver - lets you choose from the drop down menu the fluid solver to use for this fluid simulation. All compatible solvers found in the thinkingParticles setup will be automatically listed. This allows for multiple fluids to have different properties and still interact properly.

Group - sets the particle group to be used to define the fluid particles.

Include Sub Groups - when checked sub-groups of the selected main group are also used as fluid particles.

Type - select the algorithm to be used for the fluid simulation. There are several options:

  • SPH1 (6.0)  OBSOLETE
  • SPH2 (6.3) to learn more about this new algorithm check HERE OBSOLETE
  • SPH VE (6.4) Dedicated Viscoelastic Solver to learn more click HERE OBSOLETE
  • SPH VE (6.6) All purpose fluid solver OBSOLETE
  • SPH VE (6.7) All purpose fluid solver (maximum stability)OBSOLETE
  • SPH VE (6.8) All purpose fluid solver (enhanced stability)
  • SPH VE (6.9) All purpose fluid solver (ultimate stability and over-foaming)  to learn more click HERE
  • SPH VE (6.10) All purpose fluid solver (ultimate stability and over-foaming)  to learn more click HERE
  • SPH VE 7.0 the workhorse initial relase SPH fluid solver offered by thinkingParticles. To learn more click HERE
  • * SPH VE 7.3 the latest and most advanced SPH fluid solver offered by thinkingParticles. To learn more click HERE

Smoothing Radius - This is the most central parameter to control the fluid behavior. Like any other SPH solver, every incompressible bit of a fluid is simulated by allowing errors. This is done by passing on a fraction of the impulses to their neighbor particles within this Smoothing Radius. This value is set in world units.

Density - sets the preferred target density of the fluid. The higher this number the more dense the fluid becomes.

Decompress - adds an extra force that acts as a repulsive component in the fluid simulation. This one of the most important settings to achieve a reasonable result when filling fluid in containers.

Tension - sets the amount of surface tension for the fluid.

Viscosity - defines the viscosity of the fluid; this force can be used to create sticky or oily fluids.

Viscosity is directly related to the amount of sub samples. Higher viscosity values are only possible with higher sub sample values.
A Viscosity value of 2 will only work with 1 sub samples. Every additional sub sample will allow you to double the Viscosity value.

SPH2 + VE Sub Group

Pressure Compress - when set to 1.0 the fluid pressure will be calculated in a neutral state. When this value is below 1 the forces will increase; creating a more lively fluid that tends to explode or splash easier with higher instability. Values above 1 (up to 10) will slow down the internal fluid movements; creating a much calmer fluid flow and behavior.

String Viscosity - defines the viscosity of the fluid along the axis between two particles; this force can be used to create a more string like surface property of the fluid. Also fluid tends to string together in long rope like structures.

Viscosity and String Viscosity work along each other the values add to each other. The same rules apply to String Viscosity; the higher the viscosity value the more sub samples the solver needs to get a stable result.

Spacer Push - sets an extra force that kicks in when particles come closer than found in the Spacing control. This force will ensure that particles keep their distance even under compression.

Spacer Pull - defines an extra force that will keep particles close to each other (attract) when they fall outside of the Spacing control distance.

Spacer Push and Spacer Pull can be used to simulate Visco-Elastic properties and help in increasing the impression of extremely thick fluids (honey, oil, dough).

Spacing - represents the distance between fluid particles for a certain density value. This is calculated based on the density value. Changing this value will change the density value accordingly. This value is set in world units.

Force Compensation - SPH solvers, in general, have an issue to create reasonable simulations with a large water column. This extra factor tries to solve the issue with stacking up volumes of fluids in a container.

Damping - sets an overall dampening force for the fluid system.

Acceleration Limit - defines the maximum speed allowed for a fluid particle. If a particle is faster than this value it is set to this value.

Density Kill - kills particles that fall below this density value. This can be used to control isolated clusters of fluid by removing them. A value of 0 turns this option off.

Isolation Kill - sets the amount of minimum neighbor particles that need to be present to kill a particle from the fluid simulation. This can be used to control isolated or stray particles in a fluid simulation. A value of 0 turns this option off.

Boundary Bounce - sets the amount of bounciness of the fluid form a surface

Boundary Friction - defines the friction along the surface a fluid gets into contact with

Adhesion - sets the attraction force of the surface. Water drops stick to the surface..

Rigid Buoyancy - defines the buoyancy force for rigid objects in a fluid

Gravity Direction - sets the direction of the gravity for the fluid.

Sleep Start - check this option to make particles sleep at the initialization phase and keep their shape and make them not affected bey internal pressure forces.

Awake Threshold - sets the velocity difference that needs to be reached to wake up particles from the start sleep function.

Separate Check - activate this option to stop particles form sending their fluid force (smoothing Radius) through objects (walls thinner than smoothing radius)

Show - chooses the following fluid visualization options:

Show Rollout Menu Options

Type - there are several fluid visualization types available.

None - check this to see the fluid particles based solely on their group color setting

Density - indicates maximum pressure and low pressure areas
Velocity - visualizes velocity, white represents minimal velocity
Mass - visualizes mass of the fluid particles
Density Change - choose this option to visualize a change of density values
Vorticity  - visualizes the velocities inside the fluid
White Water - visualizes white water areas in the fluid
Foam Emitter - when selected the foam emitters are visualized within the fluid
Foam Pattern - check this option to visualize the foam pattern settings

Min - sets the minimum value to be used as the left hand side gradient color to visualize any of the above mentioned types

Max - sets the maximum value to be used as the right hand side gradient color to visualize any of the above mentioned types

Gradient - lets you define a color gradient, to visualize a certain fluid factor

Min Info - shows the current minimum value found in all the fluid particles at this frame

Max Info - displays the current maximum value of the particles for that exact frame.

Those Min and Max values are dependent on the type of visualization. Mass for example will show you the Mass value you assigned to the particles.

Viscoelastic Rollout Menu (6.4 and higher)

This rollout menu is valid when SPH VE 6.4 or any higher VE solver is chosen as the solver Type. The settings found here control the spring based fluid system and allow to create extremely viscous  fluids. All other settings of the fluid solver are valid as well; including the SPH2 +VE group of controls.

On - check this option to activate the spring based viscoelasticity option of the new fluid solver. When off, the new solver is still used, when selected from the Type menu, however the spring based algorithm is turned off. The new SPH VE 6.4 solver is also good 'normal' fluid solver which is superior to the previously introduced 6.3 solver.

Activate Radius - specifies the spring creation radius. This value is a percentage of the smoothing kernel, 1 means the full smoothing radius will be used to create springs between particles. The lower this value (less springs) the more fluid like the system will behave.

Stiffness Push - defines the 'power' of the spring to push the particle in its original place (at creation time). Stiffness Pull - defines the 'power' of the spring to pull a particle into its original place (at creation time).

The maximum safe value for those two settings is 1.0 which gives you the maximum spring rigidity based on the sub samples used. If you wish to increase the power or rigidity of the spring , increase the sub samples. It is also possible to choose values greater than 1, however be warned it might tend to explode the fluid at times.

Velocity Impulse - defines the amount of velocity exchange that happens between two particles when they approach each other. A value of 1.0 indicates that the velocity of both particles is neutralized (two jelly fluids colliding). When this is set to 0, the particles are allowed to pass into each other.

Velocity Stickiness - sets the amount of velocity exchange when two particles move away form each other. A value of 1.0 will neutralize the particle velocity (sticking) while a value of 0 will not use and velocity reduction when particles are moving away from each other.

Stretch Plasticity - sets the amount of plasticity when a spring is stretched. Higher amounts will make the springs stretch beyond their original length faster.

Threshold - defines the cut off value at which the spring between two particles is stretched beyond its original length. After stretching beyond the threshold the spring stays deformed. The spring will first undergo an elastic deformation, which is reversible (normal spring behavior) so the spring will return part way to its original length. If the stretching is above the threshold value (length is based on the smoothing radius), the spring will undergo a plastic deformation which is not reversible (a new original length of the spring is assumed).

Density Plasticity - defines a pressure dependent spring deformation. Higher values will create a faster deformation of springs. Use this setting alone to simulate honey like fluids for example.

Threshold - sets the fluid density at which spring deformation should occur. For honey like fluids keep this at zero to start immediate deformation of the springs.

Diffluence - defines a liquefaction factor for the fluid. This factor kicks in right away and adds a constant reduction in stiffness (melting over time). The higher this values the faster a liquid melts.

Tearing Length -sets the tearing length threshold at which the spring will be deleted (cut off). This value is based on the smoothing radius, a value of 1.0 will cut of a spring when its length is above the smoothing radius. Animate this value to simulate solidification or liquefaction.

Max Springs - sets the maximum amount of springs per particle. By default (0) an unlimited amount of springs per particle is possible. Use this value to reduce the amount of springs and enhance simulation time. Some fluid simulations can create way over 300 springs per particles which increases simulation time. We do suggest to always start with a value of 0 and then later reduce it until the simulation barely changes form its intended look.

Dynamic Interlace - when checked, new springs will be constantly created (new bonds formed) even after tearing them off. To simulate honey like or dough like fluids; turn this option on. This needs some extra processing time.


Foam - when checked, foam particles will be created.

Group - selects the particle group to create the foam particles in.

Foam - check this option to create extra foam particles created at pressure points in the fluid simulation.

ISO Value |< - defines the region where extra foam particles are created. A value of 1.0 will allow the creation of foam particles right on the surface. Higher values create foam particles above the water level and lower values below the water level.

Vorticity >|- sets the threshold for the maximum amount of rotational force between particles. The lower this value, the more foam particles will be generated.

Curvature^ - this threshold controls foam generation at the the wave tip. Setting this to 0 means that even in flat surface areas foam particles will be created.

Vorticity and Curvature are influencing each other! Depending on the priorities of the foam generation rule, you might lower or increase one or the other.

Rate per sec - restricts the creation of foam particles to this amount per second.

Mass Factor - defines the mass of the foam particle in relation to the fluid mass.

Density - sets the target density of the foam (fluid)

Decompress - sets the repulsion power between foam particles

Tension - sets the surface tension for the foam fluid

Viscosity to Fluid - sets the viscosity between foam and fluid

Viscosity to Foam - defines the viscosity between foam particles

Life Span - sets how long the foam particle should exist after it is created.

Max Count - sets the total amount of foam particles that can exist at a given time

Pattern - check this option to use a noise function to create well defined web or netting structures with foam particles. Keep in mind 

Foam Pattern
In-Viewport Foam Pattern Visualization

Size - defines the web or netting pattern size

Margin - controls the outer edges of the netting pattern

Bias - allows to soften/sharpen the edges of the pattern.

Bias modifes the lifetime of the foam particles. Particles in darker areas die faster and will reveal the foam pattern (webbing) over time.

ScaleX,Y,Z - adds a stretch/scale factor in either X,Y,Z direction

Offset X,Y,Z - adds an offset to either X,Y,Z axis.

Time Shift X,Y,Z/Sec - automatically animates a shift of the pattern per second in either X,Y,Z axis.


The flow solver is now able to output various data to standard particle data channels. This is especially useful for shading effects when using any of the meshing functions (OpenVDBShape, ImplicitShape).

Density - lets you set a data channel that will receive the density data

Density Change - used to define the data channel to receive the density change values

Velocity Change - lets you set a data channel that will receive the velocity change data

White Water - used to define the data channel to receive the white water values

ISO Value - defines the fluid density at which white water is created. A value of 1.0 will create white water effects only at the upper surface of the fluid, higher values will also create white water effects at a much deeper level.

Density Change - sets the minimum change in pressure for the white water to appear in a fluid simulation. This value is easiest found by checking the Max Info display under show and setting it a bit below this value.

FadeIn Frames - sets a time in frames to fade in the white water effect

FadeOutFrames - sets a time in frames to fade out the white water effect

About SPH VE 7.3

SPH 7.3 Fluid Solver is a key feature within the release of thinkingParticles 7.3 Service Pack 4. This update signifies a substantial advancement in fluid dynamics simulation, primarily achieved through a comprehensive rewrite of the core solver. The focus of this revision was to enhance splashing behavior, resulting in a more realistic and visually striking fluid simulation experience.

SPH 7.3 maintains full procedural integration within the thinkingParticles framework, inheriting its predecessors' capabilities. Notably, its multi-physics coupling surpasses previous versions, ensuring a more sophisticated and accurate simulation process. A significant improvement lies in the pressure transfer from Rigid Body dynamics, making it more robust than ever before and establishing SPH 7.3 as a leading solution in the 3ds Max VFX landscape.

For users seeking an upgraded fluid simulation experience, SPH 7.3 offers an advanced solution that combines proven procedural workflows with improved splashing and pressure dynamics.

About SPH VE 7.1

In our ongoing journey to enhance the simulation behavior of the SPH fluid solver, we came up with this evolutionary step. 7.1 is adding even more liveliness to fluid simulations, better impulse transfer behavior and faster settling and equalizing pressure. Alos, interaction between different fluids has also been a point of concern.
Code for automatic foam generation has been rewritten form the ground up! It now follows phsycially accurate simulation methods and creates a realistic foam creation and flow behavior. Turbulence and vorticies are now the deciding factor for when top create foam particles.

About SPH VE 7.0

This new solver keeps the settings close or identical to the 6.10 SPH Solver. A scene created with 6.10 should not need any adjustments at all to work like before. SPH VE 7.0 introduces greater stability and even faster settling of fluid simulations. Dynamic behavior of the fluid has also been improved without sacrificing stability.


About SPH VE 6.10

This latest incarnation of the Flow solver offers further enhanced stability and better dynamic splashing reaction than any previous Flow solver. Due to the changes in the Flow solver,  Density and Tension values need to be adjusted. Compared to 6.9, Density needs to be reduced probably between 2 or 5 times smaller and Tension should also be reduced accordingly. As always, make sure that you never see deep reddish colors in the flow simulation when visualizing density in the viewport.

About SPH VE 6.9

This latest incarnation of the Flow solver offers an even further enhanced stability and better dynamic splashing reaction than any previous Flow solver. Foam creation and simulation has been re-written from the ground up. Foam particles are behaving now much closer to real world physics than they did before, foam particles naturally rise up to the top and keep floating on the surface. Due to the changes in the Flow solver, the Density value needs to be adjusted probably increased when an older fluid setup is converted to this new solver.


About SPH VE 6.7

FlowSolver 6.7 is a brand new flow solver method, added to Subscription Drop 7. This new flow solver is the most stable fluid solver, yet!
It is the recommended fluid solver, to be used from now on, for all kinds of fluid simulations. The 6.7 solver settles remarkably fast and distributes pressure within a fluid in a much better way than any fluid solver before, even when smaller kernel sizes are used. Low viscosity simulations will look much more life like and show a more 'splashy' behavior when compared to the older fluid solver variants.

It is important to understand that the acceleration limit for this type of solver should be set to 10 instead of 1000 which was necessary with the older solvers.


About SPH2 (6.3) Fluid Solver

The SPH2 algorithm is intended to become the new standard solver for particle based fluid simulations in thinkingParticles; SPH2 offers a much more forgiving nature with high pressure values appearing inside of the fluid; it also handles larger time steps much better than its predecessor SPH1.
SPH2 has algorithm specific options to offer a more refined control of pressure equalization over time. Fluids can be simply adjusted to act more lively or be  more calm and equalize much better. Keep in mind; in general this is still a particle based SPH solver intended for faster flowing fluids creating lots of splashes. It is not really meant to create large scale ocean bodies of water.




©2024, cebas Visual Technology Inc.

reference_guide/thinkingparticles_nodes/operator_nodes/flow/flowgroup_operator.txt · Last modified: 2024/01/24 18:34 by

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki