The Particle Physics operator allows you to assign inter-particle collision and cohesion forces.
This operator can be used as the basis for simulations involving sand/grains/snow/etc.
Enable particle collisions: enables inter-particle collision forces.
Enable particle attractions: enables inter-particle cohesion forces.
Radius type: the particle property from which to derive the collision radius.
Radius: the absolute collision radius value.
Multiplier: the multiplier to apply to non-absolute radius values.
Tolerance: a multiplier applied to each particle’s radius value, that is used for neighbor searches.
The tolerance value controls the size of a buffer around each particle, that allows them to see neighbors which they aren’t necessarily touching. A tolerance value greater than zero can help prevent unwanted jittering in the resulting simulation. The greater the tolerance value, the less number of time steps you need in a simulation in order to resolve inter-particle collisions. Increasing the tolerance value too much will have a negative impact on performance. A value from 5-50% is ideal.
Stiffness: the strength of the collision resolution force.
Friction %: the amount of inter-particle friction that will be applied.
Mass z-bias: the amount of artificial mass adjustment to make on stacked particles.
The mass z-bias is a way to artificially decrease the mass of particles stacked on top of each other, in an incremental fashion. This can help stabilize stacks of particles. This value should be kept very low to avoid artifacts - somewhere between .01 and .05 is best.
“Inertia” is the tendency for an object to resist outside forces. When “stiffness affects inertia” is enabled, collision stiffness will affect how much energy will be transferred between the colliding particles. Enabling this setting can help dissipate unwanted energy transfer between particles. This setting has no effect on particles whose collisions have a stiffness value of 1.
Simple: collisions are solved in a straight-forward manner. Their stiffness is mostly dependent on solver step count.
Constrained: collisions are solved in a way that makes their stiffness somewhat independent of solver step count, at a small performance cost. This setting has no effect on collisions whose stiffness value is 1.
Absolute radius: the attract radius of each particle will be set to a specific value.
Radius: the specific attract radius value.
Shape radius: the attract radius of each particle will be set to each particle’s shape mesh radius.
Scale radius: the attract radius of each particle will be set to each particle’s maximum scale dimension.
Multiplier: the multiplier to apply to shape/scale radius values.
Strength: the strength of the attraction force.
Friction %: the amount of inter-particle friction that will be applied.
Stiffness affects inertia: controls whether the stiffness value of attraction will affect inertia of attracted particles.
“Inertia” is the tendency for an object to resist outside forces. When “stiffness affects inertia” is enabled, attraction stiffness will affect how much energy will be transferred between the attracted particles. Enabling this setting can help dissipate unwanted energy transfer between particles. This setting has no effect on particles whose attractions have a stiffness value of 1.
The integrator is what converts collision/attraction data and assigns it to particle velocities.
Unless you need particle physics forces to be evaluated immediately in the operator stack, “integrate into bind solver” should be kept enabled. Disabling “integrate into bind solver” will mean the results of the physics calculations will be immediately available to operators evaluated after the Particle Physics operator.
OpenCL acceleration: controls whether the particle neighbor search will be conducted on the GPU.
Max neighbors: controls the maximum number of results the neighbor search algorithm will return for a single particle.
In situations where all particle collision/attraction radii are expected to be non-overlapping and roughly the same size, the “max neighbors” setting can be greatly reduced. The smaller the value, the more memory efficient the GPU algorithm will be. However, if values are too small, or if too many particles are overlapping, or if the difference between the minimum and maximum collision/attraction radii is too large, reducing this value can result in simulation artifacts (jittering, popping, collisions being missed, etc). In those situations, this value may need to be greatly increased.
Hashmap is best when all particles are roughly the same size. KDTree is best when you have a lot of disparity between particle sizes.
Substeps: the number of solver steps to perform.
Affect pos/velocity/both: controls which particle properties the solver will affect.
Affect axis X/Y/Z: controls which axis of each particle property will be affected.
Process only this event: particle physics forces will only be computed between particles in this event.
Affect only this event: particle physics forces will be computed between all relevant particles in the flow, but only particles in the current event will be affected by the forces.
Ignore binding neighbors: if two particles are connecting by a binding, particle physics forces will not affect them.
Ignore starting penetrations: if two particles are intersecting when they both first enter the event, they will be set to ignore each other.
Stop ignoring after separation: if two particles that are ignoring each other (due to starting penetrations) separate, they will be set to no longer ignore each other.
Cluster settings within the “ignore starting penetration” parameters allow you to define which clusters of particles to ignore starting penetrations with.
Enable clustering: controls whether ignored starting penetrations will be determined by cluster values.
Channel: the particle data channel to get cluster values from.
Cluster if equal: particle pairs with starting penetrations must have equal cluster values in order to be ignored.
Cluster if different: particle pairs with starting penetrations must have different cluster values in order to be ignored.
Draw collision shapes: draws spheres representing particle collision radii.
Draw collision tolerance shapes: draws spheres representing particle collision tolerance radii.
Draw attraction shapes: draws a sphere around each particle, representing its attraction radius.
Draw neighbors: draws a connection between all interacting sets of particles.