AnimatLab allows you to setup different material types that are used to determine how objects interact when thy collide. This allows you to simulate things like how a hockey puck would move on ice vs. concrete, or how an animal would walk in mud vs sand. It also allows you to control the how springy the collisions between objects are. To set the material types you need to click on the 'Edit Material Types' button () on the toolbar or in the Edit menu. This will open the Material Types editor shown below.
There is always at least one material type in the simulation. This material type is initially called Default, but you can change the name to whatever you want. You cannot remove this material from the simulation. You can add new material types by clicking the 'Add Material' button. This will add a new material in the material types list and select that material for editing. While a material is selected you can modify its properties in the Material Properties grid. You can remove a material by selecting it in the material types list and hitting the 'Remove Material' button.
Once you have added new materials and configured them how you want then you will need to setup your body parts to use the new materials. If you click on a part within an organism or structure you will see a Material Type field in the property grid. All parts are set to the Default material type when created. If you want your part to use a new material type you need to go to that setting and right click on it to expand the list of available material types and select the one you want. This will set that body part to use the selected material type.
When two parts collide the physics engine will compare the material types for the two parts and merge them to create a material constraint that will be used to control the behavior of the parts interaction. During the merge it will find the most permissive of the two parameters to include in the constraint. So for example, if you have material type for ice with a very low friction coefficient, and a material type for concrete with a high friction coefficient, then it will choose the coefficient for ice when those two items collide. This same things happens for all parameters of the material type.
The friction coefficient determines the amount of friction force that is applied to retard motion proportional to the tangential force applied to the body pushing it onto a surface. Max Friction is the maximum friction force that can be applied along a given axis. Compliance and Damping control how the bodies interact when they collide. If you want to simulate something falling onto a rubber sheet then would need to decrease increase the compliance to make it more springy and decrease the damping. Maximum adhesion allows you to specify a holding force that tries to keep two parts glued together. When a force greater than the adhesive force is applied to them then they will break apart. Contact slip allows you to define a tangential loss at the contact position. For example, this is a useful parameter to set for the interaction between a cylindrical wheel and a terrain where, without a minimum amount of slip, the vehicle would have a hard time turning. By default, friction tries to set the relative velocity at the contact point to 0. Contact sliding enables you to specify a desired relative velocity between the colliding parts at the contact position. The contact sliding parameter allows you to specify a desired relative velocity between the colliding parts at the contact position. An example of such an application is a conveyor belt, where the belt part itself would not be moving.
It is possible to simulate rolling friction in AnimatLab as well using the material types. This is turned off by default, but to turn it on you need to configure the angular friction coefficients shown below. For example, say you have plane rigid body part type with a concrete material type. It would not have any angular friction coefficients specified. You could then have a ball part type with a new metal material type. If you setup the metal material with angular friction coefficients greater than zero then this will turn on the rolling friction and as the ball rolls on the concrete surface it will gradually slow down and come to a stop. If rolling friction was not turned on for that part then once the ball began rolling it would never stop rolling. Rolling friction allows you to produce a much more realistic simulation of the behavior of round objects like tires, cylinders and balls.
This project was supported by: