Actor, Rigid, Shape, Body, Soft

Carbon is built on a next generation dynamics architecture where there is no explicit notion of soft bodies or rigid bodies.

There are actuators:

which are dynamic objects that can be constrained.

There is Carbon Shape which can either be solid or deformable and is defined through a mesh with fatness / thickness properties.

And there is Carbon Body, which is a true collision entity based on the relationship between an actuator and a shape.

This design means that every Carbon Body goes through the same collision pipeline. There is no rigid body solver or soft body solver, rather there is a single unified solver.

It also means:

  • A Carbon Cloth is actually, under the hood, a compound of 3 Carbon nodes: 1 Soft, 1 Shape, and 1 Body.

  • A “Rigid Body” is actually a compound of 3 Carbon nodes: 1 Rigid, 1 Shape, and 1 Body. So, multiple Carbon Body nodes can share the same Carbon Shape and multiple Carbon Body nodes can also share the same Carbon Rigid, i.e.

    • An orange can be made of a single Carbon Rigid, a single wedge Carbon Shape and N Carbon Body nodes, associating the same rigid to the same shape with a different local transform.
    • A chain can be made using N Carbon Rigid, N Carbon Body with a single ring Carbon Shape, allowing massive memory consumption reduction, bandwidth collision reduction and massive performance gains…
    • Actuators such as Carbon Rigid and Carbon Actor can be used without a collision shell. They can be used as a skinning bone, as a ghost mechanical part of a jointed structure, as a rigging, picking or puppeteering actuator, etc…

What is a Carbon Actor?

A Carbon Actor is a kinematic frame. Basically, it’s an (animatable) world anchor that doesn’t have collision geometry.

It has animatable position and orientation and infinite mass. It can constrain a Carbon Cloth via Carbon Welding, or be attached to a Carbon Shape via a Carbon Body to form an “Actor Body”.

Additionally, Carbon Actor can also contain points, which are utilized by the Carbon Kinetic Drive node.

To come in future release: Springs, Servos and Rigid Joints (like swing lock, prismatic box joint, spherical joint, etc.) to attach Actors to Rigids/Actors.

Please refer to the All Downloads page for examples of how a Carbon Actor can be used, for example in the following scenes: Actor & Rigid Welding, Cloth Wrap

What is a Carbon Rigid?

A Carbon Rigid is a dynamic frame. It has a position and orientation, a mass and mass box (inertia). It can be constrained to a Carbon Cloth via Carbon Welding, or be attached to a Carbon Shape via a Carbon Body to form a “Rigid Body”.

To come in future release: Springs, Servos and Rigid Joints (like swing lock, prismatic box joint, spherical joint, etc.) to attach Rigids to Rigids/Actors.

Basically, it’s a Rigid Body, as in what people traditionally consider a RB, but it doesn’t have any collision properties, i.e. doesn’t collide with anything.

Please refer to the All Downloads page for examples of how a Carbon Rigid can be used, for example in the following scenes: Rigid Body, Actor & Rigid Welding, Barrel Center Of Mass, Pocket Watch, etc.

What is a Carbon Shape?

A Carbon Shape is a collision geometry, conveniently described by a mesh and completed with additional fatness/thickness attributes. The shape becomes the embodiment of a Carbon Rigid or a Carbon Actor actuator through a Carbon Body node.

A Carbon Shape can be reused, i.e. attached to multiple Carbon Rigid / Carbon Actor, imagine you have a chain of 10000 identical links. So instead of having to create 10k rigids + 10k shapes + 10k bodies, you only need 10k rigids, 1 shape, 10k bodies.

  • If you decide to swap out your chain link geometry, you only have to change it in the 1 shape to update all “Rigid Bodies”.
  • You reduce the number of nodes in the graph.
  • You reduce memory transfer/footprint.

Please refer to the All Downloads page for examples of how a Carbon Shape can be used, for example in the following scenes: Rigid Body, Actor & Rigid Welding, Barrel Center Of Mass. Scenes where a single Carbon Shape is used by multiple Carbon Body: Pocket Watch, Scripted Stacked Rigid Bodies, Scripted “Spawning” Rigid Bodies, Scripted Chain.

Note

The front and back facing geometry and closure of a Carbon Shape are critical in the definition of inside and outside for single sided closed Shape volumes or the definition of front and back layers when the Shape is double sided. See Fatness / Thickness.

What is a Carbon Body?

The Carbon Body is a node associating a collision Carbon Shape with a Carbon Rigid or an Carbon Actor and providing the physical attributes needed in contact constraints generation.

The Carbon Body provides a local transform between the Carbon Rigid and the Carbon Shape, allowing the Carbon Shape to follow the Carbon Body dynamically. The Carbon Body also provides information about friction and restitution material properties. Carbon Body collision can be filtered.

So a Carbon Body attaches a Shape to an Actuator, i.e.

Besides Friction/Restitution and Aerodynamics, the Carbon Body also has Reference parameters, which control the relative position and orientation or the Carbon Rigid / Carbon Actor to the Carbon Shape.

This can be used for example to change where the center of mass is in a “Rigid Body”, as demonstrated in the Barrel Center Of Mass example in the All Downloads section of the documentation.

Please refer to the All Downloads page for further examples of how a Carbon Body can be used, for example in the following scenes: Rigid Body, Actor & Rigid Welding, Scripted Stacked Rigid Bodies, etc.

What is a Carbon Soft?

A Carbon Soft is the deformable actuator instrumented with material maps. It is not exposed at the Plug-in level, but is used in the underlying Carbon library for compound Carbon objects such as Carbon Cloth.