AdnSimshape

AdnSimshape is a Houdini SOP to produce facial simulation in the animation rig of an asset. Given a facial expression, the SOP is able to compute the activation of the vertices in order to emulate the changes in the rigidity of the skin. As a result, the dynamics of the simulated skin mimic the behavior of internal muscles contracting.

During simulation, the solver reduces the inertias of the vertices with higher values of activation, while it computes standard simulation in the vertices that are not activated. One of the key features of AdnSimshape is the ability to extract muscle information directly from the neutral geometry and the set of deformed geometries with the facial expressions using Machine Learning techniques.

How To Use

The AdnSimshape SOP is of great simplicity to set up and apply to a mesh within a Houdini scene. The combination of a rest mesh, deform mesh and animated mesh allows the system to compute activation values which would drive the behavior and inertias of the output skin mesh (simulated mesh).

To create an AdnSimshape SOP within a Houdini scene, the following inputs must be provided:

  • Rest Mesh (R): Mesh with no deformation or animation (optional).
  • Deform Mesh (D): Mesh with deformation driven by the facial expressions (optional, only if muscle activations with AdonisFX Muscle Patches is required).
  • Animated Mesh (A): Mesh with deformation driven by the facial expressions and animation result of the binding to the animation rig (optional).
  • Simulation Mesh (S): Mesh to apply the SOP to. This mesh can be the animation mesh or a separate mesh with no deformation nor animation.
NOTE
  • All input geometries must have the same number of vertices.
  • If R is not provided, the system will use the initial state of S as the rest mesh.
  • If D is not provided, the simulation will not produce activations.
  • If A is not provided, the system will use the input mesh to the deformer (S) as the animated mesh.

To create an AdnSimshape, follow these steps:

  1. Go to the geometry context of the rig containing the input geometries.
  2. Press TAB and navigate to the submenu AdonisFX > Solvers to find the AdnSimshape Simshape button SOP type.
  3. Create it and connect S to the first input.
  4. Optionally, if A, R and D are available, connect them to the second, third and fourth inputs respectively.
  5. The AdnSimshape is now ready to simulate with default settings. Check the next section to customize their configuration.

Attributes

Solver Attributes

Name Type Default Animatable Description
Enable Boolean True Flag to enable or disable the deformer computation.
Substeps Integer 1 Number of steps that the solver will execute per simulation frame. Greater values mean greater computational cost. Has a range of [1, 10]. The upper limit is soft, higher values can be used.
Iterations Integer 3 Number of iterations that the solver will execute per simulation step. Greater values mean greater computational cost. Has a range of [1, 10]. The upper limit is soft, higher values can be used.
Material Enumerator Skin Solver stiffness presets per material. The materials are listed from lowest to highest stiffness. There are 8 different presets: Fat: 103, Muscle: 5e3, Rubber: 106, Tendon: 5e7, Leather: 108, Wood: 6e9, Skin: 12e3.
Stiffness Multiplier Float 1.0 Multiplier factor to scale up or down the material stiffness. Has a range of [0.0, 2.0]. The upper limit is soft, higher values can be used.

Muscles Activation Settings

Name Type Default Animatable Description
Activation Mode Enumerator No activation Mode to drive the muscle activations. There are 3 different modes:
  • Muscle Patches (Disabled by default): An AdonisFX Muscle Patches file (.amp) has to be provided to enable this option.
  • Plug Values (Disabled by default): The activation values will be read from the per-point adnActivation attribute stored in the first input geometry.
  • No Activation (Enabled by default): No activation is read.
