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).