Houdini 20.0 Nodes Dynamics nodes

Vellum Constraints dynamics node

Microsolver to create Vellum constraints during a simulation.

Since 17.0

The Vellum Constraints DOP allows the creation of new Vellum constraints dynamically during a simulation. It is a microsolver so should be wired to one of the solver inputs of the Vellum Solver DOP. It can also be wired inside of a Vellum Solver SOP.

To change existing constraints, the Vellum Constraint Update DOP should be used.

Parameters

Activation

Controls if the microsolver is solved at all. Can be used to add constraints on a specific frame, for example.

Create Constraints

How frequently to try and create constraints. Some types of constraints you wish to create just once, and in this case the On Creation Frame simplifies the setup. Dynamic constraints you may wish to create less frequently than every substep as creating and destroying constraints will slow the simulation.

On Creation Frame

Apply the creation rules only on the specified creation frame.

Each Frame

Apply the creation rules once every frame, but not more frequently.

Each Substep

Apply the creation rules every substep. This has the greatest accuracy, but creating constraints can slow the simulation.

Creation Frame

Which frame to create constraints on.

Constraints

Constraint Type

The type of constraint to generate. This affects the visibility of many of the other parameters. Usually this is set by using the appropriate tab-menu macro.

None

No constraints are generated.

Distance Along Edges

Turns each edge in the display geometry into a distance constraint maintaining that edge length.

Bend Across Triangles

Each pair of triangles (or implied triangles if input is quads or higher) creates a constraint maintaining the initial dihedral angle between the triangles.

Cloth

Creates constraints that consist of both distance on edge and bend across triangle constraints.

Hair

Creates constraints that consist of distance on edge and bend between edges. This bend also includes the twist of the edges, allowing torsion effects.

String

Creates constraints that are a lighter weight hair constraint. They are a distance along the edge and the angle between edges. However, they don’t have any twist constraints, so the edges can spin freely.

Pin to Target

Pins the specified points to the corresponding point in the target geometry. The target geometry for a Vellum solver is usually the first input, so it matches the animation, but can be overridden.

Attach to Geometry

Attaches the specified points to the geometry in the third input. They will store their closest point at the attach frame and create a distance constraint tying them to it.

Stitch Points

Stitches points within the same geometry together using distance constraints. The points do not need to actually be connected by geometry. This is useful for keeping jackets closed or preventing pockets from flapping.

Pressure

Stores the original volume and builds a many-point constraint to maintain it, for each piece determined by the Define Pieces parameter. The enforcement is global, so squishing one place will expand another, like a balloon. A pressurescale point attribute can be used to scale the effect of the pressure constraint on a per-point basis. This attribute can be used for interesting inflation effects, but should be used with care as it can also lead to unbalanced forces if the pressurescale is near zero on only one side of an un-pinned balloon, for example.

Tetrahedral Volume

Turns each tetrahedron into a constraint to maintain the volume of the tetrahedra.

Note

This does not include any shear or stretch constraints. Additional distance constraints need to be added to make a proper softbody.

Weld Points

While not a constraint per-se, this edits the weld attribute to cause the points to be logically fused into a single point for the solve. However, they will remain independent points otherwise. In addition, this can build bend constraints where edges have become logically fused, ensuring the result acts like a single flat piece. The Vellum Post Process SOP can rewire the welded vertices after simulation so that the geometry appears connected for rendering.

Glue

Each point will search for a nearby point that is not a member of its own piece. It will construct a distance constraint holding it to that point. This is useful for building systems that automatically glue together by proximity, especially when combined with breaking.

Struts

Each point will search for a distant point that is of its own piece, but which it has a straight line-of-sight to. It will build a distance constraint to that point. This constructs a large number of toothpick like internal struts that give an object stiffness and volume without the expense of a fully FEM solve.

Tetrahedral Fiber

Turns each tetrahedron into a constraint that attempts to flatten along the direction specified by the materialW attribute on its points, or {0, 0, 1} if that attribute doesn’t exist. These constraints can be created with low stiffness that is animated up during the simulation with Vellum Constraint Property to simulate volumetric contraction effects.

Triangle Stretch

Turns each triangle into a constraint that keeps the triangle As-Rigid-As-Possible (ARAP) by removing any stretching or skewing, according to the specified stiffness.

