Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section
Column
width50%

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.

UI Text Box
typenote

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.

UI Text Box
typeinfo

Note that the Active Body Solver node sets up global simulationparameters, 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.

UI Text Box
typewarning

Currently, the Active Bodies simulation supports interaction between scene geometry and the Liquid Simulator.

Interaction between Active Bodies and the Fire/Smoke Simulator is not yet supported.

Column
width50%

...

Section
Column
width50%

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.

UI Text Box
typetip

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 values 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.

Column
width5%

 

Column
width45%

...