Houdini 20.5

Dynamics

How to use Houdini’s dynamics networks to create simulations.

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. To create such a setup, you can use the Rigid Bodies shelf tools, e.g. the RBD Hero Object.

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 Geometry Spreadsheet 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 sphere1 and box1 because both object’s are eventually wired into it. However, the fan1 force only applies to sphere1, 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

  • Pyro

    How to simulate smoke, fire, and explosions.

  • Fluids

    How to set up fluid and ocean simulations.

  • Oceans

    How to set up ocean and water surface simulations.

  • Grains

    How to simulate grainy materials (such as sand).

  • MPM

    How to simulate different types of solid materials (such as snow, soil, mud, concrete, metal, jello, rubber, water, honey, and sand).

  • Crowds

    How to create and simulate crowds of characters in Houdini.

  • Cloth

    Vellum uses a Position Based Dynamics approach to cloth, hair, grains, fluids, and softbody objects.

  • Finite Elements

    How to create and simulate deformable objects

  • Hair and Fur

    How to create, style, and add dynamics to hair and fur.

  • Particles

    How to create particle simulations.

  • Waves and ripples

  • Simulating ropes, wires, and other bendable objects

Next steps

Houdini 20.5

Getting started

Using Houdini

  • Geometry

    How Houdini represents geometry and how to create and edit it.

  • Copying and instancing

    How to use copies (real geometry) and instances (loaded or created at render time).

  • Animation

    How to create and keyframe animation in Houdini.

  • Digital assets

    Digital assets let you create reusable nodes and tools from existing networks.

  • Import and export

    How to get scene, object, and other data in and out of Houdini.

  • MPlay viewer

    Using Houdini’s stand-alone image viewer.

Character FX

  • Character

    How to rig and animate characters in Houdini.

  • Crowd simulations

    How to create and simulate crowds of characters in Houdini.

  • Muscles and tissue

    How to create and simulate muscles, tissue, and skin in Houdini.

  • Hair and fur

    How to create, style, and add dynamics to hair and fur.

  • Feathers

    How to create highly realistic and detailed feathers for your characters.

Dynamics

  • Dynamics

    How to use Houdini’s dynamics networks to create simulations.

  • Vellum

    Vellum uses a Position Based Dynamics approach to cloth, hair, grains, fluids, and softbody objects.

  • Pyro

    How to simulate smoke, fire, and explosions.

  • Fluids

    How to set up fluid and ocean simulations.

  • Oceans and water surfaces

    How to set up ocean and water surface simulations.

  • MPM

    How to simulate different types of solid materials (such as snow, soil, mud, concrete, metal, jello, rubber, water, honey, and sand).

  • Destruction

    How to break different types of materials.

  • Grains

    How to simulate grainy materials (such as sand).

  • Particles

    How to create particle simulations.

  • Finite elements

    How to create and simulate deformable objects

Pipeline

  • Executing tasks with PDG/TOPs

    How to define dependencies and schedule tasks using TOP networks.

  • HQueue

    HQueue is Houdini’s free distributed job scheduling system.

  • Houdini Engine

    Documents the Houdini Engine C, Python APIs, and Houdini Engine plugins

  • Machine Learning

    Houdini provides a platform for machine learning which supports synthetic data generation, preprocessing, training models, exporting trained models, and deploying trained models

Nodes

  • OBJ - Object nodes

    Object nodes represent objects in the scene, such as character parts, geometry objects, lights, cameras, and so on.

  • SOP - Geometry nodes

    Geometry nodes live inside Geo objects and generate geometry.

  • DOP - Dynamics nodes

    Dynamics nodes set up the conditions and rules for dynamics simulations.

  • VOP - Shader nodes

    VOP nodes let you define a program (such as a shader) by connecting nodes together. Houdini then compiles the node network into executable VEX code.

  • LOP - USD nodes

    LOP nodes generate USD describing characters, props, lighting, and rendering.

  • ROP - Render nodes

    Render nodes either render the scene or set up render dependency networks.

  • CHOP - Channel nodes

    Channel nodes create, filter, and manipulate channel data.

  • COP - Copernicus nodes

    COP nodes provide real-time image manipulation within a 3D space.

  • TOP - Task nodes

    TOP nodes define a workflow where data is fed into the network, turned into work items and manipulated by different nodes. Many nodes represent external processes that can be run on the local machine or a server farm.

  • APEX - APEX nodes

    APEX nodes provide operations for building up the functionality of APEX graphs, which are used in KineFX to create character rigs and perform other geometry manipulation.

Scene building, Karma rendering, Image processing

  • Solaris and Karma

    Solaris is the umbrella name for Houdini’s scene building, look development, and Karma rendering tools based on the Universal Scene Description (USD) framework.

  • Copernicus

    Houdini’s 2D and 3D GPU image processing framework.

  • Compositing

    Houdini’s compositing networks let you create and manipulate images such as renders.

Mantra rendering and shading

Reference

  • Menus

    Explains each of the items in the main menus.

  • Viewers

    Viewer pane types.

  • Panes

    Documents the options in various panes.

  • Windows

    Documents the options in various user interface windows.

  • Stand-alone utilities

    Houdini includes a large number of useful command-line utility programs.

  • APIs

    Lists all the reference documentation for the ways you can program Houdini.

  • Python scripting

    How to script Houdini using Python and the Houdini Object Model.

  • Expression functions

    Expression functions let you compute the value of parameters.

  • HScript commands

    HScript is Houdini’s legacy scripting language.

  • VEX

    VEX is a high-performance expression language used in many places in Houdini, such as writing shaders.

  • Properties

    Properties let you set up flexible and powerful hierarchies of rendering, shading, lighting, and camera parameters.

  • Galleries

    Pre-made materials included with Houdini.

  • Houdini packages

    How to write and combine multiple environment variable definition files for different plug-ins, tools, and add-ons.

  • hwebserver

    Functions and classes for running a web server inside a graphical or non-graphical Houdini session.