Muscle Patches File String Path to the AdonisFX Muscle Patches file (.amp).
Activation Attribute String adnActivation Name of the per-point attribute to read the activation values from. The activation values will be read from this attribute when the Activation Mode is set to Plug Values. The expected range of the per-point values is [0.0, 1.0].
Activation Smoothing Integer 1 Number of iterations for the activation smoothing algorithm. The greater the number, the smoother the activations per patch will be. Has a range of [1, 20]. The upper limit is soft, higher values can be used.
Bidirectional Activation Boolean False Flag to enable muscle activations in the positive and negative directions of the muscle patches fibers.
Write Out Activation Boolean False Flag to toggle the writing of activations into an output plug.
Out Activation Attribute String adnOutActivation Name of the per-point attribute to write the output activation weights to.
NOTE
  • Activation Attribute is disabled because the attribute name is fixed to drive specific functionalities of the solver.
  • Fixed point attribute name also ensures compatibility with the API.

Time Attributes

Name Type Default Animatable Description
Preroll Start Time Time Current frame Sets the frame at which the pre-roll begins. The pre-roll ends at Start Time.
Start Time Time Current frame Determines the frame at which the simulation starts.

Scale Attributes

Name Type Default Animatable Description
Time Scale Float 1.0 Sets the scaling factor applied to the simulation time step. Has a range of [0.0, 2.0]. The upper limit is soft, higher values can be used.
Space Scale Float 1.0 Sets the scaling factor applied to the masses and/or the forces (e.g. gravity). AdonisFX interprets the scene units in centimeters. If modeling your creature you apply a scaling factor for whatever reason (e.g. to avoid precision issues in Houdini), you will have to adjust for this scaling factor using this attribute. If your character is supposed to be 170 units tall, but you prefer to model it to be 17 units tall, then you will need to set the space scale to a value of 10. This will ensure that your 17 units creature will simulate as if it was 170 units tall. Has a range of [0.0, 2.0]. The upper limit is soft, higher values can be used.
Space Scale Mode Enumerator Masses + Forces Determines if the spatial scaling affects the masses, the forces, or both. The available options are:
  • Masses: The Space Scale only affects masses.
  • Forces: The Space Scale only affects forces.
  • Masses + Forces: The Space Scale affects masses and forces.

Gravity

Name Type Default Animatable Description
Gravity Float 0.0 Sets the magnitude of the gravity acceleration in m/s2. The value is internally converted to cm/s2. Has a range of [0.0, 100.0]. The upper limit is soft, higher values can be used.
Gravity Direction Float3 {0.0, -1.0, 0.0} Sets the direction of the gravity acceleration. Vectors introduced do not need to be normalized, but they will get normalized internally.

Advanced Settings

Initialization Settings

Name Type Default Animatable Description
Shape Preservation At Start Time Boolean True Flag that forces the shape preservation constraints to reinitialize at start time. This attribute has effect only if preroll start time is lower than start time.
Slide Collision At Start Time Boolean True Flag that forces the slide collision constraints to reinitialize at start time. This attribute has effect only if preroll start time is lower than start time.
Animatable Rest Mesh Boolean False Flag that enables reading animated rest mesh data.
Initialize to Anim Mesh Boolean False Flag to instantiate points at animated mesh instead of rest mesh on initialization.

Stiffness Settings

Name Type Default Animatable Description
Use Custom Stiffness Boolean False Toggles the use of a custom stiffness value. If custom stiffness is used, Material and Stiffness Multiplier will be disabled and Stiffness will be used instead.
Stiffness Float 105 Sets the custom stiffness value. Its value must be greater than 0.0.

Override Constraint Stiffness

Name Type Default Animatable Description
Solver Stiffness Float 0.0 Shows the global stiffness value currently used by the solver.
Distance Constraints Float -1.0 Sets the stiffness override value for distance constraints. If the value is less than 0.0, the global stiffness will be used. Otherwise, this custom stiffness will override the global stiffness. Has a range of [0.0, 1012]. The upper limit is soft, higher values can be used.
Shape Preservation Float -1.0 Sets the stiffness override value for shape preservation constraints. If the value is less than 0.0, the global stiffness will be used. Otherwise, this custom stiffness will override the global stiffness. Has a range of [0.0, 1012]. The upper limit is soft, higher values can be used.
Slide Collision Constraints Float -1.0 Sets the stiffness override value for slide collision constraints. If the value is less than 0.0, the global stiffness will be used. Otherwise, this custom stiffness will override the global stiffness. Has a range of [0.0, 1012]. The upper limit is soft, higher values can be used.
NOTE

