Compounds for Position Based Dynamics in bifrost
Created with:
- Maya 2024.2
- Bifrost 2.7.1.1
Set the path to bifrost_lib_config.json as BIFROST_LIB_CONFIG_FILES in the environment variable. For example, to place the bifrost_AkPBD folder on the D drive, enter the following in Maya.env:
BIFROST_LIB_CONFIG_FILES=D:\bifrost_AkPBD\bifrost_lib_config.json
| Category | Name | Description |
|---|---|---|
| Core | verlet |
Calculate next position (include gravity and spring) |
| Core | keep_position |
Pull back to initial position |
| Core | update_velocity |
Calculate velocity from change of position |
| Core | reset |
Reset position and velocity |
| Constraint | distance_constraint |
Distance constraint (one point fixed) |
| Constraint | distance_constraint_2_points |
Distance constraints (2 points can move) |
| Constraint | angle_limit |
Angle limit between two vectors |
| Collision | ground_collision |
Horizontal infinite XZ plane collision |
| Collision | sphere_collision |
Sphere collision |
| Collision | capsule_collision |
Capsule collision (individual radius) |
| Collision | infinite_plane_collision |
Infinite plane collision |
| Collision | mesh_collision |
Mesh collision (*only available in geometry) |
| Collision | mesh_collision_with_bulge |
Mesh collision with bulge effects (*only available in geometry) |
| Utils | distance |
Distance between two vectors |
| Utils | mass_to_weight |
Calculate weight from mass (w=1/m) |
| Utils | normalize_weight |
Normalize two float values (total to 1) |
| Utils | project_onto_plane |
Project a point or vector onto the XZ plane |
| Utils | rotate_vector_around_axis |
Rotate a vector around axis by angle |
Some samples can be accessed from the Bifrost Browser.
| Graph | Description | Compounds used |
|---|---|---|
| boneDynamics | Create the dynamics for one section of bone. One sphere collision and one capsule collision are included as samples. | verlet keep_position update_velocity reset ground_collision sphere_collision capsule_collision distance_constraint distance |
| boneDynamicsAngleLimit | It is a type of bone dynamics. Angle limit have been added to the constraint iterates, and changes have been made to use rotation values for input and output from Maya. | verlet keep_position update_velocity reset sphere_collision angle_limit rotate_vector_around_axis distance_constraint distance |
| hingeJoint | It is a type of bone dynamics. It is achieved by projecting the corrected position and external force vector onto a certain plane. | verlet keep_position update_velocity reset project_onto_plane distance_constraint distance |
| meshCollision | Mesh collision deforms the mesh. The area around the contact point will bulge. *Only available for mesh. | verlet keep_position update_velocity reset mesh_collision_with_bulge |
| rope | Create a rope with dynamics and distance constraints at 7 points. Points at both ends can be moved. Sphere and capsule collisions are included. | verlet keep_position update_velocity reset ground_collision sphere_collision capsule_collision distance mass_to_weight distance_constraint distance_constraint_2_points normalize_weight |
| softMesh | Create dynamics to the vertices of a mesh. There is weighting by vertex color. One sphere collision is included as a sample. | verlet keep_position update_velocity reset sphere_collision |