Tetrahedral Stretch

Turns each tetrahedron into a constraint that keeps the tetrahedron As-Rigid-As-Possible (ARAP) by removing any stretching or skewing, according to the specified stiffness. If Preserve Volume is enabled, the constraint additionally attempts to preserve volume with a very high internal stiffness but the specified Damping Ratio, similar to the way the Tetrahedral Volume constraint functions.

Shape Match

Creates a constraint that pulls its points back to the original (rest) shape, for each piece determined by the Define Pieces parameter. This constraint can be used to add rigidity either on top of existing constraints such as cloth, or by itself to create mostly rigid objects that can interact with other Vellum geometry.

Tip

Shape Match constraints generally work best with Mass set to Calculate Uniform, and with consistently sized geometry. To generate this type of geometry, you can use a Remesh SOP.

Tip

An effective workflow with this constraint type is to use the Vellum Transform Pieces SOP on the simulation output to transform the original render geometry with the simulation result. This workflow can also avoid any small deformations if the constraint fails to remain rigid at collision points or pins.

Stretch Type

Selects which type of Stretch constraints are used when the Constraint Type is set to Cloth. The linear Triangle Stretch constraints converge to their proper stiffness faster than Distance Along Edges at higher cloth resolutions, but do not support anisotropy via the Enable Warp/Weft parameter.

Preserve Volume

When the Constraint Type is set to Tetrahedral Stretch, also apply a constraint that preserves volume with a very high internal stiffness and the specified Damping Ratio, similar to the way the Tetrahedral Volume constraint functions. Note that for more control, or if experiencing instabilities due to the very high stiffness, you can turn this option off and add a subsequent Vellum Constraint SOP set to Tetrahedral Volume for a similar, but more controllable, volume- preserving effect, at a slight loss of solve performance.

Model

The energy model used for Triangle Stretch, Tetrahedral Stretch, and Tetrahedral Fiber constraints.

Non-Linear ARAP

An As-Rigid-As-Possible model that gives good behavior for low stiffness, high stretching configurations.

Linear ARAP

An As-Rigid-As-Possible model that generally performs better for high stiffness, low stretching configurations like hard solids or cloth.

Scale-Invariant ARAP

An As-Rigid-As-Possible model that considers the area or volume of the triangle or tetrahedron when solving, making the stiffness values behave similarly across multiple scales. This option is usually the best choice for most materials, including organic ones such as skin and muscle.

Geometry

Group Type

Controls the type used for the source points for the constraint.

Group

The group for the source points of the constraint. These are the points or primitives that are turned into the constraint or are used as the starting half of the constraint.

Triangulation

Distance and bend constraints are usually built on a triangle mesh. Rather than forcing the input to be triangulated, it can be implicitly triangulated.

None

Do not triangulate the input implicitly.

Regular

Consistently split into triangles.

Alternating

Attempt to reverse the triangle splitting so a series of quads have a less regular structure.

Mass

mass value for the points. The mass affects how they interact with POP forces and other pieces of Vellum geometry, and how strong the constraints are.

Unchanged

Do not set the mass attribute.

Set Uniform

Set the mass attribute to the specified value.

Calculate Uniform

Calculate a uniform value for the mass attribute for the points on a per-piece basis, as determined by the Define Pieces setting. For tetrahedral geometry, the overall volume for each piece is calculated then multiplied by the Density parameter to find the mass of each piece. This mass is then distributed equally across each point in that piece. For polygonal geometry, the overall area of each piece is used, and for polylines the line length is used.

Calculate Varying

Calculate a varying value for the mass attribute for the points. For tetrahedral geometry, each point accumulates 1/4 of the volume of each incident tetrahedron to find its overall volume, which is then multiplied by the Density parameter to find the mass for each point. For polygonal geometry, each point accumulates its share of the area of each incident polygon, and for polylines its share of each incident edge length. This approach generally gives the most physically accurate results, especially as the resolution of the geometry changes.

Density

The volume used in calculating mass is scaled by this value when Mass is set to Calculate Uniform or Calculate Varying. This value can be further set to Scale By Attribute to scale by the specified point attribute in the varying case.

Density Attribute

The Density parameter will be scaled by this point attribute.

Thickness

Thickness of the points, stored in pscale. Used also for the triangle thickness and curve thickness.