Providing a stiffness override value of 0.0 will disable the computation of that constraint.

Mass Properties

Name Type Default Animatable Description
Point Mass Mode Enumerator By Density Defines how masses should be used in the solver.
  • By Density allows to estimate the mass value by multiplying Density * Area.
  • By Uniform Value allows to set a uniform mass value.
Density Float 1100.0 Sets the density value in kg/m3 to be able to estimate mass values with By Density mode. The value is internally converted to g/cm3. Has a range of [0.001, 106]. Lower and upper limits are soft, lower and higher values can be used.
Global Mass Multiplier Float 1.0 Sets the scaling factor applied to the mass of every point. Has a range of [0.001, 10.0]. Lower and upper limits are soft, lower and higher values can be used.

Dynamic Properties

Name Type Default Animatable Description
Triangulate Mesh Boolean True Use the internally triangulated mesh to build constraints.
Global Damping Multiplier Float 0.75 Sets the scaling factor applied to the global damping of every point. Has a range of [0.0, 1.0]. The upper limit is soft, higher values can be used.
Inertia Damper Float 0.0 Sets the linear damping applied to the dynamics of every point. Has a range of [0.0, 1.0]. The upper limit is soft, higher values can be used.
Rest Length Multiplier Float 1.0 Sets the scaling factor applied to the edge lengths at rest. Has a range of [0.0, 2.0]. The upper limit is soft, higher values can be used.
Compression Multiplier Float 1.0 Sets the scaling factor applied to the compression resistance of every point. Has a range of [0.0, 2.0]. The upper limit is soft, higher values can be used.
Stretching Multiplier Float 1.0 Sets the scaling factor applied to the stretching resistance of every point. Has a range of [0.0, 2.0]. The upper limit is soft, higher values can be used.
Attenuation Matrix String Object path of the node to extract the transformation matrix from to compute the velocity attenuation.
Attenuation Velocity Factor Float 1.0 Sets the weight of the attenuation applied to the velocities of the simulated vertices driven by the Attenuation Matrix. Has a range of [0.0, 1.0]. The upper limit is soft, higher values can be used.
Substeps Interp. Exp. Float 1.0 Sets the exponential factor to weight the interpolation at each substep. Has a range of [0.0, 1.0]. The upper limit is soft, higher values can be used. A value of 0.0 disables the interpolation: input geometry targets and attenuation matrix are not interpolated. A value of 1.0 applies linear interpolation (input geometry targets and attenuation matrix) between previous and current frame based on a linear weight, i.e. weight = substep / num_substeps. A value between 0.0 and 1.0 applies exponential interpolation (input geometry targets and attenuation matrix) between previous and current frame based on an exponential weight, i.e. weight = (substep / num_substeps) ^ exponent.

Collision Settings

Name Type Default Animatable Description
Compute Collisions Boolean True Flag to enable collision correction in the deformer. If disabled, the deformer will ignore colliders when deforming the mesh.
Keep Orientation Boolean True Flag to preserve the initial orientation of the vertices relative to the collider when handling collisions. If disabled, the mesh will suffer no changes if the orientation of the collider varies.
Max Sliding Distance Float 0.0 Maximum distance (in world units) the simulated vertex is allowed to slide relative to the collider. If the value provided is considered too high for a given collider mesh, a warning will be displayed to the user. Has a range of [0.0, 10.0]. The upper limit is soft, higher values can be used.

Attraction Settings

Name Type Default Animatable Description
Attraction Multiplier Float 1.0 Sets the scaling factor applied to the Attraction. Has a range of [0.0, 2.0]. The upper limit is soft, higher values can be used.
Attraction Remap Mode Enumerator Cube Root Defines the mode of remapping the painted attraction values (x) to get the final values used for the simulation (y).
  • Linear: y = x
  • Squared: y = x^2
  • Cubic: y = x^3
  • Square Root: y = x^(1/2)
  • Cube Root: y = x^(1/3)
  • Logarithmic: y = log((exp(1) - 1) * x + 1)

