Share

simulate_mpm

The main compound for the Material Point Method (MPM) in Bifrost. You can use it to simulate a wide variety of physical materials including sand, snow, fluid, cloth, and fibers.

To use this compound, plug in one or more sources (chosen from the various source_mpm and make_mpm nodes), and also plug in a mpm_solver_settings node into the settings port.

The Material Point Method works by tracking a variety of physical properties on particles, which are voxelized to obtain a volume representation of the material at an instant in time. The instantaneous motion of the volume is computed, collided against any colliders, and then used to move the particles and update their properties. This process is repeated many times for a single frame, where each iteration is called a time step. Since the motion is computed from a voxelized representation, the motion of the individual particles is restricted to what can by represented by the volume. This means that the particles do not move according to their individual velocities, but rather the averaged velocity from the volume.

Inputs

sources

One or more outputs from source_mpm_snow, source_mpm_sand, source_mpm_fluid, make_mpm_cloth or make_mpm_fibers. The source_mpm nodes seed particles and produce granular_particles output, make_mpm_cloth produces cloth_mesh output, and make_mpm_fibers produces fiber_strands output.

colliders

Zero or more outputs from collider nodes, used to block the flow of particles.

influences

Zero or more outputs from influence nodes, used to add forces, change properties, kill particles, etc.

surface_material

A material to use for the suface color of the proxy and final output.

displacement_material

A material to use for the displacement of the proxy and final output cloth and shell.

settings

The output settings of the mpm_solver_settings node.

Outputs

granular_particles

The seeded particles created from the source_mpm family of nodes. There will be one object in the array per input material. That is, all the sand particles will be together in an object, all the snow particles together in a separate object, etc. Use split_particles_by_material to split this output into the individual output particles per material.

cloth_mesh

One cloth_mesh per input make_mpm_cloth.

shell_mesh

One shell_mesh per input make_mpm_shell.

fiber_strands

One cloth_mesh per input make_mpm_fiber.

diagnostic_geo

The diagnostic visualization geometry used for the built-in diagnostics (which are used in the diagnostic terminal).

Was this information helpful?