Houdini 21.0 Nodes Geometry nodes

Otis Solver geometry node

Summary.

Since 21.0

The Otis Solver is a specialized solver for tetrahedral soft body constraints that is faster and more accurate than the Vellum Solver for this singular task. It is well suited to simulate muscle and tissue. The solver is optimized to run on the GPU and at high substeps without much performance degradation.

It uses a small subset of the Vellum workflow, in that the simulation model is created with a Vellum Constraints SOP. However, only a few constraint types are supported such as Tetrahedral Stretch, Pin, and Stitch.

Unlike Vellum, there are only two inputs to the solver, one for the Geometry and one for Constraints. Currently, any collision geometry must be pinned simulation geometry.

The solver can operate in Dynamic mode, which operates with a DOP network, and Quasistatic, which is a purely SOP-based solve and is time-independent.

Note

Please note that though this solver is a SOP node, it is not available in Houdini Core. However, a .hip file containing this node can still be opened in Houdini Core, but the node’s parameters will be greyed out.

Parameters

Solver

Time Scale

Scales the effective time of the solve. This can create bullet-time like effects where the physics of the Otis solver run at a different rate than the Houdini playbar. A value of 2 will cause objects to fall twice as fast, and 0.1 will slow them to one-tenth the speed.

Substeps

Each frame will be broken into this number of substeps. Additional substeps are required for fast moving collisions or sudden forces. The Otis solver is OpenCL-based and generally only imports target geometry at frame intervals, so increasing Substeps should be less expensive than in some other solvers.

Iterations

Within each substep, this number of passes will be taken by the material solve. Stiffer materials can require more iterations to converge.

Collisions

Enable Collisions

Controls if objects will collide within the solve.

Ground Plane

Controls if there will be a ground plane in the simulation.

Ground Origin

The location of the center of the ground plane.

Ground Normal

The direction of the ground plane normal. The default of <0, 1, 0> means the normal points up in y and the ground plane is the x-z plane.

Collision Frequency

Controls how frequently collision detection is done by the solver. Collisions are always considered in the material solve, but the actual position of those collisions and the objects involved is only updated at this frequency. For example if the Iterations parameter is set to 20, then there will be 5 collision detection operations inserted among those 20 material iterations each substep.

Advanced

Triangle Group

The primitive group that specifies the triangles in the simulation objects used for collision detection. This group must be specified.

Intersecting Tetrahedra

Perform collsion detection between points and tetrahedra that comprise the simulation objects. Only points that are part of the triangles in the Triangle Group will be considered for collisions.

Tetrahedron Group

The primitive group that specifies the tetrahedra in the simulation objects used for collision detection when Intersecting Tetrahedra is on.

Ignore Collisions with Same Name or Piece

Ignore collisions with points that have the same non-empty name or non-negative piece point attribute.

Collision Stiffness

The stiffness applied to collisions to keep objects apart. This value should generally be slightly higher than the average material stiffness, unless Adaptive Collision Stiffness is on, in which case it can be about 10 times lower.

Adaptive Collision Stiffness

Gradually increase the collision stiffness for points that are interpenetrating to resolve collisions. Turn this on to lower Collision Stiffness setting, which can lead to smoother collisions.

Forces

Gravity

The uniform gravity force to apply.

Velocity Damping

A damping applied directly to the velocity in the simulation. The velocity is scaled directly by this amount, causing sudden movements to be quickly damped.

Static Threshold

A threshold at which to apply full friction. When the ratio of the tangential velocity and the normal impulse is less than this, the tangential velocity will be fully eliminated through friction.

Dynamic Scale

If the static threshold fails, this controls what percentage the tangential velocity will be reduced in the dynamic friction case.

Simulation

Reset Simulation

Clear the simulation cache so that the simulation starts over.

Cache Simulation

Controls if the simulation is cached to memory.

Cache Memory (MB)

Maximum size of the memory cache.

Enable Automatic Resimulation

When any parameter inside a DOP simulation or any referenced external node is changed, the cache of the simulation is marked as invalid. When on, the next time the playbar is moved to reach a simulation time of 0, the cache will be cleared and the first simulation timestep will be recalculated. If the cache is invalidated while at a simulation time of 0, the initial state is recalculated immediately. If the current time is beyond time 0, then the most recent timestep will be recooked, and the cache beyond the current time will be cleared. But all prior timesteps remains the same other than to be marked invalid. When off, the cache is marked as invalid in the same way, but the cache is never cleared automatically. To recook a simulation in this mode, the Recook Simulation button on this parameter dialog or above the viewport must be used.

