Houdini 20.0 Nodes Object nodes

Dop Network object node

The DOP Network Object contains a dynamic simulation.

The DOP Network Object contains a DOP simulation. Simulations can consist of any number of simulation objects (which do not correspond to Objects that appear in /obj). These simulation objects are built and controlled by the DOP nodes contained in this node.

Simulation-wide controls are provided on this node, such as caching options and time step controls. The entire simulation can also be transformed using the Transform parameters of this node. Transforming a simulation at this level does not affect the simulation at all. The Transform is applied after the simulation occurs.

Tip

To improve the playback of cached fluids, increase the Cache Memory on the Simulation tab.

Parameters

Playback Simulation

Turns the DOP network into a player for simulation files. Enabling playback mode will cause the result of the DOP network to be given by the simulation files selected. The internal nodes of the network will be ignored. One way to create simulation files to play using this option is the Output Node inside the DOP network.

Simulation

Reset Simulation

Clears the entire simulation cache. When viewing a DOP Network in the viewport, a button will be made active above the viewport on the right hand side. Pressing that button performs exactly the same action as pressing this Reset Simulation button.

Display

Whether the simulation is displayed in the viewport.

Initial State

The name of a file that is used as the initial state of the simulation. This file must be a simulation state file created by either a File DOP or a Dynamics Output Driver. If this parameter is set, then the DOP nodes inside this network are not processed on the first simulation timestep.

Timestep

Controls the length of a simulation timestep. Usually this value will be some multiple of a frame time, but it is not required. By specifying a larger timestep the simulation will run faster but will be less accurate and less stable. Smaller timesteps give better result but calculate more slowly.

Substeps

The default timestep expression will use this parameter to control how many substeps the dop simulation should perform every frame. This can be easier to adjust than working with the 1/$FPS parameter in timestep.

Offset Time

Specifies an offset in seconds between the simulation time for this simulation and the global time displayed on the playbar. If this parameter is set to 1, then this simulation will not start cooking until frame 25. At that global time of 1 second, the simulation time will be 0. Several expression functions such as doptime exist for converting from global times to simulation times and vice versa.

Start Frame

The default offset time expression references this parameter to set the offset time appropriately. This allows one to set the start time in frames rather than seconds which can be more straightforward in some cases. If the start frame is set to 24, the simulation will not start cooking until frame 24. Note that if you use this, $SF and $F will no longer refer to the same thing inside the simulation.

Scale Time

Specifies a scale factor that relates global time to the simulation time for this DOP Network. A value greater than one means the simulation time advances faster than the global time. A value less than one causes the simulation to appear to run in slow motion relative to the global time. Several expression functions such as doptime exist for converting from global times to simulation times and vice versa.

Max Feedback Loops

When simulation objects using different solvers are made to be mutual affectors (such as a cloth object and an RBD object), this parameter controls the maximum number of iterations to perform while attempting to resolve the two solvers. Increasing this number in situations where different solvers are mutual affectors increases the ability of the simulation to reach a satisfactory result, but can increase the simulation calculation time.

In the case of fluid simulations, since the fluid cannot adapt to the feedback forces that are applied, a value of 2 should be used rather than higher values. Higher values will just make the fluid artificially stronger and take considerable time.

Enable Automatic Resimulation

When any parameter inside a DOP simulation is changed, or when any referenced external node is changed, the cache of the simulation is marked as invalid. If this parameter is turned 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 will be left untouched other than to be marked invalid. If this parameter is off, the cache is marked as invalid in exactly 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.

Provide Data Hints

Rules governing allowed simulation data relationships are stored in a files called dophints.cmd in the scripts directory. If this option is turned on, at the end of each timestep the simulation state is compared against the rules in that file. If any rules are broken, warnings are added to the appropriate DOP nodes. This can be very useful when learning to use DOPs or when debugging problems with a simulation. Turning this option off will improve the performance of your simulation by skipping this validation step at the end of each timestep.

Interpolate Display Data

If the global time is set to a value that does not line up with a simulation timestep boundary, this parameter controls how the simulation should be displayed. If this parameter is turned off, the closest simulation timestep contents are displayed. If this parameter is turned on, the contents of the previous and next simulation timesteps are interpolated to create an approximation of the simulation as it would have actually been at the current time. This option allows the simulation to appear smooth in the viewport even if the simulation timesteps do not line up with the global frame times.

Cache

Cache Simulation

Enables the simulation cache. Many solvers will not work properly unless this option is enabled. However for very large simulations, turning off this option is the best way to guarantee the smallest possible memory footprint for the simulation.

Compress .sim Files

Determines if .sim files written to disk for caching will be compressed. Compression can reduce the size of the disk cache significantly, but can also increase the time to cache significantly. If loading or writing to cache seems slow, try using blosc compressed .sim files or uncompressed .sim files, especially with fluid sims.

Allow Caching To Disk

If the maximum size of the cache in memory is reached, the DOP Network can either delete old cache entries to make room for new entries, or old entries can be saved to disk. If this option is on, the old cache entries are saved to disk and will be reloaded from disk if needed. This mode will be slower than simply throwing away the old cache entries, but it ensures that the entire simulation history is always available regardless of the in-memory cache size.