Activation Remap

Name Type Default Animatable Description
Activation Remap Ramp Attribute Curve to remap the activation values.

Deformer Attributes

Name Type Default Animatable Description
Envelope Float 1.0 Specifies the deformation scale factor. Has a range of [0.0, 1.0]. The upper and lower limits are soft, values can be set in a range of [-2.0, 2.0]

Maps

Name Type Default Animatable Description
Attract Force Attribute Float 1.0 Specifies the name of the per-point attribute to read the attract force values from. The expected attribute name is adnAttractForce. The expected range of the per-point values is [0.0, 1.0].
Collision Threshold Multiplier Attribute Float 1.0 Specifies the name of the per-point attribute to read the collision threshold multiplier values from. The expected attribute name is adnCollisionThresholdMultiplier. The expected range of the per-point values is [0.0, 1.0].
Compression Resistance Attribute Float 0.0 Specifies the name of the per-point attribute to read the compression resistance values from. The expected attribute name is adnCompressionResistance. The expected range of the per-point values is [0.0, 1.0].
Global Damping Attribute Float 1.0 Specifies the name of the per-point attribute to read the global damping from. The expected attribute name is adnGlobalDamping. The expected range of the per-point values is [0.0, 1.0].
Mass Attribute Float 1.0 Specifies the name of the per-point attribute to read the mass values from. The expected attribute name is adnMass. The expected range of the per-point values is [0.001, 1.0].
Shape Preservation Attribute Float 1.0 Specifies the name of the per-point attribute to read the shape preservation values from. The expected attribute name is adnShapePreservation. The expected range of the per-point values is [0.0, 1.0].
Slide Collision Attribute Float 0.0 Specifies the name of the per-point attribute to read the slide collision values from. The expected attribute name is adnSlideCollisionConstraints. The expected range of the per-point values is [0.0, 1.0].
Stretching Resistance Attribute Float 1.0 Specifies the name of the per-point attribute to read the stretching resistance values from. The expected attribute name is adnStretchingResistance. The expected range of the per-point values is [0.0, 1.0].
Maps Remap Mode Enumerator Squared Defines the mode of remapping the painted values of shape preservation and slide collision constraints. The other paintable maps remain unmodified. Each remap mode applies a function to the input painted values (x) to get the final value used for the simulation (y).
  • Linear: y = x
  • Squared: y = x^2
  • Cubic: y = x^3
  • Square Root: y = x^(1/2)
  • Cube Root: y = x^(1/3)
  • Logarithmic: y = log((exp(1) - 1) * x + 1)
NOTE
  • All maps parameters are disabled in the Maps tab because the attribute names are fixed to drive specific functionalities of the solver.
  • Fixed point attribute names also ensure compatibility with the API.
  • To copy the map names of the disabled attributes for painting (using an attribute paint node) right click on the disabled map attribute parameter, press "Copy Parameter", select the attribute paint node and on the attribute name entry right click and press "Paste Values". This allows to easily copy the attribute name for painting.
  • The Make Paintable utility provided in the AdonisFX menu > Utils, can be used to create the attribpaint node and automatically populate the entries with the map names of the AdnSimshape SOP.
  • If a point attribute on the geostream does not match the naming convention exposed in the node, use an "Attribute Rename" node to rename the attribute to match the expected naming convention.

Debug Attributes