Simulation Type

Style of the simulation.

Quasistatic

Perform a quasistatic solve that solves from the input to the state specified by the Target Geometry and Constraints, taking the specified number of Substeps. There is an additional mode for this simulation type when Quasistatic Targets from Packed Primitives is on, in which case each packed target geometry is solved as a separate pose or frame of the target geometry. You can also use velocity as a predictor in this mode by turning on Predictive Quasistatic, usually along with some amount Velocity Damping.

This solve mode is implemented entirely in SOPs and is time-independent once cooked.

Dynamic

Perform a traditional DOP-based simulation that runs from frame to frame.

Start Frame

The frame at which the Dynamic simulation should begin.

Intermediate Output

Because a Quasistatic solve can operate over multiple poses with no visibility into the intermediate states, this option can write out geometry in the intermediate state.

None

Do not write out intermediate geometry.

Each Substep

Write out intermediate geometry at each substep.

Each Target Pose

Write out intermediate geometry for each pose. This option is most useful when Quasistatic Targets from Packed Primitives is on, since it writes an intermediate file for each input pose.

Output Base Name

The base name to use for any intermediate files output. A five-digit substep or pose number will be appended as well as .bgeo.sc.

Convergence Scale

The scale for convergence acceleration within the solver. Increasing this value can make the solver converge faster for more accurate stiffness but setting it too high can lead to instability.

Adaptive Stiffness

Improve solver convergence by adaptively increasing the stiffness on stiff constraint types that compete with softer constraints. Currently this applies only to tetrahedral volume constraints.

Double Precision Solve

Perform the material solve in double precision. This option is more expensive even on advanced GPUs, but can avoid instability when solving extremely small, stiff tetrahedra.

Target

Target Geometry

Points on the simulation mesh can be marked as Pin to Target to follow the targeted animation. By default, this target is the first input. But in some cases the animation to target may be present in another SOP node, so that can be specified here.

Target Path

The path of a node to refer to when simulation points are set to the target animation. Should have a one-to-one point correspondence with the simulation points.

Target Constraints

When some parameters on the Update Constraints from Target tab are on, the solver will update constraint attributes directly from the Target Constraints. By default, this target is the second input. But in some cases the animation you wish to target may be present in another SOP node, so that can be specified here.

Target Constraints Path

The path of a node to refer to when simulation constraints are set to the target animation. Should have a one-to-one primitive correspondence with the simulation constraint primitives.

Import Target Geometry

How frequently to update the target geometry.

Each Frame

Update the target geometry at frame intervals, and linearly interpolate values at substeps.

Each Substep

Update the target geometry at each substep. This option provides the most accurate input for curved animation inputs, but can be significantly more expensive at high substeps.

Quasistatic Targets from Packed Primitives

When on, the Quasistatic solve will process each packed primitive as a separate input pose, allowing a smooth transition from an initial state to a more extreme pose in a smooth manner that can be defined by the series of poses. If Target Constraint Method is set to a SOP Path, you can also provide the same number of packed constraint geometries to modify the constraints over the series of poses. An example is to flex muscles as they bend.

Predictive Quasistatic

Integrate velocity within the Quasistatic Solve. This velocity can be used as a predictor between poses, allowing the solved geometry to track the input poses better.

Damp Final Poses

When performing a Predictive Quasistatic solve, smoothly scale up the Velocity Damping to 1 over the final specified number of frames. This can be useful to remove any inertial movement in a Quasistatic solve. Usually the final packed primitive pose should be achieved and held stationary for this number of frames as well.

Update Constraints from Target

Stiffness and Damping

Update the simulation constraints with stiffness and dampingratio values from the Target Constraints.

Rest Shape

Update the simulation constraints' rest shape with damping values from the Target Constraints. This includes restlength, restvector and restmatrix attributes if present. A Vellum Rest Blend SOP can be used to update the rest shape attributes on target constraints.

Fiber Scale

Update the simulation constraints with fiberscale values from the Target Constraints, which can be used to emulate muscle contraction.

See also

Geometry nodes