Cache to Disk in Non Interactive Sessions

In non-interactive sessions, such as hscript or hython, one may often not want the entire simulation history to be available. Their default behavior is to ignore the Allow Caching to Disk and not cache to disk. This behavior can be overridden with this toggle. Saving old simulation states to disk can often become very expensive and, since one will not be scrubbing the playbar on the result, a waste of disk space.

Cache Substep Data

Some solvers perform their own internal subsampling of time to get better results. This option controls whether or not the substep data created during this internal subsampling should be kept as part of the cache, or discarded as soon as the simulation timestep has finished computing. Having this option on can be useful for debugging purposes, or if accurate display of sub-timestep data is desired. Using the actual substep data will give more accurate results that displaying interpolated data.

Cache Memory (MB)

Specifies how much memory in megabytes can be consumed by the cache for this simulation. Once this limit is exceeded, old cache entries are either deleted or saved to disk to make more room, depending on the value of the Allow Caching To Disk parameter value above.

Timeless (No History)

Each frame the simulation is started fresh as if it were the first frame. This means $SF is always 1. It also means, however, if the network consists of a File DOP with a $F based .sim file, only the current frame will have to be loaded, allowing for fast random access of baked simulations. Note that when in this mode only one frame is kept in the cache.

Save Checkpoints

Normally when the Allow Caching to Disk is enabled and the simulation hits the memory limit, the simulation is saved to files in the temp directory. While these are valid .sim files, they can be hard to manage. When this options is on, each frame is immediately cached to the specified directory. It is still kept in memory until the Cache Memory is hit, but at that point it is not saved to disk (since it’s already on disk). The advantage of checkpointing is that if a cache frame already exists DOPs will not cook that frame, even if the simulation has been reset. Instead it will load that frame. Further, it only needs to cook the frames after the last valid checkpoint frame before the requested frame. So if you have cache_50.sim and try to cook frame 100, cooking can start at frame 50.

Using save checkpoints is similar to using a File DOP in Automatic Mode. However, when you try to jump to frame 50 with a File DOP it must load the first 50 frames. With checkpoints it can skip this step.

Checkpoint Files

The file sequence to save the checkpoints to. These are .sim files, loadable with the File DOP or File SOP. The variable $SF must be used to specify the frame number - $F cannot be used because this is working in simulation space. $SF4 is also supported.

Checkpoint Trail Length

How much of a history to keep before the checkpoint files are deleted. A value of 0 will never delete cache files. Otherwise, frames older than this value will be erased from disk.

Note that only checkpoint files created by this session of Houdini will be deleted. If you restart Houdini with an existent cache files, they will not be deleted. This is done because you were likely restarting from a crashed location and will want to guarantee you can once again restart there if it crashes again.

Checkpoint Interval

The frame interval between checkpoints. Setting this to a value of 1 will save a checkpoint every frame. Setting this to higher values will save a checkpoint after every number of frames specified. For example setting this to 5 will save a checkpoint every 5 frames.

This can be done to save disk space if you are running a large simulation.

Transform

Note

The transform of objects are also determined by the presence of any added node properties.

Transform Order

The left menu chooses the order in which transforms are applied (for example, scale, then rotate, then translate). This can change the position and orientation of the object, in the same way that going a block and turning east takes you to a different place than turning east and then going a block.

The right menu chooses the order in which to rotate around the X, Y, and Z axes. Certain orders can make character joint transforms easier to use, depending on the character.

Translate

Translation along XYZ axes.

Rotate

Degrees rotation about XYZ axes.

Scale

Non-uniform scaling about XYZ axes.

Pivot

Local origin of the object. See also setting the pivot point .

Uniform Scale

Scale the object uniformly along all three axes.

Modify Pre-Transform

This menu contains options for manipulating the pre-transform values. The pre-transform is an internal transform that is applied prior to the regular transform parameters. This allows you to change the frame of reference for the translate, rotate, scale parameter values below without changing the overall transform.

Clean Transform

This reverts the translate, rotate, scale parameters to their default values while maintaining the same overall transform.

Clean Translates

This sets the translate parameter to (0, 0, 0) while maintaining the same overall transform.

Clean Rotates

This sets the rotate parameter to (0, 0, 0) while maintaining the same overall transform.

Clean Scales

This sets the scale parameter to (1, 1, 1) while maintaining the same overall transform.

Extract Pre-transform

This removes the pre-transform by setting the translate, rotate, and scale parameters in order to maintain the same overall transform. Note that if there were shears in the pre-transform, it can not be completely removed.

Reset Pre-transform

This completely removes the pre-transform without changing any parameters. This will change the overall transform of the object if there are any non-default values in the translate, rotate, and scale parameters.

Keep Position When Parenting

When the object is re-parented, maintain its current world position by changing the object’s transform parameters.

Child Compensation

When the object is being transformed, maintain the current world transforms of its children by changing their transform parameters.

Enable Constraints

Enable Constraints Network on the object.

Constraints

Path to a CHOP Constraints Network. See also creating constraints.

Tip