Name Type Default Animatable Description
Debug Boolean False Enable or Disable the debug functionalities in the viewport for the AdnSimshape deformer.
Feature Enumerator Slide Collision Constraints A list of debuggable features for this deformer.
  • Distance Constraints: Draw Distance Constraint connections representing the constrained pair of vertices in the simulated mesh.
  • Muscle Fibers: Draw Muscle Fibers on the simulated mesh.
  • Shape Preservation: Draw Shape Preservation connections between the vertices adjacent to the vertices with this constraint.
  • Slide Collision Constraints: Draw Slide Collision Constraints connections from the simulated mesh to the collider mesh.
  • Slide Surface On Collider: Draw outline of triangles covered by the Max Sliding Distance of each vertex.
Color Color Picker Red Selects the line color from a color wheel. Its saturation can be modified using the slider.
Fiber Scale Float 1.0 The scale can be modified to set a custom fiber length.

Parameter Template

AdnSimshape parameter template solver tab
Figure 1: AdnSimshape Parameter Template: Solver.
AdnSimshape parameter template advanced tab
Figure 2: AdnSimshape Parameter Template: Advanced (Part 1).
AdnSimshape parameter template advanced tab
Figure 3: AdnSimshape Parameter Template: Advanced (Part 2).
AdnSimshape parameter template maps tab
Figure 4: AdnSimshape Parameter Template: Maps.
AdnSimshape parameter template debug tab
Figure 5: AdnSimshape Parameter Template: Debug.

Paintable Weights

In order to provide more artistic control, some key parameters of the AdnSimshape solver are exposed as paintable maps in the SOP. The maps are point attributes that must be present in the geometry stream injected into the SOP. For that, the Houdini attribpaint node can be used.

Name Default Description
Attract Force 1.0 Weight to control the amount of influence of the animated mesh. The higher the value is, the more influence and the less dynamics will appear.
Collision Threshold Multiplier 1.0 Factor to scale the distance vertex-to-collider at rest. It is used to modulate the minimum distance to the collider allowed for each vertex.
Compression Resistance 0.0 Force to correct the edge lengths if the current length is smaller than the rest length. A higher value represents higher correction.
Global Damping 1.0 Set global damping per vertex in the simulated mesh. The greater the value per vertex the more it will attempt to retain its previous position.
Mass 1.0 Set individual mass values per vertex in the simulated mesh.
Shape Preservation 1.0 Amount of correction to apply to the current vertex to maintain the initial state of the shape formed with the surrounding vertices.
Slide Collision Constraints 0.0 Represents for which areas collisions should be computed against the collider. A value of 0.0 does not apply correction at all, while a value of 1.0 does apply the correction to fix intersections.
Stretching Resistance 1.0 Force to correct the edge lengths if the current length is greater than the rest length. A higher value represents higher correction.
simshape weights
Figure 6: Example of painted weights. On the left: attract force; on the middle-left: collision threshold multiplier, global damping, mass, shape preservation and stretching resistance; on the middle-right: compression resistance; on the right: slide collision constraints.
AdnSimshape example of network
Figure 7: Example of AdnSimshape network. Using null nodes with ADN_IN_ and ADN_OUT_ prefixes to encapsulate the AdonisFX deformable section is recommended to keep the network compatible with the API.
NOTE

To tweak the point attributes of an AdnSimshape SOP, an attribpaint is needed. To ease the creation and initial configuration of this node, select the AdnSimshape SOP and click on AdonisFX > Utils > Make Paintable. This utility will create an attribcreate node to define the required point attributes and assign their default values followed by an attribpaint node to allow these attributes to be modified. Both nodes are automatically named and properly connected to the AdnSimshape node.

Debugger

To better visualize deformer constraints and attributes in the Houdini viewport there is the option to enable the debugger, found in the switcher menu labeled Debug in the parameter interface. The visualization of the guide geometry is only activated when selecting the node to debug and cannot be enabled globally.

