Houdini 20.5 Nodes Geometry nodes

MPM Source 1.0 geometry node

Creates MPM particles from a geometry mesh or volume.

On this page
Since 20.5

Overview

The MPM Source defines the material points to be injected in the MPM simulation. This node creates points and sets material point attributes that can be manipulated to add variation on a per-point basis before going into the MPM Solver. It expects a mesh or volume that describes the geometry you intend to simulate with MPM as its first input.

Inputs

Geometry to Fill with Particles

The mesh or volume source geometry to fill with MPM particles.

MPM Container

The MPM Container that defines the global resolution of the simulation.

Note

It is possible to skip this connection and provide a node reference to the MPM Container parameter to avoid cluttering the network.

Parameters

MPM Container

Node reference the to MPM Container that defines the global resolution of the simulation.

Note

It is possible to skip this parameter and connect the MPM Container to the second input of this node directly if a wire connection is preferred.

Emission Type

Once

Will emit particles on the first DOP substep of the simulation.

Continuous

Will continuously emit particles on each DOP substep as long as Activation evaluates to 1.

Activation

Integer attribute that defines when to emit particles when Emission Type is set to Continuous.

Segmentation

Partitions the incoming geometry such that each piece is treated as its own source. Each piece will be processed in isolation and will receive a unique sourcename string point attribute.

None

The geometry is treated as a whole and will result in a single sourcename.

Name and Connectivity

Both name and 3D connectivity is used to partition the geometry and generate multiple sourcename.

Attribute to Transfer

Transfer attributes from the incoming geometry to the material points. Primitive and vertex attributes are promoted to point attributes before transferring.

Points from Geometry

Type

Type of point generation to use using the incoming geometry.

Volume

Fill the geometry volume with particles.

Surface

Cover the geometry surface with particles.

Point Separation

Overrides the global point separation defined by the MPM Container. This is the distance between the centroid of each consecutive point filling the provided input geometry.

Jitter Scale

The magnitude of random jitter to apply to each particle scaled by the particle separation.

Oversampling

Packs the points more densely as this parameter is increased.

Tip

This can make the material more resilient against fracturing.

Relax Points

Pushes particles away from each other as a secondary step, to yield better coverage and prevent clumping.

Relax Iterations

The number of iterations of relaxation to do when Relax Points is on. More iterations will more evenly distribute the particles, but can be slower.

Material

Material Preset

Selection of preset materials to quickly get a starting point when setting up a new simulation.

Behavior

Controls the constitutive model to be used on a per-point basis.

Elastic

Purely elastic materials like jello, rubber, and a pool ball.

Chunky

Materials exhibiting both elastic and plastic behaviors like snow, soil, and concrete. Passed a user defined threshold, these materials will accumulate plastic deformation as their new rest state. This will lead to a loss of volume and an increase in density.

Liquid

Liquid materials like water. Only incompressibility is enforced with this constitutive model.

Viscous

Viscous materials like honey. Low viscosity material will behave similar to Liquid.

Sandy

Granular sand-like materials. Can be used to simulate dry and wet sand.

Density

Sets point attribute density. The mass density of the material.

Critical Compression

Sets point attribute c_compress. The lower limit on the Deformation Gradient F's determinant J. This splits the deformation of the material into elastic and plastic contributions.

When the material is not deformed, F is the identity matrix, and therefore J = det(F) = 1.0. If J is smaller than 1.0 - c_compress (compression) or larger than 1.0 + c_stretch (stretching), this difference will become plastic deformation. If J is contained between 1.0 - c_compress and 1.0 + c_stretch, the deformation stays elastic and the material will try to recover from it.

Increasing this values will make the material more bouncy. Alternatively, decreasing it will make the material easily deformable with little bounce back or resistance.

Critical Stretch

Sets point attribute c_stretch. The upper limit on the Deformation Gradient F's determinant J. This splits the deformation of the material into elastic and plastic contributions.

When the material is not deformed, F is the identity matrix, and therefore J = det(F) = 1.0. If J is smaller than 1.0 - c_compress (compression) or larger than 1.0 + c_stretch (stretching), this difference will become plastic deformation. If J is contained between 1.0 - c_compress and 1.0 + c_stretch, the deformation stays elastic and the material will try to recover from it.

