Houdini 22.0 MPM

Destruction: Post fracturing and deforming pieces

On this page
Western Pacific Train from Jesper Landin

Overview

The MPM Post-Fracture node fractures renderable geometry based on the result of an MPM simulation. It uses the final frame of the simulation to detect where the material bends or breaks, and then fractures the geometry in those areas. This allows the renderable geometry to match the motion and deformation of the simulation while keeping all of its original attributes.

The MPM Deform Pieces node then transfers the motion from the MPM simulation to the fractured geometry. Before using this node, the geometry must first be fractured with MPM Post-Fracture, once you are satisfied with the simulation.

Before MPM Post Fracture and MPM Deform Pieces

After applying MPM Post Fracture and MPM Deform Pieces

This workflow may feel different from the traditional RBD workflow. With MPM, you first create a simulation that behaves the way you want. Then you use the final frame of the simulation to fracture the geometry. Finally, you apply the motion from the simulation to the fractured pieces.

In traditional RBD workflows, geometry is fractured before the simulation begins, and the simulation determines how the pieces move. With MPM, the material is simulated first as a continuous object. Fractures are then created afterwards based on where the material stretched or broke during the simulation.

This method allows fractures to appear exactly where the material actually breaks in the simulation instead of using predefined fracture patterns. However, if the simulation changes, the geometry must be fractured again.

You must always set an End Frame on the MPM Post-Fracture node. This node evaluates the final frame of the simulation to determine where fractures should occur.

Note

You must always set an End Frame on the MPM Post-Fracture node. This node evaluates the final frame of the simulation to determine where fractures should occur.

Warning

The deformation gradient F needs to be cached for the destruction workflow. It is not by default. To do this, turn on the Deformation Gradient (F) checkbox on the Output tab of the MPM Solver.

Typical workflow

A typical destruction workflow using MPM Post Fracture and MPM Deform Pieces follows these steps:

  1. Run an MPM simulation and adjust the dynamics until the material behaves the way you want.

  2. Use the MPM Post-Fracture node to fracture the renderable geometry where the simulation shows the material stretching or breaking.

  3. Use the MPM Deform Pieces node to transfer the simulation motion to the fractured geometry so the pieces follow the simulated movement.

MPM Post Fracture

After setting the End Frame on the MPM Post Fracture node, you can temporarily turn off the Perform Fracture checkbox while adjusting parameters. You will still see guides to give you a general idea of what you're generating, but you don’t have to pay the cost of fracturing the geometry every single time you change a parameter.

The Global Scale parameter is another time saving feature, since all of the parameters are scale dependent. For example, if you set up this node for a building to fracture with a specific look, you can apply the same setup to another asset with a different scale. You can get the same look for the fractures and same details for the cracks by using this multiplier to adjust everything to scale.

The node uses deformation information from the MPM simulation to determine where the material has stretched or started to tear. These areas usually correspond to places where the MPM particles have large deformation or plastic stretching.

The node uses the deformation information from the MPM simulation to determine where material has stretched or started to tear. These areas usually correspond to places where the MPM particles have large deformation or plastic stretching, indicating that the material is failing or separating.

During the simulation, MPM particles track how much they deform compared to their original shape. This stretching can be visualized using the jp attribute. Areas where jp becomes larger indicate where the material is stretching or starting to break, and these regions are used to guide where the geometry is fractured.

Configure your fracture

There are three steps (tabs) to configure your fracture: Pieces Selection, Fracture Points, and Cutter Geometry.

1) Pieces Selection

The first step is to define which pieces are eligible for fracturing on the Pieces Selection tab.

You can set the minimum length for a piece to be considered for fracturing. Pieces smaller than this value will be ignored. This prevents unnecessary fracturing of very small geometry that would not affect the final result.

If you turn on Show Guides, pieces large enough to fracture will be outlined in green, while pieces that are too small will appear in red.

2) Fracture Points

The second step is to define what MPM points will be used to generate the fracture pattern on the Fracture Points tab.

The node selects candidate points based on how much the material is stretching. This is controlled by the Minimum Stretching parameter. Lower values allow more points to create fractures, while higher values restrict fractures to areas with stronger deformation.

These candidate points act as centroids for fracture pieces. However, using only these points can sometimes produce very long or elongated shards. To avoid this, the node can generate additional points called Filler Points.

Turning on Align Fractures to Stretch Points is particularly useful when fracturing materials such as metal or thin objects, where cracks need to align closely with the direction of tearing. Instead of using the stretching points selected by the Minimum Stretching parameter directly as fracture centroids, the node uses their immediate neighbors to generate the fracture piece centroids. This helps align the fractures with the direction of the simulated tear, and produces a more accurate fracture alignment because the pieces are created on both sides of the simulated crack rather than directly on top of it.

