• Confluence is currently running with all non-system plugins disabled, some functionality may be missing
Child pages
  • Caronte - Rigid and Soft Bodies
Skip to end of metadata
Go to start of metadata

Soft Body Dynamics

Soft bodies include all types of deformable objects. Typical examples are jelly-like substances, clay, thin sheets of metal or soft plastic. RealFlow is capable of simulating these properties in a physically correct and believable way. It is not only possible to deform objects permanently, but the objects are able to adopt their original shape – a phenomenon you know from foamed or rubber materials.

Additionally, soft bodies also have – at least partially – features from rigid bodies. With the appropriate parameters you can easily control an object's rigidity or stiffness, and make it behave less softly. Characteristics like friction or elasticity are also included and it is, of course, possible to add an initial velocity or rotation. A damping parameter is used to regulate the typical wobbling and wiggling you know from soft bodies. This feature can be used for impressive slow-motion simulations with very high FPS rates of 500 or more.

Any polygon object can be turned into a soft body and interact with RealFlow's other solvers. Deformable objects can float on RealWave surfaces, get kneaded in turbulent Hybrido waves, or compressed by rigid bodies.

Rigid Body Dynamics

With this feature it is possible to simulate the behaviour and motion of non-deformable objects. As mentioned above, rigid bodies come in two flavours: The first type is called “Passive rigid body” and describes an object whose motion is not affected by other elements of the scene. It cannot, for example, be moved through collisions with rigid bodies or fluids. This does not necessarily mean that a passive body is motionless, because it can still be animated or deformed. A passive rigid body can also affect the paths of actively moving bodies and fluids. When you take a look at a passive body's “Rigid body” panel you will see that many parameters are not accessible, for example “@ mass” or “@ velocity”. The reason is that passive rigid bodies can be considered objects with infinite mass. As passive nodes they do not have properties like initial velocity or rotation, and they do not require a centre of gravity.



Active rigid bodies, on the other hand, have all degrees of freedom. They can be moved and displaced, have an initial velocity, and a spin. A body's centre of gravity is used to prevent it from tipping over. This feature comes in handy when you want to make objects float, for example a buoy on a RealWave ocean surface.

A very important, common parameter is “Collision side” to determine whether interacting nodes are enclosed inside an object, or bounce from the outside. “Collision geometry” can be changed to a particular type, for example for quick previews or in scenes where most bodies share the same shape, like a cube or sphere.

Finally, there are real physical settings: elasticity and friction. These parameters do not only have a strong influence on a body's behaviour, but also on credibility: a piece of natural rock does not have a high elasticity, but a rather high friction. If your simulation consists of many, nearly identical objects, slight differences in elasticity and friction can be the icing on the cake.

A very common field of application is the use of prefractured bodies to simulate all kinds of destruction, collapsing, or shattering. For this purpose, RealFlow offers several tools and features to break an object into pieces, and reconnect these elements in order to keep them together until a certain event disconnects them again. The so-called “Fracture Tools” provide a total of four methods to create all kinds of fragments: from breaking glass to crumbling concrete, or cracked tiles to splinters. The “MultiJoints” system is used to reconnect the individual pieces, so they can keep their original arrangement and position.


Related content:
Error formatting macro: contentbylabel: com.atlassian.confluence.api.service.exceptions.BadRequestException: Could not parse cql : null