Unchanged

Do not set the pscale attribute.

Set Uniform

Set the pscale attribute to the specified value.

Calculate Uniform

Calculate a uniform value for the pscale attribute for the points on a per-piece basis, as determined by the Define Pieces setting. The thickness value is based on the average length of the edges in each piece, scaled by the Edge Length Scale parameter. This setting generally avoids excess self-collisions while maintaining uniform thickness.

Calculate Varying

Calculate a varying value for the pscale attribute for the points. The thickness value is based on the average length of the edges connected to each point, scaled by the Edge Length Scale parameter. This setting is better for geometry of varying resolution, but generally gives non-uniform thickness values.

Edge Length Scale

Each edge length will be scaled by this value before being used in the Thickness calculation.

Define Pieces

Pressure constraints split the object into disjoint pieces to compute and enforce the volume. Mass and Thickness calculations, and Glue and Strut constraints also need a way to define separate pieces.

From Attribute

This integer or string attribute’s unique values are used to define each piece.

From Connectivity

Connectivity of the input geometry is used to define the pieces.

Piece Attrib

Distinct values of this integer or string attribute will be used to define different pieces. This can either be a point or a primitive attribute.

Layer

The points will be given this as their layer attribute, useful in cloth simulations to define a stacking order for Layer Shock.

Target Geometry

Target Group Type

The type of group for the constraint targets.

Target Group

The target group. This group specifies the second half of Attach to Geometry and Stitch constraints.

Target Path

For Attach to Geometry constraints, the SOP attached to the third input will be read at solve time to get the current animation data. Specifying a path here will override that. This is useful if a different animation is desired at solve time than capture time.

Note

This is the path to override the animation with, and does not affect the actual capturing. Capturing is always done with the third input.

Drag

Normal Drag

Creates the dragnormal attribute and sets it to this value. This scales the drag of the point when wind forces are applied to it in the normal direction of its surface, or perpendicular to the curve.

Differing normal and tangent drag is essential for flapping flags.

Tangent Drag

Creates the dragtangent attribute and sets it to this value. This scales the drag of the point when wind forces are applied to it in the tangent direction of its surface, or tangent to the curve.

Pin to Animation

Pin Points

Points to pin to the target animation. Usually the target animation is the first input of the Vellum solver, but it can be overridden on the Vellum Solver SOP or with the Vellum Source DOP.

Pin Type

How to pin the point position to the target animation.

Permanent

The mass attribute is set to zero, making the point a hard constraint. However, as no original value of mass is stored, it isn’t possible to release this constraint later.

Stopped

The stopped attribute is set to 1 to make the point a hard constraint. mass is unaffected so a POP operation can restore the dynamics of the point later by resetting stopped to 0.

Soft

A zero length distance constraint is made between the point and its target location. The Stretch Stiffness and Damping Ratio values are used for this constraint.

Orientation Pin Type

In addition to holding the location of a point, for hair the orientation often may also be constrained.

Note

This constrains the orientation of the out-going line segments of the hair. So orientation-pinning the tip of a hair will not affect the angle of the incoming hair.

None

Do not constrain the orientation to the target animation.

Same as Position

Use the position constraint rules. In case of Stopped, the stopped attribute is set to 3 to reflect both types of update are suppressed.

Soft

Add a bend/twist constraint to maintain the orientation of the pinned point to that of the target animation. The Bend Stiffness and Damping Ratio values are used for this constraint.

Match Animation

Controls if the target is updated from the animation during the solver or if only the initial value is used.

Closest Point

Constrain to Closest Point

When finding a matching point to a source point, do not go through the target points in order, but pick the point that is closest first.

Use Closest Location on Primitive

For Attach to Geometry and Stitch Points constraints, do not just choose the closest point, but the closest position on a primitive. The primitive number and barycentric coordinates are then stored. For Stitch Points constraints, only polylines, triangles, and quads are supported as the Target Geometry for constraint generation when this option is enabled.

Max Distance

Maximum distance to consider eligible for stitching points.

Sliding Rate

For Attach to Geometry and Stitch Points constraints, the attachment point of the constraint will slide across the target surface at this rate, where 1 matches the constrained point’s velocity. This option only works to slide across primitives, so Use Closest Location on Primitive must be enabled and the Target Group Type must be set to Primitives. The method used for finding the next closest sliding target can be set with the Vellum Solver’s Sliding Method parameter.