Fracture crack before turning on Align Fractures to Stretch Points

You can see that the area in green fractures as expected, with one point per piece. The area in red shows isolated points with no neighbors next to them. This creates floating pieces, as you don’t know which direction the piece will fold, so the generated crack might look unnatural.

Fracture line after turning on Align Fractures to Stretch Points

With alignment turned on, fracture centroids are placed on neighboring points rather than directly on the stretch points themselves. This allows fracture pieces to form on both sides of the simulated crack so the crack opens more naturally.

This behavior is especially important for materials that tear along thin surfaces, such as metal sheets or stretched materials. For more brittle materials like concrete, the difference may be less noticeable.

The white points shown in the example above are not MPM particles, but filler points added around the fracture region. These points increase resolution so the geometry can bend and flex more naturally and avoid very long pieces that may deform poorly. Increasing Filler Points adds more of these points, resulting in higher fracture resolution, smoother bending behavior, and more natural fracture patterns near the fracturing regions.

You can also prevent points that are extremely close together from both being used as fracture centroids. Points that overlap too closely can slow down fracturing and may create unstable geometry.

3) Cutter Geometry

The final step is the Cutter Geometry tab.

If the Cutter Method is set to Boolean, you can adjust parameters to add surface variation and detail to the fracture surfaces. These options allow you to add noise or variation to make the interior fracture faces look more natural.

Tip

When working with large assets, fracturing the entire model can take a long time. A useful workflow is to temporarily isolate a single piece, adjust the fracture parameters on that piece, and then apply the same settings to the full asset.

MPM Deform Pieces

This node lets you choose how the MPM dynamics are applied to the fractured geometry through the Retargeting Type. It can be used as part of the destruction workflow, or without the MPM Post-Fracture node. It takes the fractured geometry and the MPM simulation as inputs and retargets the motion of the MPM particles onto the geometry so the pieces follow the simulated dynamics. The Retargeting Type controls how this motion is applied.

Piece (Transform)

This method applies a rigid transform to each fracture piece. The node finds the nearest MPM particle and copies its transformation to the entire piece. This works well for brittle materials that break into clearly separated chunks, such as a smashed watermelon. However, if the material is still deforming slightly, using a single transform per piece may create visible cracks between pieces.

Point (Deform)

This method ignores the fracture pieces and deforms the geometry at the point level. Each point follows the motion of its nearest MPM particle in the rest configuration. This produces smooth deformation without cracks, but it may cause excessive stretching This mode is also often useful for debugging.

Piece + Point

Fracture pieces initially move using the rigid transform from Piece (Transform). When a piece stretches beyond a certain amount, the node smoothly switches to point-level deformation similar to Point (Deform).

This behavior is controlled by the Stretch Ratio Tolerance parameter, which defines how much deformation a piece can undergo before switching from rigid piece transforms to point-level deformation. Lower values cause the transition to occur sooner, while higher values allow pieces to behave more rigidly for longer. A value of 0 behaves the same as Piece (Transform), while very large values behave like Point (Deform).

When configured correctly, this hybrid method keeps pieces rigid where the material breaks while still allowing smooth deformation in areas that only bend slightly.

Depending on the type of material being simulated, you may need additional adjustments. For example, concrete often shows small cracks before fully breaking, which can look natural. However, for materials such as metal, these small gaps can appear unrealistic. In these cases, turning on Close Gaps can help close cracks that appear when a piece transitions from deforming to transforming. This is especially useful when simulating plastically deformable materials like metal, where the material can stretch significantly before actually tearing.

Close Gaps turned off

Close Gaps turned on

When Close Gaps is turned on, the node evaluates the difference between the point-level deformation and the piece-level transform for each point. If the difference is small enough, the point continues using the deformation-based position instead of switching to the rigid piece transform. This helps close small cracks that would otherwise appear between pieces.

The Close Gaps Tolerance parameter controls when gaps are closed. Larger values allow more aggressive gap closing, while smaller values allow more cracks to remain visible.

The Transition Width parameter controls how gradually the transition occurs between the two deformation modes, helping prevent popping between frames when cracks open or close.

Note

You can also use this node without fracturing the original asset. For example, you can generate new geometry or instances near the MPM particles and use this node to drive their motion from the simulation. This can be useful for instancing debris, proxy geometry, or other objects that should follow the motion of the MPM simulation.

MPM

Getting started

Additional features

Post-processing

MPM Configure examples (shelf tools)

Reference

Advanced