You can you use the Constraints drop down button to activate one of the Constraints Shelf Tool. If you do so, the first pick session is filled automatically by nodes selected in the parameter panel.

Note

Lookat and Follow Path parameters on object nodes are deprecated in favor of Look At and Follow Path constraints. The parameters are only hidden for now and you can set their visibility if you do edit the node’s parameter interface.

Object nodes

  • Agent Cam

    Create and attach camera to a crowd agent.

  • Alembic Archive

    Loads the objects from an Alembic scene archive (.abc) file into the object level.

  • Alembic Xform

    Loads only the transform from an object or objects in an Alembic scene archive (.abc).

  • Ambient Light

    Adds a constant level of light to every surface in the scene (or in the light’s mask), coming from no specific direction.

  • Auto Bone Chain Interface

    The Auto Bone Chain Interface is created by the IK from Objects and IK from Bones tools on the Rigging shelf.

  • Blend

    Switches or blends between the transformations of several input objects.

  • Blend Sticky

    Computes its transform by blending between the transforms of two or more sticky objects, allowing you to blend a position across a polygonal surface.

  • Bone

    The Bone Object is used to create hierarchies of limb-like objects that form part of a hierarchy …

  • Camera

    You can view your scene through a camera, and render from its point of view.

  • Common object parameters

  • Dop Network

    The DOP Network Object contains a dynamic simulation.

  • Environment Light

    Environment Lights provide background illumination from outside the scene.

  • Extract Transform

    The Extract Transform Object gets its transform by comparing the points of two pieces of geometry.

  • Fetch

    The Fetch Object gets its transform by copying the transform of another object.

  • Formation Crowd Example

    Crowd example showing a changing formation setup

  • Fuzzy Logic Obstacle Avoidance Example

  • Fuzzy Logic State Transition Example

  • Geometry

    Container for the geometry operators (SOPs) that define a modeled object.

  • Groom Merge

    Merges groom data from multiple objects into one.

  • Guide Deform

    Moves the curves of a groom with animated skin.

  • Guide Groom

    Generates guide curves from a skin geometry and does further processing on these using an editable SOP network contained within the node.

  • Guide Simulate

    Runs a physics simulation on the input guides.

  • Hair Card Generate

    Converts dense hair curves to a polygon card, keeping the style and shape of the groom.

  • Hair Card Texture Example

    An example of how to create a texture for hair cards.

  • Hair Generate

    Generates hair from a skin geometry and guide curves.

  • Handle

    The Handle Object is an IK tool for manipulating bones.

  • Indirect Light

    Indirect lights produce illumination that has reflected from other objects in the scene.

  • Instance

    Instance Objects can instance other geometry, light, or even subnetworks of objects.

  • LOP Import

    Imports transform data from a USD primitive in a LOP node.

  • LOP Import Camera

    Imports a USD camera primitive from a LOP node.

  • Labs Fire Presets

    Quickly generate and render fire simulations using presets for size varying from torch to small to 1m high and low

  • Light

    Light Objects cast light on other objects in a scene.

  • Light template

    A very limited light object without any built-in render properties. Use this only if you want to build completely custom light with your choice of properties.

  • Microphone

    The Microphone object specifies a listening point for the SpatialAudio CHOP.

  • Mocap Acclaim

    Import Acclaim motion capture.

  • Mocap Biped 1

    A male character with motion captured animations.

  • Mocap Biped 2

    A male character with motion captured animations.

  • Mocap Biped 3

    A male character with motion captured animations.

  • Null

    Serves as a place-holder in the scene, usually for parenting. this object does not render.

  • Path

    The Path object creates an oriented curve (path)

  • PathCV

    The PathCV object creates control vertices used by the Path object.

  • Python Script

    The Python Script object is a container for the geometry operators (SOPs) that define a modeled object.

  • Ragdoll Run Example

    Crowd example showing a simple ragdoll setup.

  • Reference Image

    Container for the Compositing operators (COP2) that define a picture.

  • Rivet

    Creates a rivet on an objects surface, usually for parenting.

  • Simple Biped

    A simple and efficient animation rig with full controls.

  • Simple Female

    A simple and efficient female character animation rig with full controls.

  • Simple Male

    A simple and efficient male character animation rig with full controls.

  • Sound

    The Sound object defines a sound emission point for the Spatial Audio chop.

  • Stadium Crowds Example

    Crowd example showing a stadium setup

  • Stereo Camera Rig

    Provides parameters to manipulate the interaxial lens distance as well as the zero parallax setting plane in the scene.

  • Stereo Camera Template

    Serves as a basis for constructing a more functional stereo camera rig as a digital asset.

  • Sticky

    Creates a sticky object based on the UV’s of a surface, usually for parenting.

  • Street Crowd Example

    Crowd example showing a street setup with two agent groups

  • Subnet

    Container for objects.

  • Switcher

    Acts as a camera but switches between the views from other cameras.

  • TOP Network

    The TOP Network operator contains object-level nodes for running tasks.

  • VR Camera

    Camera supporting VR image rendering.

  • Viewport Isolator

    A Python Script HDA providing per viewport isolation controls from selection.

  • glTF