Sliding Attribute

A point attribute that scales the Sliding Rate when set to Scale by Attribute. This attribute will be applied according to the attribute Promotion Method, and will be stored on the constraint to be applied during the simulation. In this way the attachment point can slide across a painted surface, where the painted attribute value controls the Sliding Rate.

Cluster Attrib

While glue constraints are made between points of different pieces, they will only be made between points of the same cluster. If the cluster value is -1, no gluing will be done.

Min Search Dist

Minimum distance to look for eligible glue points.

Max Search Dist

Maximum distance to look for eligible glue points.

Max Search Points

Maximum number of points to consider for eligible glue points.

Search Preference

The order in which points should be considered for eligible glue points.

Note

You will likely need to increase the Max Search Points parameter when setting this parameter to Farthest, as the internal search function always returns nearest points first. There must be sufficient points in the search query to reach the farthest points as specified by the Max Search Dist parameter.

Constraints Per Point

Number of glue constraints to create for each point.

Detach Object Chance

Each piece has this chance to be marked ineligible for gluing and receive and generate no glue constraints. This allows for stray hairs.

Detach Point Chance

Each pair of points has this chance to be being marked ineligible for gluing.

Seed

Random seed used to generate the detach chances.

Max Strut Length

Maximum distance to create struts. Must be large enough to cover the diameter of the object, but avoiding extremely long struts can help avoid artifacts.

Direction Attribute

Struts are created by sending a ray along the direction attribute in search of the piece. The default direction is to use the normal of the surface.

Invert Normals

Invert the sense of the objects normals for sending rays, useful if the incoming geometry has reversed normals.

Test Normals

Verify the goal of the strut has a normal suggesting it was properly hit from the inside.

Direction Jitter

Jitter the direction the strut is sent in to break symmetry in the struts.

Constraints Per Point

Maximum number of struts to add for each point.

Detach Point Chance

Chance of a point being marked ineligible for struts.

Seed

Random seed to control the jitter and detach chances.

Ray Offset

The initial ray for the strut needs an offset to avoid hitting the surface it was sent from.

Stretch

Stiffness

The stiffness of the constraint, which controls how strongly the constraint pulls particles back towards its initial rest state. To dial in initial values, change by factors of 10.

Stiffness Attribute

Point attribute to scale the stiffness by.

As effective changes in stiffness requires painting over orders of magnitude, this has a logarithmic effect.

Scale

Single slider control over the stiffness.

As effective changes in stiffness requires painting over orders of magnitude, this has a logarithmic effect.

Damping Ratio

Stiff constraints tend to vibrate or jitter unacceptably. Damping reduces this by bleeding energy when evaluating the constraint. Too much damping can prevent the constraint from being satisfied, however. Values less than 1 must be used.

Damping Attribute

Attribute to adjust damping, multiplied into the damping ratio.

Scale

Single slider to control damping, multiplied into the damping ratio.

Rest Length Scale

The rest length of the distance constraints will be the original distance between the points. This scale can be used to increase or decrease this. Setting to 0 will try to collapse the points together.

Compression Stiffness

The stiffness of the constraint when being compressed below its initial rest distance. A very stiff low resolution cloth can become unbendable due to its topology, rather than due to the bend constraints. A network of triangles has very few ways that it can bend if it is fully stiff. By setting a lower compression stiffness, the cloth is allowed to collapse and regain its fluidity. Usually this has to be raised with higher resolution cloth.

Stiffness Dropoff

The distance from the rest length at which the stiffness of the constraint decreases to zero, or increases from zero to full stiffness, depending on the direction of the dropoff. A Decreasing dropoff means that the stiffness starts at full strength and decreases to zero at the Dropoff distance from the rest length. An Increasing dropoff means the stiffness starts at zero and increases to full stiffness at the specified distance from rest length. If Min Stiffness is enabled, its value is used as the minimum stiffness in these calculations, rather than zero.

Decreasing dropoff can be useful for creating glue constraints that lose stiffness as they are stretched, decreasing to zero at the specified distance. Using the same distance in the breaking Threshold with a Break Type of Stretch Distance will cause the constraints to be removed at the same time they reduce to zero stiffness.

Min Stiffness