Increasing this values will make the material more bouncy. Alternatively, decreasing it will make the material easily deformable with little bounce back or resistance.

Compression Hardening

Sets point attribute hardening. Increases the stiffness E of the material as it is being plastically compressed.

Stiffness

Sets point attribute E. The material’s resistance to deformation. This parameter is called the Young’s modulus in the context of solid mechanics.

This parameter has a huge impact on the simulation speed as high stiffness will require very small timesteps to keep the simulation stable.

Tip

For stiff materials like metal and concrete, it is recommended to reduce this parameter as much as possible while still preserving the physical characteristics needed in the simulation. For example, a small chunk of concrete might require less stiffness than a tall building that must support its weight.

Stiffness Multiplier

Powers of 10 to multiply Stiffness.

Volume Preservation

Sets point attribute nu. Perpendicular deformation in reaction to stress applied to the material. This parameter is called the Poisson’s Ratio in the context of solid mechanics.

For example, if a piece of jello is pulled from both sides, the center of the material should shrink on itself on a plane perpendicular to the pulling. The inverse phenomenon is also expected if the jello is being compressed. This parameter drives the intensity of this perpendicular reaction or strain.

Incompressibility

Sets point attribute k. Linear resistance to compression. This is called the Bulk Modulus in the context of incompressible fluids. As the material is compressed, a proportional and opposing force will be applied to prevent the loss of volume.

Tip

For shallow water, this parameter can be decreased to speed up the simulation without noticeable artifacts. On the other hand, large volumes of water will require this parameter to be maintained fairly high to prevent loss of volume and bounciness.

Incompressibility Multiplier

Powers of 10 to multiply Incompressibility.

Strict Incompressibility

Sets point attribute gamma. Exponential resistance to compression. This is called γ (gamma) in the context of the incompressible fluids. As the material is compressed, an opposing force will be applied exponentially to strictly prevent the loss of volume.

Tip

Nearly incompressible fluids require a value of around 7 which might lead to a massive amount of substeps. Weakly compressible fluid relaxes this constraint by using a value of 1 and thus only relies on linear incompressibility (k) which should be faster to simulate at the cost of small temporary compressions allowed.

Viscosity

Sets point attribute viscosity. Forces nearby particles to share similar velocities. Low values will behave like a liquid while high values will appear thick, sticky and similar to a soft deformable solid.

Plasticity

Sets point attribute visco_kappa. Deformation will locally increase viscosity. This can be used to force a viscous material to hold its shape after it has been deformed in place.

Friction Angle

Sets point attribute sand_friction_angle. The internal friction amount between the sand grains. Lower values will allow the sand to flow more freely while high values will make the sand stack and settle more easily.

Cohesion

Sets point attribute sand_cohesion. Controls how sand wants to clump together. This is ideal to simulate wet sand. It is also possible to animate this attribute to make dry sand become wet dynamically.

Initial State

Velocity

Initial velocity of the material.

Pin Constraints

Enable Pin Constraint

Allow the material points to be pinned to a target position.

Note

In some cases, you might want to pin the points during simulation using the dive target of the MPM Solver by setting the pintoanimation integer and targetp vector point attributes manually. Keep in mind that the pintoanimation attribute must exist from the start of the simulation even if it is set to 0. You can achieve this by turning off the Initialize as Pinned parameter.

Point Group

Only affects points within this point group. Expressions such as @P.y<0 could be used to pin points that are below the 0 mark along the Y axis.

Initialize as Pinned

Set the points as pinned from the start. If unchecked, the pintoanimation attribute will still exist but it will be set to 0.

Enable Animation

Outputs the source points on each frame such that they can be animated downstream before being passed to the MPM Solver.

Use Input Animation

Animate the generated material points according to the animation provided as input.

Reference Frame

Rest frame to use to transfer animation from the input to the material points.

Visualize

Display Particles as Spheres

Render particles as spheres in the viewport.

Point Scale

Multiplies the pscale attribute. This is strictly used for visualization and meshing post-simulation. The volume of each particle is always computed using the global particle separation cubed.

Display Pin-to-Animation Guides

Display a blue wireframe sphere around the pinned particles.

See also

Geometry nodes