To enable the debugger the Debug checkbox must be marked. To select the specific feature to visualize, choose it from the list provided in Features. The features that can be visualized with the debugger in the AdnSimshape deformer are:

  • Distance Constraints: For each pair of vertices forming a constraint a line will be drawn. If the Triangulate Mesh option is disabled the debugged lines will align with the edges of the mesh polygons. If the Triangulate Mesh option is enabled the debugged lines will align with the edges of the underlying triangulation of the mesh.
  • Muscle Fibers: For each vertex, a line will be drawn showing the direction of the muscle fibers. The debug lines will only be displayed in case muscle activations have been enabled with an AdonisFX Muscle Patches file.
  • Shape Preservation: For each vertex with a shape preservation weight greater than 0.0, a line will be drawn from each adjacent vertex to the opposite adjacent vertex.
  • Slide Collision Constraints: For each vertex, a line will be drawn from the mesh to the closest point of a collider. The debug lines will only be displayed in case collisions are enabled and colliders have been set up.
  • Sliding Surface On Collider: For each vertex, lines will outline the collider triangles within the reach of its Max Sliding Distance

Enabling the debugger and selecting one of these constraints will draw lines from the influenced vertices in the simulated mesh to their corresponding reference vertices.

simshape editor debug menu
Figure 8: AdnSimshape Slide Collision Constraints, Muscle Fibers, Sliding Surface On Collider and Shape Preservation debugging.
simshape editor distance constraint debug
Figure 9: Displaying the target and simulated mesh. Debugger enabled displaying the Distance Constraints colored in blue with Triangulate Mesh option disabled (Left) and enabled (Right).
simshape editor shape preservation constraint debug
Figure 10: Displaying the target and simulated mesh. Debugger enabled displaying the Shape Preservation Constraints colored in blue with Triangulate Mesh option disabled (Left) and enabled (Right).
NOTE
  • The width of the debug lines can be modified from the global viewport settings in Houdini.
  • For better contrast while debugging, enable the Dark background option in the viewport settings.

Advanced

Muscle Activations

AdnSimshape can emulate the behavior of facial muscles by computing the muscle activation directly on the vertices of the skin geometry. The activation of the vertices is an advanced and optional feature that can work in two modes: from muscle patches data or from plug values.

Activation modes from attribute editor
Figure 11: Activation Modes switch exposed in the Parameter Template.
Activation Modes
Muscle Patches
Plug Values (Point Attribute)
No Activation

The data in the AdonisFX Muscle Patches file in combination with the deformation status of the Deform Mesh are used to calculate the amount of activation at each vertex. The AMP file is the result of a Machine Learning process and can be generated following the steps presented in the next section. The requirements for this mode to work are:

  • AdonisFX Muscle Patches file
  • Deform mesh

The values used to drive the level of activation at each vertex will be read from the adnActivation point attribute in the geostream. The AdnEdgeEvaluator node can be used to compute the activation values from the rest and deformation meshes.

Note

  • The values must be provided in the range 0 to 1, where 0.0 is no activation and 1.0 is maximum activation.
  • The values outside of the valid range will be clamped.

The activations are not computed. This option is selected by default.

Generate Muscle Patches

The data required to generate an AMP file is:

  • Neutral mesh: Rest mesh with a neutral facial expression.
  • Target meshes: Set of deformed meshes representing facial expressions.
    • The number of vertices in the neutral and the target meshes must match with the number of vertices of the simulated mesh that will be used for the simulation.
    • The target meshes and the neutral mesh must be in the same space with no transformations.
NOTE
  • The AdnLearnMusclePatches SOP requires the target geometries to be combined in a single geometry.
  • The target geometries must contain a primitive attribute to allow the AdnLearnMusclePatches to identify each piece of geometry.

The AdnLearnMusclePatches SOP allows the user to generate the AMP file:

AdnLearnMusclePatches parameter template
Figure 12: AdnLearnMusclePatches parameter template.
  1. Go to the geometry context of the rig containing the neutral and target meshes.
  2. Press TAB and navigate to the submenu AdonisFX > Utils to find the AdnLearnMusclePatches Learn Muscle Patches icon SOP type.
  3. Create it and connect the neutral mesh to the first input.
  4. Connect the target meshes to the second input. These geometries are the set of facial expressions produced by blendshapes or a facial rig.
  5. Specify the Targets Piece Attribute to be able to split the target geometries into single pieces.
  6. Create a group node between the neutral mesh and the AdnLearnMusclePatches SOP to select the points that will be involved in the training for the muscle patches generation.
  7. Browse or specify the destination AMP file.
  8. Configure custom settings for the learning algorithm.
  9. Press Execute.

