simulate_mpmThe 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.
sourcesOne 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.
collidersZero or more outputs from collider nodes, used to block the flow of particles.
influencesZero or more outputs from influence nodes, used to add forces, change properties, kill particles, etc.
settingsThe output settings of the mpm_solver_settings node.
granular_particlesThe 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.
volumeThe voxelized volume for all the material in the simulation. This contains the voxel_mass_density and voxel_velocity properties. It's generally useful for affecting other simulations. For surfacing, it's recommended to create a level-set from the particles and then a mesh from that instead.
cloth_meshOne cloth_mesh per input make_mpm_cloth.
fiber_strandsOne cloth_mesh per input make_mpm_fiber.
out_collidersConnect to the graph output to visualize the geometry used for collisions.