Share

collider

Colliders are obstacles to the flow of a Bifrost simulation. You can use them to form a barrier around which smoke must flow, or create a basin that prevents particles from falling away under gravity. Colliders can be animated to create various effects.

To use this node, plug its output into the colliders input of a simulate node like simulate_aero, simulate_particles, or simulate_mpm.

Inputs

geometry

Connect one or more geometric objects to act as obstacles. These can be points objects, meshes, or volumes.

General

These settings apply to all methods.

enable

Turn off to disable collisions.

method

Whether collisions are based on volumes or meshes.

  • Automatic: Uses volume-based collisions for aero and combustion simulations, and mesh-based collisions for particles and MPM simulations.
  • Volume: Can be used for aero, combustion, and particle simulations. Input meshes are automatically converted to volumes. Input volumes must have a level set (voxel_signed_distance).
  • Mesh_For_Points: Can be used for particles and MPM simulations. Input volumes are not supported with this method.

start_frame

The first frame on which collisions occur.

use_end_frame

Stops collisions on the specified end_frame.

end_frame

The last frame of the simulation.

Common Properties

These settings apply to both volume-based and mesh-based collisions.

detail_size

The size of the smallest resolvable detail in the simulation.

offset

The distance from the geometry surface for collisions, in world-space units. Positive values push the collision surface outwards, and negative values shrink it. However, note that negative values are not supported for mesh-based particle collisions.

inherit_velocity

The proportion of the collider geometries' animated motion that is transferred on collision. A value of 0.0 means no inheritance. This feature is not supported for mesh-based particle collisions.

velocity_estimate

The method used to estimate the point_velocity for animated mesh-based colliders:

  • None: No point velocity is added.
  • FiniteDifference: The point velocity is calculated as the difference in point positions divided by the time step.
  • AbsoluteOrientation: The point velocity is calculated by finding the closed-form rigid transformation between the point positions. If no such rigid transformation exists, use FiniteDifference instead.

Volume Collider Properties

These settings apply to volume-based collisions.

resolution_mode

The method for determining volume resolution:

  • Absolute: detail_size is in world-space units.
  • Relative: detail_size is relative to the size of the collision geometry.

geo_mode

Defines how the input mesh is converted into a volume.

  • Solid: The resulting volume represents the solid interior of the input mesh.
  • Shell: The resulting volume represents the thickened surface of the mesh only.

min_hole_radius

If positive, enables a solid voxelization mode that is robust to self-intersections and small holes. In this mode, gaps and holes with a radius smaller than min_hole_radius will be bridged. Note, in Shell mode this does nothing.

optimal_adaptivity

If enabled then planar and smooth regions are voxelized more coarsely.

refine_nearby_fluids

If this is enabled high resolution is used near this collider.

display_diagnostic

Whether to display of the colliders.

Mesh Collider Properties

These settings apply to mesh-based collisions.

bounciness

The proportion of velocity normal to the collision surface that gets reflected on collision. This affects, for example, how high particles bounce after hitting the ground. The final value is a combination of the bounciness set on the particles and the collider. If both values are 1.0, particles rebound completely and if both values are 0.0, particles do not bounce at all.

friction

The proportion of velocity along the collision surface that is lost on collision. For example if this value is 1.0, particles hitting the ground will not roll and if it is 0.0, particles will roll without slowing down.

roughness

Varies the angle of reflection to emulate collisions on a rough surface. A value of 0.0 represents a perfectly smooth surface.

stickiness

Controls how much particles will adhere or "stick" to the collider. The more stickiness, the more the relative velocity of the particle is reduced, and thus the more it sticks. Stickiness is applied after friction and bounciness.

Outputs

collider

An array of collider geometric objects that act as obstacles

Was this information helpful?