Simshape draw muscle patches example
Figure 13: Example of muscle patches generated with the AdnLearnMusclePatches SOP.

Additional custom settings for the learning algorithm:

Name Type Default Description
Limit Iterations Boolean False If enabled, the Number of Iterations will be taken into consideration.
Iterations Integer 20 Maximum number of iterations allowed in the training process. The higher this value is, the more accurate the muscle patches estimation will be and the longer the execution will take. This parameter is ignored if Limit Iterations attribute is disabled. In that case, the training process will run until it achieves the most accurate solution. Has a range of [1, 1e6].
Number of Muscle Patches Integer 79 Maximum number of muscle patches expected in the results. Has a range of [1, 1e6].
Write Muscle Id Boolean False If enabled, the SOP will generate an output point attribute with the name provided in Muscle Id Attribute. By visualizing this output attribute, the vertices of the neutral mesh will be colored according to the muscle patches resulting from the training.
Muscle Id Attribute String adnMusclePatchId Name of the per-point attribute to write the muscle patches ids to.
Write Muscle Fibers Boolean False If enabled, the SOP will generate an output point attribute with the name provided in Muscle Fibers Attribute. By visualizing this output attribute, the fiber directions will be drawn on the vertices of the neutral mesh according to the muscle patches resulting from the training.
Muscle Fibers Attribute String adnMusclePatchFibers Name of the per-point attribute to write the muscle fiber directions to.

Debug Activations

AdnSimshape generates an output point attribute called adnOutActivation that can be used to visualize the activations during the simulation.

Simshape output activation attribute
Figure 14: Visualization of the `adnOutActivation` computed by AdnSimshape.

Colliders

AdnSimshape supports an internal collider that has to be bound to the rig and combined into a single object in order to mimic the internal structures. Colliders can represent structures like the skull or the teeth. In order to provide a collider, connect its geometry to the fifth input of the AdnSimshape SOP.

NOTE
  • Avoid intersections between the collider and the rest/simulated mesh.
  • Colliders with high Level Of Detail will affect the simulation performance.

The use of rest collider is recommended when the pre-roll simulation is not computed and the initialization to the animated mesh is enabled (see attribute Initialize to Anim Mesh). In order to allow the solver to build consistent collision data in those cases, it is necessary to provide both the rest mesh and the rest collider in the same space. In order to provide a rest collider, connect its geometry to the sixth input of the AdnSimshape SOP.

NOTE
  • Avoid intersections between the collider and the rest mesh.
  • Colliders with high Level Of Detail will affect the simulation performance.
  • Collider meshes must have the same number of vertices although it can be different from the number of vertices of the rest, deformed, animated and simulated meshes.

Connections

Connections in AdonisFX for Houdini should be handled in two ways:

  • Detail expression: detail("/obj/geo1/L_adnLocatorRotation_armFlexionShape", "adnActivationRotation", 0) where the first component should contain an API compliant naming convention and the second the detail attribute name that some of the AdonisFX SOP nodes output. This should be used when the requirement is for the connected geometry to cook before retrieving the detail attribute. This could be used for example to drive a parameter of the node using the activation value output from a sensor/locator.
  • Channel expression: ch("../AdnMuscle1/envelope") where the first component should contain an API compliant naming convention and the second the referenced channel to the parameter name. This could be used to for example connect a float attribute to drive a parameter on the node.
Inbibo Logo

consultancy, automation and digital creatures

65 Compton Street, London, United Kingdom, EC1V 0BN

info@inbibo.co.uk

Information

Products

© 2026 Inbibo LTD. - All rights reserved - Design & Development: def:studio