If this checkbox is turned on, this value will be the minimum stiffness used when calculating the Stiffness Dropoff.

Enable Warp/Weft

Enables an adjustment to the stiffness based on orientation, allowing a cloth network to stretch more on one axis than another.

Anisotropy

Warp Scale

Scale factor for cloth lined up with the material u axis. This is a logarithmic multiplier.

Weft Scale

Scale factor for cloth lined up with the material v axis. This is a logarithmic multiplier.

Shear Scale

Scale factor for cloth lined up with the diagonal material uv axis. This is a logarithmic multiplier.

Material UV

Point attribute to use to specify the coordinate frame for warp and weft computations.

Enable Plasticity

Plasticity allows an object to flow to a new rest position. Under sufficient stress, the rest coordinates are blended to the current dynamic coordinates, so the object will retain its new shape.

Velocity Blend

Constraints that attach to geometry or pin to the target can optionally blend in the target’s velocity. This requires the target to have a v point attribute to provide the local velocity. The blending is done per 24th of a second, so a blend factor of 0.5 will mix in 50% of the target velocity in a standard frame.

Blending in velocity will highly damp the simulation, but can be useful to allow the cloth to anticipate motion, avoiding whiplashing from sudden movements. Zero stiffness attachment constraints can be used to apply only velocity blending without any additional forces.

Plasticity

Threshold

Below this threshold the material will return to its original shape. When deformed past the threshold, it will begin to creep into its new configuration.

Threshold Attribute

Attribute to scale the stretch threshold by.

Scale

Single scale slider for the threshold.

Ratio of Current Rest Length

The threshold can either be an absolute distance, or be a percentage distance. A value of 0.1 as a ratio would mean stretching of 110% of compression of 90% will trigger plastic flow.

Rate

The speed at which the material adopts its new rest lengths when it begins to flow.

Rate Attribute

Attribute to scale the plastic rate by.

Scale

Single scale slider for the plastic rate.

Hardening

Some plastic materials become stiffer after they've undergone deformation. These will have a hardening greater than 1. Some become softer so will have hardening less than 1. This is a logarithmic multiplier on stiffness.

Hardening Attribute

Attribute to scale the plastic hardening by.

Scale

Single scale slider for plastic hardening.

Output Group

The generated stretch constraints are all added to this primitive group. This is useful to edit them later with a Vellum Constraint Property DOP.

Keep Unique within Output Group

Ensures that a particular point can only be constrained once by the constraints in the Output Group. When dynamically creating constraints it can be common to re-create constraints between the same points every frame. Keeping the points unique within the output group prevents a constant accumulation of constraints.

Bend

Add Bend across Welds

When welding points together, two outside edges may become an inside edge. If they do not gain any bend constraints the seam will be weak and noticeably fold or kink. This option generates bend constraints where this is detected.

Copy Neighboring Stiffness

The value of the generated bend constraints can be copied from the bend of surrounding triangles, ensuring a consistent piece of cloth is built without having to channel link parameters.

Stiffness

The stiffness of bend constraints. To dial in initial values, change by factors of 10.

Note

Bend constraints are based on angle differences, so higher resolution cloths will require higher stiffness to exhibit similar radii of curvature.

Note

Very high bend stiffness on high resolution models will require a very large number of iterations to converge.

Stiffness Attribute

Point attribute to scale the stiffness by.

As effective changes in stiffness requires painting over orders of magnitude, this has a logarithmic effect.

Scale

Single slider control over the stiffness.

As effective changes in stiffness requires painting over orders of magnitude, this has a logarithmic effect.

Damping Ratio

Stiff constraints tend to vibrate or jitter unacceptably. Damping reduces this by bleeding energy when evaluating the constraint. Too much damping can prevent the constraint from being satisfied, however. Values less than 1 should be used.

Damping Attribute

Attribute to adjust damping, multiplied into the damping ratio.

Scale

Single slider to control damping, multiplied into the damping ratio.

Rest Angle Scale

The rest angle of the bend constraints will be the original dihedral angle between the triangles. This scale can be used to increase or decrease this. Setting to 0 will treat the original configuration as a flat sheet.

Stiffness Dropoff

