This page provides information on the Active Bodies component.
Chaos Phoenix is a dynamics simulator, which enables you to create fluids like liquids and gases, as well as make objects such as a ship or ice cubes float in water. It can even simulate waves that can carry these objects around, or wash them away.
The Phoenix Active Bodies feature makes this possible, by introducing Rigid Body Dynamics for active body objects.
To use Active Bodies, you’ll need to create an Active Body Solver component, and specify the scene geometry which will partake in the Active Bodies simulation.
Then, in the Liquid Dynamics rollout, enable the Active Bodies parameter, and specify the Active Body Solver node.
Note that by default, all geometries in the scene are Solid and act as obstacles to the Phoenix fluid simulation.
However, unlike Solid obstacles, which stay in place and simply obstruct the movement of the fluid, Active Bodies go further by enabling objects to be pushed by the fluid, or to float over a liquid surface.
Just as the movement of Solid objects can be animated, the movement of Active Bodies can also be animated as well. This way, an Active Body can both follow a trajectory, and at the same time get pushed by the fluid.
You can balance between the influence of the animation and the fluid using the Original Animation Influence parameter, located in the Phoenix Per-Node Properties menu, for any Active Body.
You can also set the density and other Active Body properties in the Per-Node Properties menu as well, for each Active Body object.
Note that the Active Body Solver node sets up global simulation parameters, which affect all Active Body objects in the solver's Interaction list. This is in contrast to the Per-Node Properties, which are unique for each Active Body.
As a result, you can set up several Active Body Solver nodes, each with their own solver settings and set of Active Bodies, so that you can have different rigid body behaviors for each set. Note that only one solver node can be specified in the Simulator's settings, however, so to use multiple you would need to set up an additional Simulator for each solver.
Solver | ab_solver – Specifies which solver will be used for the Active Bodies scene interaction.
Bullet – Uses the Bullet solver for the Active Bodies interaction. Allows for mutual interaction between Active Bodies.
Basic – Uses the legacy basic solver for the Active Bodies interaction. This solver does not support mutual interaction between Active Bodies, but does support Air Drag.
Interaction Steps | timestep_mult – Supported only when the Solver is set to Bullet. Determines how many calculations for the Active Bodies are performed between two consecutive fluid simulation steps - e.g. if the Steps Per Frame option of the fluid Simulator is 4 and the Interaction Steps of the Active Bodies are 10, then the rigid body simulation will do 40 steps per frame. Increasing the value will make the Active Bodies move smoother and increase the overall accuracy of the collisions at the expense of simulation time.
Fluid Dens. Mult. | interaction_mult – Fluid Density Multiplier, allowing you to override the density of the simulated liquid. By default, 1.0 is considered 1000 kilograms per cubic meter (the density of water). Increasing this value will cause the Active Bodies to appear lighter and sink less inside the fluid simulation, and vice versa.
On Earth, an object floats above water because of two forces: Gravity pulling it down, and the Buoyancy of the liquid pushing it up. Depending on the densities of the liquid and the floating object, those forces balance out and the object either sinks (if denser than the liquid it is submerged in) or floats.
Affect by Foam | affect_by_foam – Controls how much the Foam particles will affect the Active Bodies - if set to 1.0, foam particles will push the bodies with the strength applied by the liquid particles. For example, a wave made mostly of foam would accelerate active bodies significantly. On the contrary - if this is set to 0.0, the foam would not affect the movement of the active bodies at all. Lower values of the Affect by Foam tend to work better when the simulation has a lot of foam particles, while higher values might accelerate the active bodies too much.
Collision Margin | collision_margin – Supported only when the Solver is set to Bullet. You can lower this parameter if you have groups of Active Bodies which are in contact with one another and you want to keep them still. If the value is too high, the bodies might start pushing apart for no apparent reason. On the other hand, if the Collision Margin is too low, the simulation will slow down, and also fast moving bodies might start passing through other bodies. If the latter happens and you still need the Collision Margin to be low, you can prevent bodies from passing through one another by increasing the Interaction Steps.
Air Drag | simulate_air_drag – Applies a simple Drag force to slow down the translation and rotation of the Active Body. This option helps stabilize the motion of objects in the simulation. The Air Drag will affect the simulation only when the Basic solver is used.
Jammed Walls as Obstacles | use_jammed_walls – When enabled the Active Body Solver will use the Simulator's Jammed Walls as obstacles for the Active Bodies.
Ground Plane | use_ground_plane, ground_plane – Enables the calculation of a Ground Plane geometry for the Active Bodies simulation. The Ground Plane is infinite in size, and its orientation is based on the rotation of the specified Plane geometry. The Solver expects a Standard Primitive → Plane geometry – other object types will not work with this option, and neither will a Plane object with Modifiers applied to it.
Ground Friction | ground_friction – Controls the amount of friction between the Ground Plane and the Active Bodies. Low friction will allow objects to slide across the ground plane. High friction will slow down both the objects' rotation and movement once they come into contact with the ground plane.
Ground Elasticity | ground_elasticity – Controls the bounciness of the Active Bodies when they hit the Ground Plane.
Include/Exclude list | ielist, iemode – Determines which objects will be ignored or processed by the simulation. Use the radio buttons to switch between Include list and Exclude list. In Include list mode (default), no objects will interact with the simulator unless they are added to the list. When Exclude list is active, all objects in the scene will interact with the simulator unless they are added to the list.
The Active Body Solver will compute the Center of Mass of an object by looking at its volume. To simplify things, an assumption is made that all parts of the object have an equal weight.
In the case of e.g. a ship, this is not true. The masts and sails of a ship make up a large portion of its volume but contribute little to its total mass.
Create Center of Mass – Creates a Center of Mass Gizmo for a scene object. Use this option if you accidentally deleted the Center of Mass Gizmo or would like to reset it to its automatically-computed position.
Destroy Center of Mass – Deletes the Center of Mass Gizmo for a scene object. Using this option is the same as selecting and deleting the gizmo from the Scene Explorer window.
Auto-create dummies | auto_create_dummies – When enabled, a Center of Mass Gizmo is automatically generated for an object when added to the Include/Exclude list parameter. The Center of Mass gizmo is linked to the object in a parent/child hierarchy.
Auto-delete dummies | auto_delete_dummies – When enabled, the Center of Mass Gizmo is automatically deleted for an object when removed from the Include/Exclude list parameter. The Center of Mass gizmo is linked to the object in a parent/child hierarchy.