|On this page|
This node does the following:
Computes the muscles simulation using the embedded Vellum solver.
Clears the entire muscle simulation cache from memory.
Sets the frame on the Houdini playbar that the muscle simulation should begin at.
Determines how points are integrated forward by their velocities during the simulation when curved motions (like swinging pendulums) are mispredicted and damped by the constraint projections.
Use first order prediction for integrating points. First order prediction avoids excessive bouncing. If the solver detects collisions during the simulation, then it will fall back to using first order prediction.
Changes the precision and amount of memory used to store the attributes on the Muscle Solver Vellum SOP node.
Use the storage type determined by the inputs.
Sets the storage type for the muscle attributes to 32-bit integer (4 bytes) storage.
Sets the storage type for the muscle attributes to 64-bit integer (8 bytes) storage.
Vellum Time Scale
Specifies a scale multiplier for the effective time of the Vellum solve. You can use this value to create bullet time-like effects where the physics of the Vellum solver runs at a different rate than the Houdini playbar. A value of 2 will cause the muscles to fall twice as fast, and a value of 0.1 will slow the muscles down to a tenth of their speed.
Specifies the number of substeps each frame of the simulation is divided into. For fast moving collisions or sudden forces, you should use additional substeps.
If your muscles are too stretchy, then try raising the substeps to see if that helps.
Vellum Collision Passes
Specifies the number of collision passes to perform for the simulation. These passes are interleaved between the constraint iterations. Since collisions are expensive, we recommend that you use these passes sparingly.
A Vellum Collision Passes value of 10 works in most situations, but we recommend that you use substeps instead. Substeps are a better solution for increasing quality.
Specifies the number of passes that are taken by the constraint enforcement operations within each substep. Stiff constraints may require a greater number of iterations to converge.
Constraint iterations use a Gauss-Seidel approach that is fast to converge. However, if it doesn’t fully converge due to too high stiffness or impossible configurations, it will leave the error as bad looking triangles.
Specifies the number of passes that are taken by the smoothing operations within each substep.
Smoothing iterations use a Jacobi approach that is slower to converge but leaves error spread out in a more attractive fashion. The default Smoothing Iterations value of 10 passes helps smooth out error, but you might need to increase it if the Constraint Iterations value is very high.
Post Collision Passes
Specifies the number of final-round collision detection passes that are performed.
When on, specifies the number of additional collider-pair passes to run. In a collision pass, any colliding pair may not be fully resolved. These passes will run until all the unresolved colliding pairs are resolved. This operation is very inexpensive since these passes are only performed on active colliders and no new collision searches are done.
These parameters enable and disable the various muscle constraints. These parameters are also very useful when troubleshooting your muscle simulation’s behavior.
Determines the type of target the Muscle Ends constraint will constrain the muscle ends to.
The Muscle Ends constraint is disabled for the muscles simulation.
Constrain to Nearest Bone
Constrains the muscle ends to the nearest bone. This mode is proximity based.
Constrain to Target Animation
Constrains the muscle ends to the target animation (input bone animation). This mode makes the muscle ends try to follow the movements from the Muscle Flex SOP node’s proxy animation.
Enable Muscle to Bone
When on, the Muscle to Bone constraint is enabled for the muscles simulation.
Enable Muscle to Muscle
When on, the Muscle to Muscle constraint is enabled for the muscles simulation.
Enable Velocity Blending
When on, the Velocity Blend constraint is enabled for the muscles simulation.
These attributes tell the solver which attribute to use as the rest position when establishing constraints. Typically, a
tpose attribute exists both on the simulation geometry and on the second input geometry.
Muscle T-Pose Attribute
Specifies the attribute to use as the rest position or tpose. It can be found on the simulation geometry (Input 1).
Bone T-Pose Attribute
Specifies the attribute to use as the rest position or tpose. It can be found on the second input geometry (Input 2).
These parameters specify which attributes animate (trigger) the contraction, bulge, and shape muscle actions.
When a muscle flexes, three things occur:
1. The contraction pulls the muscle along its fiber direction in towards itself to produce a muscle squeeze.
2. Since the muscle is solid (made up of tetrahedra), it then bulges out along the sides while trying to preserve volume.
3. If you want the muscle to have some details when it contracts that it does not have when it is relaxed, then you can be explicit about the shape target you want the muscle to hit when flexed. For example, like showing grooves or indentations when contracted.
If you want to use different attributes to drive the muscle actions, then you can use these parameters to specify the new attributes. For example, if you replaced the attribute for Bulge, then the muscles solver would look for that new attribute to animate the muscle’s bulge action. By changing these attributes, you can affect shape, bulge response (volume boost), and fiber contraction independently of each other.
Specifies the attribute that drives muscle bulge. By default, the attribute is
muscletension. If you specify a custom Bulge attribute, then you can use a Muscle Flex SOP node to animate the specified attribute and drive the muscles'
fibervolumescale (0 = no Fiber Volume Scale, 1 = 100% the Fiber Volume Scale parameter’s current value) values over time.
Specifies the attribute that drives the muscles' shape target. By default, this attribute is
muscletension. If you specify a custom Shape attribute, then you can use a Muscle Flex SOP node to animate the specified attribute and drive the muscles'
targetshape (0 = 100%
tpose, 1 = 100%
targetshape) values over time. For more information, see the FEM Deform SOP.
Specifies the uniform gravity force to apply to the muscles.
Specifies the amount of points that are dragged by the wind force.
Determines whether or not the velocity of the moving bones (the animated bone surfaces on Input 2) influences the muscles. Damping is a subtractive process. So a higher Velocity Damping values will reduce the velocity that is picked up by the muscles, and lower values will increase amount of velocity (energy) that is transferred.
When on, the muscle simulation is cached to memory.
Allow Caching To Disk
When on, the skin simulation is cached to disk.
Cache Memory (MB)
Sets the maximum size of the memory cache.
These parameters determine how collisions are handled by the solver.
When on, enables self-collisions for the muscle geometry. With self-collisions, a muscle can fold over on itself with no interpenetration. For example, like a tongue curling.
Muscle to Muscle Collisions
When on, enables collisions between muscle solids.
When on, enables collisions between muscles solids and bone surfaces.
Bone Collision Radius
On every point on the muscle geometry, this value specifies at what world space unit distance there exists a radius bubble (like a force field) around the bones against which the muscles will collide.
We recommend that you keep the Bone Collision Radius value small.
Enable Ground Plane
When on, creates a collision ground plane. This is useful when you have a creature with a big floppy tail hitting the floor. If a flat plane is not sufficient, you can use the External Collider parameters to introduce an external collider object for the muscles.
Specifies the XYZ world position of the collision ground plane and allows you to offset it.
When on, these options allow a substep to be repeated until certain conditions are met. The current conditions are designed to fix issues that are caused by disabled points causing geometry to be caught and causing the non-disabled points to generate stretching. Since collisions always pre-empt constraints, the result is skin stretching. Points adjacent to auto-disabled points will also be disabled if too much stretching is detected. The solve step will then be repeated in the hopes that this frees up the geometry.
Specifies the maximum number of times to repeat the substep. If no new points need to be disabled, the process will stop immediately.
Disable Stretch Ratio
The amount of stretch at the end of a solve step that will trigger points to be eligible for disabling. This is to detect when failed collisions are pulling the muscles apart. By failing additional points, the muscles can usually be released and this often results in better results than continuing to stretch.
These parameters determine how collisions with external colliders are handled by the solver.
Use External Collider
When on, you can use external collision objects with the muscles.
Specifies the network path to the external collision objects.
Specifies the geometry group (or groups) that contains the collider primitives. Lets you use a subset of geometry as colliders.
Use Deforming Geometry
When on, the external collision objects are evaluated at every frame.
Determines how collision detection is handled by the solver.
Surface-based collisions are the most accurate option. They give you continuous collision detection. This means that the solver examines the trajectory of vertices between frames to see if at any time in between these frames objects intersect. This helps to ensure that collisions between fast moving objects are processed by the solver.
Surface-based collisions is the best choice for geometry that deforms over time.
Use Solver Default
Use the default point to primitive Vellum solver collision detection method.
Use Volume Collisions
Collision detection occurs between primitive vertices and signed distance fields (SDFs).
Use Surface Collisions
Collision detection occurs against the boundary surfaces of tetrahedral meshes.
On every point on the muscle geometry, this parameter specifies at what world space unit distance there exists a radius bubble (like a force field) around the collision objects against which the muscles will collide.
These parameters visualize a selection of muscle physical properties, forces, and constraints in the Muscles Solver Vellum SOP viewport state.
Turning on the guides can get very expensive. For example, visualizing the Attachment Constraints significantly slows down the solver. Use these guides sparingly.
Determines which muscle physical properties, forces, and constraints are visualized in the viewport state.
No visualizations appear in the viewport state.
Visualizes the areas of the muscle End Regions on the muscles as colorful heat maps.
Muscle to Bone
Visualizes the areas of the muscles constrained by the Muscle to Bone constraints as colorful heat maps.
Visualizes the amount of muscle tension that is being used by individual muscles frame-by-frame over the duration of the bone animation.
Visualizes the Tendon Mask Radius areas of the muscles as white areas on the red muscle.
When on, the fiber direction vector lines appear on the muscles in the viewport state.
When on, the animated bone surfaces appear as guide geometry in the viewport state.
Sets the color of the animated bone surface guide geometry in the viewport state.
When on, enabled attachment constraints are visualized in the viewport state.
Controls the size of the point-based visualization spheres like those for the Muscle Ends or the Collision Radius.
Muscle To Muscle
When on, visualizes the Muscle to Muscle constraint attachments as connection lines between the muscles.
Muscle To Muscle Color
Specifies the color of the Muscle to Muscle constraint connection lines.
When on, visualizes the points on the muscles' surfaces that that the Muscle Ends constraint affects as small spheres.
Muscle Ends Color
Specifies the color of the Muscle Ends constraint point spheres.
Muscle to Bone
When on, visualizes the Muscle to Bone constraint attachments as connection lines between the muscles and bones.
Muscle To Bone Color
Specifies the color of the Muscle to Bone constraint connection lines.
When on, visualizes the Muscle Glue constraint attachments as connection lines between the muscles.
Muscle Glue Color
Specifies the color of the Muscle Glue constraint connection lines.
Visualizes the external colliders in the viewport.
Collision Geometry Color
Specifies the color of the external collider visualizations.
Visualizes the collision radius regions around the muscles as a series of spheres around the points on the muscles' surfaces.
Visualizes all the disabled external colliders.
Muscles. The tetrahedral meshes with muscle
muscles_ids, properties, constraints, fiber vectors,
Bones. The animated polygonal bone surfaces.
Activation Attribute Reference. The optional flexing reference primitives.
For example, you can copy the Muscle Flex SOP node in this solver’s network and use it to animate a shape or bulge attribute instead of using
Solved Muscles. The muscle simulation point transform data.