The number of degrees away from the rest angle at which the stiffness of the constraint decreases to zero, or increases from zero to full stiffness, depending on the direction of the dropoff. A Decreasing dropoff means that the stiffness starts at full strength and decreases to zero at the Dropoff degrees from the rest angle. An Increasing dropoff means the stiffness starts at zero and increases to full stiffness at the specified degrees away from rest angle. If Min Stiffness is enabled, its value is used as the minimum stiffness in these calculations, rather than zero.

A small amount of Increasing dropoff can be useful with cloth to make it buckle from a flat state very easily, adding additional wrinkling without changing the overall bend stiffness and look of the cloth too significantly. Decreasing dropoff can be useful for making stretchy glue constraints that weaken right before breaking without snapping back.

Min Stiffness

If enabled, the minimum stiffness value when calculating Stiffness Dropoff.

Max Branch Angle

When adding torsion-free string bend constraints, they work best when the rest angle is close to straight. Setting the max branch angle allows something like a net of ropes to only have the bend constraints along the straight ropes, not on the perpendicular sections.

Enable Plasticity

Plasticity allows an object to flow to a new rest position. Under sufficient stress, the rest coordinates are blended to the current dynamic coordinates, so the object will retain its new shape.

Plasticity

Threshold

Below this threshold the material will return to its original shape. When deformed past the threshold, it will begin to creep into its new configuration.

This is an absolute angle measurement. Because rest angles are often flat, the idea of a ratio that exists for stretch constraints does not apply to bend constraints.

Threshold Attribute

Attribute to scale the bend threshold by.

Rate

The speed at which the material adopts its new rest angles when it begins to flow.

Rate Attribute

Attribute to scale the plastic rate by.

Hardening

Some plastic materials become stiffer after they've undergone deformation. These will have a hardening greater than 1. Some become softer so will have hardening less than 1.

Hardening Attribute

Attribute to scale the plastic hardening by.

Output Group

The generated stretch constraints are all added to this primitive group. This is useful to edit them later with a Vellum Constraint Property DOP.

Keep Unique within Output Group

Ensures that a particular point can only be constrained once by the constraints in the Output Group. When dynamically creating constraints it can be common to re-create constraints between the same points every frame. Keeping the points unique within the output group prevents a constant accumulation of constraints.

Breaking

Enable Breaking

Constraint primitives can be removed by the solver when sufficient deformation or stress is applied, effectively breaking those constraints. You can also manually break constraints by deleting them during the solve to gain full control of the timing.

Running the simulation first with visualization enabled can be useful to find what are good values for the thresholds.

Threshold

The amount of stress or displacement on a constraint to trigger a break.

Threshold Attribute

Point attribute to scale the threshold by.

Scale

Single slider to scale the threshold.

Type

This controls how the solver decides to break weld and hair constraints.

None

No automated tests are performed.

Stretch Stress

The stretch stress must exceed the threshold.

Bend Stress

The bend stress must exceed the threshold.

Stretch Distance

The total distance from the goal location and the current location must exceed the threshold.

Stretch Ratio

The ratio between the current distance and the rest distance must exceed the threshold.

Bend Angle

The difference between the current angle and the rest angle must exceed the threshold. This value is specified in degrees.

Type

This controls how the solver decides to break distance constraints.

None

No automated tests are performed.

Stretch Stress

The stretch stress must exceed the threshold.

Stretch Distance

The total distance from the goal location and the current location must exceed the threshold.

Stretch Ratio

The ratio between the current distance and the rest distance must exceed the threshold.

Attributes

Promotion Method

The scale-by-attribute functions have to apply the possible different scale attribute values on the points involved in the constraint to a single constraint. This controls how they are blended together.

Maximum

The maximum scale factor is used.

Minimum

The minimum scale factor is used.

Average

The average of the points scale factors is used.

Multiply

The scale factors are all multiplied together.

Use Source

The source points scale factor is used, such as in a stitch constraint.

Use Target

The target points scale factor is used, such as in a stitch constraint.

Tag

A string stored in the constraint_tag primitive attribute for all constraints created by this node. This tag can be used in the Constraint Group parameter on the Vellum Constraint Property SOP to easily to alter specific constraints.

Bindings

Geometry

Data on the simulation object to use as the source for computing edges, etc. Usually the display or collision geometry.

Constraint Geometry

Data on the simulation object to add the new constraints to.

See also

Dynamics nodes