Versions Compared

Key

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

...

Section
Column
width100%

The Active Bodies feature in Phoenix FD allows for two-way interaction between scene geometry and the Phoenix FD simulation.

When an object is selected as an Active Body, the simulation both influences and is influenced by the Active Body's movement. This allows objects such as boats to float over a Phoenix FD ocean simulation and be affected by its waves, or objects placed on the ground to be washed away by flooding waters.

Objects selected as Active Bodies may also be animated in which case they will follow the animation while also being influenced by the Phoenix FD simulation. A speedboat simulation is a great example of this mutual interaction in action - the speedboat is heavily affected by the water while also able to cut through the waves and produce large amounts of foam. You can balance between the influence of the animation and the fluid from an Active Body's right click properties' Original Animation Influence option.

ui-text-box
UI Text Box
sizemedium
typeinfo

The Active Bodies simulation currently supports interaction between scene geometry and the Phoenix FD Liquid Simulator.

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

Mutual interaction between the Active Bodies themselves is not supported yet.

typenote

Phoenix FD 3.99 BETA known issues:

  • Active Bodies in a parent/child relationship may cause double transformations of the cloned Active Body object (e.g. a boat parented to an animated Null – if the Null is animated rather than the boat object itself, the boat clone will inherit the transformation twice).
  • Linking a simulator to an animated Active Body (as in the Ship in the Ocean tutorial) is not supported yet. For now, such setups require the Simulator to cover the entire path of the animated Active Body.

 

UI Button
sizelarge
icondownload
titleDownload Project Files
urlhttps://drive.google.com/uc?export=download&id=1OKdaZDW8KEC_BQvyz1ZX7vCsqExTQhUa

 

 

...

Section
Column
width40%

To add an Active Bodies Solver, go to Command Panel → Create → PhoenixFD → Active Bodies.

Add your scene geometry to the Active Bodies list.

Finally, link the Active Bodies Solver to the Phoenix FD Liquid Simulator from the Dynamics roll-out.

UI Text Box
sizemedium
typeinfo

The Active Bodies Solver is separated from the Phoenix FD Simulator to allow extra flexibility when setting up the simulation. Multiple Liquid Simulators can be set up to use the same solver, or alternatively, you can switch between several Active Body solvers with different settings and geometries with the same Simulator.

Column
width60%

...

Section
Column
width40%

When you start the simulation, the Active Bodies solver will create a duplicate of your object and keyframe its Position and Rotation for every single frame.

A couple of things to note here:

  1. The ship is sinking - this happens because it's Density too high. The Density of the Active Body can be tweaked from the original object's Phoenix FD Properties.
  2. The Center of Mass Gizmo is above the ship's deck, right at the base of the middle mast - this is causing the ship to tilt to the side. Instead of relying on the Active Bodies solver to guess the correct position for the Center of Mass gizmo, its position can be overriden from the Phoenix FD Properties of the original object and tweaked manually.

 

UI Text Box
sizemedium
typewarning

When tweaking the Phoenix FD Properties of an object, take extra care to select the original, source object, rather than the clone. Existing clones are deleted when a simulation is re-started, thus any changes made in the Phoenix FD Properties window of the clone are lost.

Column
width60%

Videoautoplayloop
0001_base_sim0000.mp4
1100%
2100%
3true
4false
5true

...

Section
Column
width40%

To tweak the Density of the active body, right mouse button click on the original object and bring up the Phoenix FD Properties.

You can either manually type an exact value in the Specify Density parameter, or choose one of the provided Density presets.

UI Text Box
sizemedium
typeinfo

The Density of an object is its mass divided by its volume. Different materials have different densities, e.g. Wood is less dense than Water which allows it to float. Objects float above water because the upward force acting on them by the water (called Buoyancy) is stronger than the force of Gravity. How much an object sinks, and how far underwater it sinks before stabilizing depends on the object's density in relation to the density of the fluid it's floating over.

For example: the density of wood is 700kg/m3, or 70% of the density of water (1000 kg/m3). Therefore, assuming the object was a perfect sphere, 70% of it would sink below the surface, and 30% will stay above.

Column
width60%

...

Section
Column
width40%

With a lower density, the object does not now sink entirely underwater.

The erratic spinning of the ship is caused by the incorrectly placed Center of Mass gizmo. Placing the Center of Mass somewhere close to the center of an object would make sense for a sphere but not for a ship which is usually bottom-heavy.

UI Text Box
sizemedium
typeinfo

The Active Bodies 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 a ship, however, 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.

Column
width60%

Videoautoplayloop
0002_tweak_density0000.mp4
1100%
2100%
3true
4false
5true

...

Section
Column
width40%

To tweak the Center of Mass gizmo, select the original object and enable the Override Center of Mass toggle under its Phoenix FD Properties.

For this example, the gizmo is placed at the origin (0, 0, 0).

UI Text Box
sizemedium
typeinfo

The Center of Mass of a real object is a point in space where force can be applied to move the object in a straight line, without changing its orientation. For example: pushing a rectangular plank of wood floating over lake along its center of mass would move it in a straight line. However, pushing the plank along one of its corners would also cause it to tilt or rotate.

Column
width60%

...

Section
Column
width40%

Now that the Center of Mass is placed at the bottom, the ship is no longer capsizing.

It is clear, however, that the specified density is too high, causing the ship to sink too far below the surface.

UI Text Box
sizemedium
typeinfo

There is no magic formula to determine what the density/mass of your Active Body should be. You can try looking up the real-world weight of an object similar to the one being simulated and use that as a starting point.

The behavior of Active Bodies is fairly consistent between low and high resolution simulations so setting things up at a low resolution, where the simulation is fast to compute, is preferable.

Column
width60%

Videoautoplayloop
0003_tweak_centerOfMass0000.mp4
1100%
2100%
3true
4false
5true

...