In Houdini you use dynamics networks to create simulations. You create simulation objects and apply one or more solvers to the objects. Houdini has objects and solvers for many different types of simulation, such as cloth, rigid bodies, wires, and fluids. There are also specialized solvers for integrating dynamics with other parts of Houdini, such as script solvers, geometry solvers, particle solvers, and Python solvers.
The most basic dynamics setup is a single simulation object wired to a solver, with a force applied.
Dynamic simulations can also have constraints, which constrain one object’s position based on another object’s position. For example, a spring constraint creates the effect of two objects connected by an invisible spring.
Constraints are a type of relationship. Simulation objects can also have collision relationships. For example, rigid body objects and fluid simulations can affect each other.
You can apply forces to simulation objects. Simulation objects with different solvers can share the same forces, and you can apply multiple forces to each object.
Dynamics networks establish a tree of objects with data applied. The viewport shows you the animated geometry created by the simulation. The details view shows you all the simulation data applied to each object at the current time in a spreadsheet format.
You can add drag, wind, impulse (push force), fields, fans, and other forces (see the Drive simulation tab).
There are many ways to wire a DOP network to get the same result. Nodes that attach data only attach it to the objects that pass through their grey inputs. So you can, for example, limit which objects a certain force applies to by placing the force node at different points in the network, and/or by using the force node’s Group parameter to set a node name pattern to control which objects it applies to.
For example, in the following network, the gravity1
force applies to both sphere_object1
and box_object1
because both object’s are eventually wired into it. However, the fan1
force only applies to sphere_object1
, because it is the only object that is wired through fan1
.
Time-dependent expressions work slightly differently in dynamics. Instead of $F
(current frame) and $T
(current time), you should use $SF
(simulation frame) and $ST
(simulation time). This is because Houdini’s dynamics engine will sometimes move backwards and forwards in time to resolve collisions. When this happens, $F
might, say, change to frame 12 twice. $SF
and $ST
only ever increase.
Subtopics
Learning dynamics
Colliding objects
Simulation types
-
How to simulate smoke, fire, and explosions.
-
How to set up fluid and ocean simulations.
-
How to simulate grainy materials (such as sand).
-
How to create and simulate crowds of characters in Houdini.
-
How to create and simulate deformable objects
-
How to create and simulate cloth and other flexible materials.