Particle Bind operator

The Particle Bind operator can be used to create bindings between particles.

Bindings are not solved by this operator, only created. Bindings are solved by the global particle bind solver at the end of each simulation step. Bindings created by this operator will persist between events.


Particle Bind Rollout

Bind Settings

  • Binding ID: the ID to assign to created bindings.

  • Stiffness: the stiffness value to assign to created bindings.

  • Variation %: the per-particle percentage of variation to apply.
  • Stiffness affects inertia: controls whether the stiffness value of bindings will affect inertia of bound particles.

“Inertia” is the tendency for an object to resist outside forces. When “stiffness affects inertia” is enabled, binding stiffness will affect how much energy will be transferred between the attached particles. Enabling this setting can help dissipate unwanted energy transfer between particles. This setting has no effect on particles whose bindings have a stiffness value of 1.

Stiffness Solver
  • Simple: bindings are solved in a straight-forward manner. Their stiffness is mostly dependent on bind solver step count.

  • Constrained: bindings are solved in a way that makes their stiffness somewhat independent of bind solver step count, at a small performance cost. This setting has no effect on bindings whose stiffness value is 1.


  • Bias: the post-initialization multiplier to apply to binding rest lengths.

  • Enable min length: applies a minimum length constraint to bindings, during initialization.

  • Absolute: sets the minimum length to an absolute value.

  • Absolute value: the absolute minimum length value.

  • Shape radius sum: sets the minimum length to the sum of the attached particles’ radii.

  • Scale radius sum: sets the minimum length to the sum of the attached particles’ scale values.

  • Mult: the multiplier applied to shape/scale radius sums.

  • Enable max length: applies a maximum length constraint to bindings, during initialization.

  • Max length value: the absolute maximum length value.

  • Stitch 0-length binds: binds with a rest-length of 0.0 will have their endpoint particles moved to a single position at their center, at the end of the time step.

Turn on “stitch 0-length binds” if you want to ensure that separate bind hierarchies (ex: cloth) joined together with 0-length binds have no gaps between them. If this option is off, the stretch of the 0-length binds at the end of the time step may be visible.

Breaking

  • Breakable: controls whether bindings can break, based on various criteria.

  • %: the percentage of bindings that the break settings will apply to.

  • Break by stretch: enables binding breaking by overstretch.

  • Stretch %: bindings that stretch beyond this percent will break.

  • Break by compress: enables binding breaking by compression.

  • Compress %: bindings that compress beyond this percent will break.

  • Break by min length: enables binding breaking by explicit minimum length.

  • *Min length: bindings that compress to this length will break.

  • Break by max length: enables binding breaking by explicit maximum length.

  • Max length: bindings that stretch to this length will break.

  • Break by tension: enables binding breaking by tension.

  • Tension: if a binding’s attached particles have a tangential velocity magnitude that exceeds this value, the binding will break.

  • Variation %: the per-particle percentage of variation to apply.

Display

  • Show bindings: displays bindings as lines in the viewport.

Uniqueness

  • Seed: the seed value for all varied parameters.

Proximity Bind Rollout

Proximity bindings are created between neighbor particles that are a within a threshold distance from each other.

  • Enable proximity bind: controls whether proximity bindings will be created.

  • Absolute distance: controls whether neighbor particles must be within an absolute distance of each other in order to be bound.

  • Distance: the absolute distance value.

  • Shape diameter: controls whether neighbor particles must be within a distance less than a particle’s shape diameter in order to be bound.

  • Scale diameter: controls whether neighbor particles must be within a distance less than a particle’s scale diameter in order to be bound.

  • Distance mult: a multiplier applied to the shape/scale diameter.

  • Max binds: the maximum number of bindings that may form between a particle and its neighbors.

  • Variation %: the per-particle percentage of variation to apply.

Nearest particles

When the total number of valid neighbor particles exceeds the “max binds” value, these settings control how to sort the results.

  • Unsorted: no sorting will occur.

  • Sort by dist. (closest): the neighbors will be sorted from closest to furthest.

  • Sort by dist. (furthest): the neighbors will be sorted from furthest to closest.

  • Sort by size (biggest): the neighbors will be sorted from biggest to smallest.

  • Sort by size (smallest): the neighbors will be sorted from smallest to biggest.

  • Optimal sort for tet corners: Sorts neighbors in an ID-ascending manner, such that all tet corners within range will be bound to each other in a way that is optimal for 0-length bind stitching. When this mode is selected a “max binds” value of 1 is all that is necessary to ensure all tet corner particles will be properly connected.

Simulation Groups

  • Simulation groups: controls which neighbor simulation groups will be bind candidates.

Clusters

  • Enable clustering: controls whether binding candidates will be determined by cluster values.

  • Channel: the particle data channel to get cluster values from.

  • Cluster if equal: binding candidates must have equal cluster values.

  • Cluster if equal: binding candidates must have unequal cluster values.

Family filtering

  • Bind All: all particles will be bound, ignoring their relationships.

  • Bind siblings: only sibling particles will be bound to each other.

  • Bind non-siblings: only non-siblings will be bound to each other.


Family Bind Rollout

  • Bind to siblings: controls whether sibling particles will be bound to each other.

  • Proximity: controls the sibling adjacency level that will be used during the bind operation.

Two particles are considered siblings if they were spawned from the same parent particle. Two particles are considered adjacent siblings if they were spawned in order, one immediately before or after the other.

A “proximity” value of 1 means that only adjacent siblings will be bound to each other. A “proximity” value of 2 means that particles will only be bound if they are both adjacent to a third sibling between them. A “proximity” value of 3 means that particles will only be bound if they are both adjacent to two other siblings, who themselves are both adjacent to each other, etc. It essentially relates to the number of sibling adjacency relationships that must exist between two particles, in order for them to be bound.

  • Bind to parent: controls whether child particles will be bound to their parent particle.