The Average Rotation node is used for computing average rotations and displacements of a virtual rigid body, which is represented by a number of points in the structure. The corresponding velocities and accelerations are also computed.
 
    If a certain reference point has a given translation up and a rotation 
Θp, then the displacement of any other point 
i can under rigid body assumptions be computed as
 
    where ri is the distance vector from the reference point to point 
i. The equation in this form is valid under the assumption of small rotations. In case of large rotations, the displacement due to rotation is instead described by a rotation matrix 
R:
 
    Here, I is the identity matrix. The rotation matrix is described with a 
quaternion formulation where parameters 
a, 
b, 
c, and 
d are components of a unit quaternion.
 
    In 2D, points can only rotate about the z-axis. The rotation matrix requires only one dependent variable, the rotation angle 
φ: 
    Here, the up and 
Θp are replaced with the sought-after average displacement 
uavg and average rotation 
Θavg respectively. The vector 
Θavg is the axis-angle representation of the rotation. The magnitude, 
||Θavg||, is the rotation angle.