Today there are several commercial musculoskeletal models on the market. These include SIMM, VIMS, AnyBody, and LifeMOD. One of the key differences between the model presented here and the ones currently available is that our model is focused on real-time interaction. By this we mean that there is no obvious delay between user input and model output. Furthermore, these software tools are not used extensively by ergonomists in industry.

There are currently three widely used commercial avatars on the market. These include Jack from UGS, Ramsis from Human Solutions, and Safework. While these avatars are widely used for ergonomic analysis, none have incorporated a musculoskeletal system within their avatar for real-time analysis of muscle forces.

Our goal is to incorporate an accurate musculoskeletal system within Santos™, the avatar currently being developed within VSR. This system will allow for real-time interaction and analysis of muscle forces within a package that is designed for widespread use.


The musculoskeletal model being developed here at VSR models the action lines of the muscle. These action lines are found by using anatomical landmarks to determine the origin and insertion positions of the muscle. Then a wrapping algorithm developed here at VSR is used to wrap the action line around the underlying structures. This wrapping algorithm is similar to the one presented by Charlton and Johnson (Charlton and Johnson, 2001). The key difference is that our model will use floating via points to dynamically wrap and slide about prescribed obstacles that represent the underlying structures that the muscles wrap around in humans.

Our approach makes two assumptions about the action lines. The first is that the action line or lines of a muscle can be modeled as a frictionless elastic string wrapping around prescribed obstacles. The second is that spheres and cylinders can represent the underlying anatomical structures around which the muscle must wrap. The lines being wrapped will then be used to approximate the force lines generated by the muscles.

Denavit-Hartenberg method

Santos’s skeletal frame is represented by a kinematic structure where the joints in the human body are represented by a local coordinate system. This kinematic structure allows Santos to move in accordance with the DH method. The DH method relates the position of a point in one coordinate system to another coordinate system by using a unique transformation matrix.

DH method integration with wrapping

Because Santos uses a kinematic structure that follows the DH convention to do posture prediction and predictive dynamics, the musculoskeletal model that was developed at VSR was modified accordingly. This required that the cylinders around which the muscles wrap, the origin, and the insertion points be converted into DH space. This is accomplished by inserting the cylinder into the kinematic chain by following the proposed rules. By following the DH rules, the cylinder can be placed with its z-axis pointing through the center of the cylinder. The DH parameters are then calculated and the cylinder’s matrix is used in the kinematic chain to calculate the origin and insertion points with respect to the cylinder in DH space.

An example of how the DH method is used to calculate the origin and insertion points in DH space is provided in Figure 1. It is assumed that a four-chain kinematic structure like the one shown in Figure 1 has an origin position indicated by a green point labeled Orig and an insertion position indicated by a red point labeled Ins. This kinematic structure also contains a cylinder in DH space shown as a blue circle with a matrix labeled Mcyl.

The origin position is found with respect to the cylinder in DH space. Similarly, the insertion position is found with respect to the cylinder in DH space. Figure 2 then shows the origin and insertion positions in DH space with respect to the cylinder.

Once the cylinder, origin, and insertion positions are found in DH space, the single- or multiple-obstacle wrapping method was then used to wrap the muscles in DH space.


The current musculoskeletal model in Santos contains 247 muscle action lines. The muscle model can be seen below. A video of the muscles wrapping is also provided.

Ongoing work

The work on the musculoskeletal model continues to evolve. The muscles will be used to predict joint torques given the degree of muscle activation about a particular joint for real-time ergonomics feedback. The musculoskeletal model is also expanding to be used by posture prediction to minimize muscle stretch and joint torque for a given action.

Related publications

Patrick, Amos, and Karim A. Abdel-Malek. "A Musculoskeletal Model of the Upper Limb for Real Time Interaction." 2007 Digital Human Modeling Conference (2007). Print.


Charlton, Iain W., Johnson, Garth R. (2001). "Application of spherical and cylindrical wrapping algorithms in the musculoskeletal model of the upper limb." J. Biomechanics 34, 1209-1216.