Rigid Actors
Rigid actors represent non-deformable bodies. They serve as standalone dynamic or static objects and as the building blocks for more complex constructs such as articulated bodies.
A rigid actor's state is fully described by a position (Real3) and an orientation (Quaternion), and solution updates can be parameterized in terms of 6 independent degrees of freedom (DoFs; 3 translational and 3 rotational).
Static vs. Dynamic
Certain rigid actors can have their positions prescribed directly by setting the isStatic / is_static flag.
Static actors may still act as colliders for other actors, but they do not respond to contact reactions or other external forces.
While the term "static" may suggest that static actors are stationary (and this is often true), they can still move with nonzero velocity if their prescribed positions are updated at each time step.
Common use cases for static actors are environmental obstacles such as ground planes, walls, tables, and similar.
The remainder of this page is concerned with modeling dynamic rigid actors.
Formulation
Continuous Model
Let be a rigid body's volume in a reference configuration. Its mass and center of mass are
where is the mass density field and is a material point in the body.
For the remainder of this discussion, use a body frame centered at the center of mass, with axes aligned with the actor's local frame, and define the body-frame offset .
Let be the world-space center of mass and let be the world-from-body rotation, which is also the rotation of the actor's worldFromLocal transform.
The position is the world-space image of the centerOfMass parameter and, in general, differs from the translation of worldFromLocal.
The mass second-moment tensor in the body frame is
For some vector , the corresponding skew-symmetric matrix is defined by
The body-frame angular velocity then satisfies
Let be the conventional moment-of-inertia tensor about the center of mass. The kinetic energy decomposes into translational and rotational contributions
where
The second form of rotational energy reexpresses the first in terms of the world-space angular velocity . The first form can be recovered from the third by invoking the expression of above and inverting the definition of in terms of .
For a constant world-space force applied at body-frame offset from the center of mass, the external potential contributing to the general dynamics formulation is
where
For multiple loads, these potentials are summed. Other (possibly non-conservative) forces on rigid actors typically arise from interactions like contact or constraints, as documented on separate dedicated pages.
Discretization
Time discretization of the translational term of kinetic energy follows straightforwardly from the generic recipe outlined for systems whose configurations are in linear spaces with configuration-independent mass matrices. The discretization of rotational inertia, on the other hand, involves some nontrivial choices, which are discussed in the remainder of this section.
The first expression for above may initially look like a quadratic form in angular velocity, but is defined in a frame following the body's rotation, which introduces an implicit dependence on rotational state. This emerges as a gyration term when deriving the Newton–Euler equations of motion from variational arguments, and is made more explicit by the second form using world-space angular velocity , where the mass matrix clearly depends on rotational state. The default incremental-potential discretization of rotational inertia in SuperDex Physics is instead derived from the third form, following the approach of Ferguson et al. (2021), but using the Lie algebra linearization of Romanyà-Serrasolsas et al. (2025) to formulate the discrete residual and Newton Jacobian. While the cited references formulate an incremental potential for backward Euler integration of rotational inertia, we generalize this to the implicit stage problem of our unified time integration framework.
At stage , define the discrete rotational velocity by the finite difference
Here denotes this stage difference, not the exact derivative of a continuous rotation trajectory. For an exact rotation rate, right multiplication by gives the skew-symmetric world-frame angular-velocity matrix . Applying the same operation to the stage difference generally also produces a symmetric part. SuperDex Physics therefore decomposes it as
where and are respectively the skew-symmetric and symmetric parts of the left-hand side. Equivalently,
The symmetric term is not an additional physical velocity; it retains the part of the finite-difference rotation velocity that would be lost if only were stored. After each stage, SuperDex Physics stores the pair as its rotational velocity state. For the simplest case of backward Euler, the stage-start rotation and velocity representation are simply the previous completed step's solution: , , and . When generalizing to our unified multistep/multistage framework, the stage-start and completed-step solutions are reconstructed from prior and intermediate states as discussed below.
The stage-start rotation and rotational velocity then define the predictor
The rotational contribution to the stage incremental potential is
where may vary from step to step, but is independent of the stage-end rotation , so it may safely be omitted from the incremental potential. The second equality uses the invariance of under rotational similarity transforms and is helpful for simplifying Lie derivatives used in the implementation.
Solution Reconstruction
Because rotations form a nonlinear Lie group, the linear combinations in the general time integration method are instead evaluated in the Lie algebra relative to a base rotation. For base , the Lie-algebra linear combination of rotations with coefficients is given by
Here is the matrix exponential on , evaluated by the Rodrigues formula: for a rotation vector with angle and unit axis ,