Image credit: Artem Smirnov
  • Similar to Vellum constraints, RBD now has the ability to use tags. This new checkbox on the RBD Material Fracture SOP creates a constraint_tag string attribute on the constraint primitives instead of using primitive groups. Tags can also be used with the Constraint Group parameter on the RBD Constraint Properties SOP to easily alter specific constraints.

  • New RBD Constraint Properties 2.0 SOP that allows you to Set constraint properties as well as Edit them using the new Action parameter. The new Edit mode lets you easily override individual attributes on existing constraints.

  • New RBD Deforming to Animated SOP that converts deforming geometry to animated static packed objects. This node unpacks the input geometry and proxy geometry, freezes it at a given reference frame, repacks it, and drives its packed transforms by extracting the transforms from the deforming pieces.

  • Stable results when recomputing convex hulls. The way collision shapes are imported has been improved to produce identical results when rebuilding collision shapes if the simulation is reset on a later frame. This also fixes jitter in the convex hull guide geometry.

  • The RBD Bullet Solver SOP has several new aging parameters. Age RBDs tracks the time since the object was added to the simulation and can be useful for driving custom forces or deleting objects after some time. Add Active Age Attribute tracks the time since the object was activated, and Just Activated Group creates a point group containing only the objects that became active on the current frame. This can be useful for applying an initial force to objects after they are activated.

  • The Bullet Solver DOP has a new Enable Aging parameter that lets you update the age attribute for objects, and delete objects that have exceeded the life attribute if it exists (similar to the POP solver). Constraints with an age primitive attribute can also be updated by the solver.

  • New Use This Object’s Data parameter on the Geometry VOP, POP VOP, and Gas Field VOP DOPs when binding one of the inputs to DOP data. This allows you to easily bind to other subdata of the current object being solved, when the solver is applied to multiple DOP objects. Using $OBJID in the DOP path expression requires enabling the Solver per Object checkbox, which is problematic for mutual affectors.

  • New guide visualizers on the RBD Guide DOP to help identify guided vs non-guided pieces.

  • Multithreaded unpacking in the Unpack SOP and Unpack Points SOP for prims that are non-trivial to unpack, such as Alembic. This now matches the performance of unpacking in a compiled For Each loop.

  • Easily enable microsolvers for a specific DOP object with the new Enable Objects parameter on the Enable Solver DOP. It can accept a variety of patterns, which include object names, object ids, or group names.

  • Significantly improved the performance of importing guide geometry from an RBD Packed Object back into SOPs using DOP Import. This affects nodes such as the RBD Bullet Solver and RBD Exploded View that can display the collision geometry representation from DOPs.

  • New Enumerate Pieces mode on the Enumerate SOP. You can now choose between assigning sequential numbers to each element, for each separate piece, or assigning the same number to each element, for each separate piece. The latter can be useful if the pieces are defined by a string attribute (such as name or path) and you want to define the pieces by a unique integer instead.

  • The pscale and scale point attributes are now recognized by the Bullet solver for RBD Packed Objects, and the collision shape will be automatically updated with any changes to the scale.

    • The solver also no longer requires that the packed primitive transform is updated when manually adjusting the position transform attributes (i.e. orient, pscale, or scale). The solver now records the packed primitive’s initial transform in the restxform attribute, and uses this to update the primitive’s full transform at the end of each time step.

    • For animated static objects (where the animated point attribute is 1), the solver also now updates the scale attribute to reflect any scaling in the SOP packed primitive’s transform.

  • New Constraint Browser for visualizing and managing constraints. You can access this interface by choosing New Pane Type > Inspectors > Constraint Browser.

  • Improved Debris Source SOP now supports packed objects. It also has parameters to give you more control over where the seed points can spawn. It can handle large scale destruction scenes with many packed RBDs, as well as bridge the gap between RBD and Pyro, making it easier to emit dust from your RBD simulations.

  • New Depth Method parameter on the RBD Interior Detail SOP, which computes the minimum distance from each interior point to the exterior primitives using the minimum distance to the exterior surface, rather than building an SDF for depth sampling. This method does not require configuring a suitable volume resolution. The RBD Material Fracture SOP also uses this method internally.

  • Extract Centroid improvements:

    • New mode on the Extract Centroid SOP to compute the centroid of each primitive. This is much faster than using the Enumerate SOP to create a trivial piece attribute and then running over pieces. Voronoi Fracture also uses this new mode.

    • The centroid is now computed properly for a single polygon rather than returning the average point position.

    • Supports non-polygon primitive types such as spheres.

    • Computes accurate results when running over open meshes.

  • New Cone Angle parameter on the Connect Adjacent Pieces SOP, which restricts the search for nearby points to only consider points within a specified angle. This is useful if you want to avoid creating connections to points that are “behind” the query point.

  • New Group parameter on the RBD Cluster SOP to control which points are clustered.

  • New Guide Options on the RBD Guide DOP to control the visualization of guide geometry.

  • The Assemble SOP now exposes the Path Attribute parameter from the Pack SOP.

  • The RBD Bullet Solver SOP now has a dive target with multiple outputs. You can choose to wire in your forces before the solver runs (PRESOLVE) or after the solver runs (POSTSOLVE).

  • Improved slow code paths that could be encountered when unpacking packed fragments. This can be several times faster depending on the scenario.

  • Voronoi Split now supports transferring vertex attributes when Transfer Attributes to Interior Surfaces is enabled. This allows vertex attributes to be transferred correctly in Voronoi Fracture, RBD Material Fracture, etc.

What’s new in Houdini 19