Movable 3D Human Skeleton

Help: Topics

Additional details & instruction about KineMan are provided on this page.

Rotation Axes

The straight red, green, and blue lines in the KineMan viewing area are rotation axes. Each one generally corresponds to one rotational degree of freedom, or equivalently, to one of the currently visible rotation sliders. When you adjust a rotation slider, you can observe a body part pivoting about one of these lines. For instance, when you rotate the full body, it should be relatively clear that the ‘tilt’ angle is associated with rotations about the green axis, and the ‘spin’ angle measures rotation about the blue axis. The association between axes and sliders is indicated by the colored rectangle, at the right or top end of the slider (spin ≡ blue, tilt ≡ green).

When you select & rotate a joint, you’ll see 1, 2, or 3 rotation axes displayed, depending on the joint. Along with the axes, an equal number of joint sliders will also be displayed (to the right of the distance slider, with the gray background). Like the (white) body sliders, the joint sliders will include a colored rectangle at one end, to indicate the associated axis. From the correspondence between slider names & their small rectangle colors, and axis colors, you can determine the name of the motion associated with each axis. For example, rotating the hip around the red axis constitutes flexion or extension.

[Note also when you select a joint, the colored rectangles for the spin and tilt body sliders are ‘turned off’. These sliders can still be used to rotate the body, but the spin & tilt axes are no longer visible; instead, the colored lines are being used to show the joint rotation axes].

As you experiment with various rotations, you may note that some of the axes change direction (when you rotate about a different axis), but other axes remain fixed, no matter what rotations you apply. For example, when you tilt the body, the blue axis changes direction, but adjusting spin or tilt doesn’t change the green axis direction. You can see a similar effect if you adjust the hip joint: of the three axes, the red one remains fixed to the hip bone, but the blue and green axes may change direction, depending on the adduction/abduction and internal/external rotation angles.

For KineMan joint rotations, there’s a consistent pattern in the way the different axes move or remain fixed. [For KineMan body rotations, see below]. For 3DOF joints (such as the main (gleno-humeral) shoulder joint, or the hip joint (ilio-femoral)), the pattern is as follows:

[Since the rotation axes don’t have to be mutually perpendicular, they can't be used as a Cartesian coordinate system; however, they can & do serve as a Cardan (or Euler) angle coordinate system. All of the joints in KineMan have an underlying Cardan angle system, which makes it possible to define their positions precisely as well as practically. It's not necessary to understand the math behind Euler angles to operate KineMan. On the other hand, if you have some background in Euler angles, the pattern described here should be relatively easy to understand.]

The pattern is further characterized by how the axes change direction:

This pattern can be understood as a ‘hierarchy’, in the order Red > Green > Blue (RGB). Under this hierarchy, if you pick one axis and rotate about it, the directions of the other axes will change in all ‘lower’ levels (i.e., to the right)

As a supplement to this pattern, KineMan uses the following convention: the blue axis is usually aligned with the long axis of the distal bone. Then, rotations that move the blue axis tend to ‘swing’ the distal bone, whereas rotations around the blue axis cause it to ‘spin’ (a.k.a. internal/external rotation, pronation/supination, or similar).

The RGB pattern generally holds for all 3DOF joints. For 2dof joints, a ‘sub-sequence’ of the RGB pattern is used, for example:

For 1DOF joints, the axis may be any color: the humero-ulnar (elbow) joint is red, but the radio-ulnar (foream) joint is blue. Blue is generally used when the joint permits rotation about the long axis of the distal bone, as mentioned above.

One important consequence of the RGB pattern has to do with KineMan joystick operation:

The RGB pattern just described holds for most joints, but you should understand that there are several exceptions:

  1. The radio-ulnar joints show a blue axis, but [Alt] isn't necessary, because with 1DOF there’s no confusion.
  2. The acromio-clavicular joint violates most of the rules above. It employs some special techniques to ensure the scapula follows the posterior ribcage, and these interfere with the regular roles for the rotation axes.
  3. The neck and lumbar spine, follow the RGB pattern, but only ‘loosely’. The axes in this case aren't true rotation axes, and the hierarchy breaks down, as rotations about any one axis can affect the others – there’s no priority in the ordering.

For KineMan body rotations, the RGB pattern holds as well, but there are some other exceptions. When moving the body, the red axis is attached to the screen, and is directed perpendicular to it. (The red axis is usually hard to see, because it’s pointing directly at you. However, you can see it if you displace the body axes horizontally or vertically away from the center of the viewing area, thanks to the perspective projection).

In KineMan Pro, you can rotate the body around the red axis. The red axis is related to the blue and green axes using the same RGB hierarchy as defined above. However, the KineMan joystick operation is slightly different: regular operation (without modifier keys), causes rotation about the blue & green axes, and the [Alt] key allows you to rotate around the red axis. (Once again, the mnemonic ‘Alt’ = 3 characters = 3rd axis, is useful).

In KineMan Basic, you can't rotate the body around the red axis. Nevertheless, there’s still a hierarchy: in this case it's simply a ‘GB’ system (i.e., rotating about green can cause the blue axis to change direction). The joystick allows you to rotate about the blue and green axes together; there’s no need for the [Alt] key.

In summary: the rotation axis colors in KineMan aren't arbitrary: rather, they exhibit a consistent pattern of properties and behaviors. Operation of the KineMan joystick is strongly connected to this pattern, so that you can easily move (almost) any joint in the same manner as any other joint.

Degrees of Freedom

In a loose sense, a ‘degree of freedom’ (DOF) refers to one of the ‘directions’ you can move a joint. For example, the glenohumeral joint of your shoulder has three primary degrees of freedom:

In contrast, the humero-ulnar joint of your elbow has one primary degree of freedom (flexion & extension). It’s important to understand, however, that ‘degrees of freedom’ are not the same as ‘directions’. Differences include:

  1. ‘Directions’ is a very vague term. For example, you can move your arm to the left, or you can lift your knee upward, but the effect of these motions on your joints depends on how your body is oriented. For human joint motions, it’s helpful to describe the motions in relative terms, i.e., how one body part moves relative to another. Thus, you can move your arm away from your body (abduction), or you can move your knee in a sagittal plane (flexion/extension) so as to change the angle between femur and tibia, etc. For a joint, degrees of freedom generally refers to relative motion, between the adjacent bones.

  2. A ‘direction’ can refer to:
    1. either of two possible motions along a line (for instance, up or down), or
    2. both of these together (vertical).
    A ‘degree of freedom’ generally refers to the latter: ‘both together’. Thus, the combination of flexion and extension constitutes two directions but only ONE degree of freedom.

It’s also important to understand that degrees of freedom do not refer to the measurement of an angle in degrees! [For instance, don't ever refer to a 30° range of motion as ’30 degrees of freedom’! Although the words are logically correct, they're not 'idiomatically' correct. ]

More specifically, ‘degrees of freedom’ refer to the independent coordinates required to completely specify a position or direction. For example, if you’re using a touch screen, the position of your fingertip as it slides along the screen has two degrees of freedom, which can be specified using Cartesian (x, y) coordinates relative to the screen edges. Note how this differs from ‘directions’: you can move your finger an infinite number of directions, or, to an infinite number of positions.

Generally, a point in physical space is considered to have 3 degrees of freedom, corresponding to the Cartesian (x,y,z) coordinates required to specify its position. It’s not essential to use Cartesian coordinates: you could alternatively express the position using cylindrical (r, θ, z) or spherical (ρ, θ, φ) coordinates. Regardless of the type of coordinates, the number of degrees of freedom remains the same. For a rigid body in space, there are 6 degrees of freedom: 3 to specify the position of one point on the body, and 3 to specify the orientation of the body relative to that point. The orientation is often expressed as 3 rotations: for instance, the orientation of a flying aircraft is often specified in terms of the the yaw, pitch, and roll angles, relative to the earth.

The number of degrees of freedom is reduced whenever motion constraints are present. If you consider your fingertip to be a ‘point’, it has 3 degrees of freedom in general, but only 2DOF while it remains in contact with a touch screen. The touch screen contact is a 1 DOF constraint, i.e., you’re prevented from moving your finger into the screen.

It’s useful to consider a similar case, of moving your fingertip over the surface of a curved object, for example, a ball. In this case, there is once again a 1 DOF constraint, preventing you from moving your fingertip into the ball; thus, the position of your fingertip on the ball surface has two degrees of freedom – this is so even though the ball surface is three dimensional. This makes sense if you consider the analogous case of specifying your global position on the earth’s surface: only latitude and longitude are needed (unless you’re flying, scuba diving, etc).

KineMan represents the position of the full skeleton using 5 or 6 degrees of freedom, depending on which version of KineMan you’re using:

The 5 DOF case is simple to use and understand, and is adequate for most purposes, whereas the 6th degree of freedom introduces more complexity. Note that the reference for full body motion is the thorax, i.e., the rotation values are defined relative the ‘home’ position of the thorax, without regard to the positions of any other joints. Likewise, full body translations are defined to be those of the thorax (measured relative to an origin at your eye).

Joints in KineMan are represented using 1 to 3 DOF – the number and direction depends on the joint. As with the full skeleton, there is one slider control for each degree of freedom. All of the joint DOF’s are rotational – KineMan doesn’t currently implement translational DOFs for joints (despite their importance, for instance, at the tempero-mandibular joint). Hence, a 3 DOF joint (such as the gleno-humeral joint at the shoulder) permits 3 types of rotation. Note that the number of DOFs at a joint is defined by the relative motion between the adjacent bones – this doesn’t change whether you consider both bones to be free in space or for one of them to be fixed.

It may be useful to understand the number of DOFs at a joint in terms of the constraints: For instance, a 3 DOF ball & socket joint can be understood as follows:

total DOF for two independent bones in space 12 (2 bones x 6 DOF per bone)
debit for considering only relative motion -6 constraint DOFs
debit for ball & socket joint -3 constraint DOFs (ie, 3 translations are prevented)
Net 3 actual DOFs

KineMan currently implements more than 75 DOF in total among all joints (of which over 60 are 'unique', when you discount left/right symmetry). Unfortunately, it doesn’t currently allow all possible human joint motions. Joints within the hands and feet are a priority, but aren't yet available simply due to the significant effort required, to implement more than 40 additional (unique) DOFs. Apart from these, the DOF available in KineMan have been selected & prioritized using multiple criteria, to focus on the following

For some joints, different DOF can be defined, corresponding to different coordinate conventions. For example, the acromio-clavicular joint can be configured to define DOFs relative to the cardinal planes [1], but research literature sometimes uses motions relative to alternative axes, along the plane and spine of the scapula [2]. KineMan follows the latter convention, allowing the measured & published ranges of motion to be used directly, i.e., without requiring additional coordinate transformations.

An important notion related to degrees of freedom is the concept of euler ‘sequences’, i.e., the order in which the rotational degrees of freedom are applied, when a body is rotated to a position ‘between’ (or, in a combination of) the independent degrees of freedom. For more info, stay tuned for a future writeup on Euler angles.


  1. Neumann, Kinesiology of the Musculoskeletal System, 2nd Ed (ch 5).
  2. Ludewig, et al., 'Three-dimensional Scapular Orientation and Muscle Activity at Selected Positions of Humeral Elevation', Journal of Orthopaedic & Sports Physical Therapy, 24:2, Aug 1996.


Distance vs. Zoom

In KineMan, a Distance slider is provided to make the objects appear larger or smaller, instead of a conventional Zoom slider. This approach makes it possible to use physically meaningful position measurements. For example, if the distance slider’s numeric readout says 5.0 (meters), KineMan appears the same size as a physical human (full grown, ≈1.8m tall) at that same distance. This isn't possible using a Zoom scale – zoom is normally defined as a simple, unitless multiplier, e.g. ‘2x’, to represent the case where an image has been enlarged to twice its original size. The problem arises because the ‘original size’ can be any value – it doesn’t have to have any connection with physical distance.

A more subtle difference between distance and zoom is caused by viewing a perspective in 3D: if you consider two objects in the same view, one near, one far, the proportion of their size changes with distance, when you view them in 3D. A zoom control, on the other hand, usually only enlarges the objects, keeping the size proportions the same. The following figures demonstrate this idea: the Figure 1 is for reference, Figure 2 shows the effect of enlarging a 2D copy of Figure 1, as is done with most Zoom controls; Figure 3 shows the effect of changing distance, using KineMan. As you can see, the skulls are effectively the same size, but the hand is significantly larger in Figure 3, owing to the use of proper 3D perspective.

KineMan at original position
Figure 1. Original View
KineMan at 5x zoom
Figure 2. 5x Zoom (2d enlargement)
KineMan at 20% distance
Figure 3. 20% distance (3D perspective)

From these figures, it should be clear that the Distance control in KineMan doesn’t behave the same as a conventional Zoom control. Hence, the alternative terminology.

As you might have surmised, there are some assumptions required to make this work. The size of your monitor, as well as its distance from your eyes, are two key parameters required to express KineMan’s size in terms of distance. The distance calibration in KineMan currently assumes a screen 0.2m high, positioned about 0.7m from the eyes. If your monitor size or eye-to-screen distance differs, the distance calibration in KineMan may be inaccurate. However, what actually matters is the ratio of these parameters: 2/7, or ~ 0.29. If your monitor size is 0.3m, but your eye-to-screen distance is about 1.0m , the calibration will be close. Ultimately, however, the calibration depends on KineMan’s physical size. That is, if your monitor is large and close to your eyes, KineMan will appear larger or closer than its nominal 1.8m height would suggest. So, accurate calibration isn't essential. (On the other hand, if you desire precise calibration, a custom distance calibration widget is planned for a future edition of KineMan).

[Note; the distance calibration may be incorrect, if you're using Windows and Firefox. Windows allows you to increase the size of text & other items, e.g., to 125% of its normal value. This Windows setting is used within Firefox to change the size of graphics elements, with the result that the distance calibration may be incorrect. You can correct the calibration by using the Firefox's zoom control (main menu>View>Zoom). For example, if your Windows text size is 125%, set the Firefox zoom to 80%: Under the Zoom menu, press Reset & then Zoom Out, then Zoom Out again. (to change from 100% to 90% to 80%). Of course, this all presumes that your screen size & distance follow the 0.29 ratio above. Any other value will cause additional discrepancies].

A related parameter is the location of the ‘zero’ distance point, which may become relevant when you’re examining KineMan at close distance. KineMan currently defines zero distance at point in the middle of the ribcage, as shown by the intersection of the red, blue, and green axes when full skeleton movement is enabled. [This point is more or less arbitrary: it actually represents the geometrical centroid of all the spatial points used to define the the ribcage; note that this is not the same as the center of gravity, of either the ribcage or the full skeleton].

Bone & Joint Hierarchy

KineMan is currently composed of 160 bones (or identifiable parts). KineMan Basic (our free edition) includes 39 joints. Some of the bones are connected rigidly to each other, forming 'groups': the skull, thorax, hands, feet, and mandible [1]. KineMan Pro (our subscription edition) provides articulated hands, instead of rigid ones, offering 18 additional joints each, and articulated feet, offering 17 joints each. Following is an organized list of the bones and joints, showing their relation to each other. Contents of the groups are listed thereafter.

Every joint has an associated distal bone, so these are listed as together, e.g. ‘sternoclavicular joint / clavicle’. Indentation of text indicates a serial connection, e.g., the acromio-clavicular joint (indented relative to the previous line) connects the clavicle to the scapula. Joints sharing the same indentation share the same parent bone or group. 'L/R' indicates that the bone or joint appears as either Left or Right; this designation is inherited by all bones or joints lower in the hierarchy.

[1] The Occiput-C1 joint cannot be independently moved - it can only be moved as part of the neck group.
[2] 'Mandible' is used as the name of a group, and as a bone within that group; the mandible group includes the mandible bone + lower teeth as well.
[3] The L5S1 joint cannot be independently moved - it can only be moved as part of the lumbar spine group.
[4] The coccyx is omitted in the current version.

[Note that this hierarchy defines the organization of linkages specifically for use by KineMan; it doesn’t necessarily reflect the groupings normally used for kinesiological or biomechanics study. For example, for KineMan operation, the humero-radial joint is absent, and the proximal & distal radioulnar joints are combined into a single entity].

Bone group contents:

Group Contents
Skull (L/R, 2 each): parietal, temporal, ethmoid (orbital & cribriform plates***), maxilla, palatine, zygomatic, lacrimal, teeth (upper); 3 nasal conchae
(non-L/R: 1 each): occiput, frontal****, sphenoid, nasal, crista galli, vomer, ethmoid (perpendicular plate etal***)
Thorax 24 ribs, 12 T vertebrae, 1 sternum
<Basic edition>
1 each: hamate, lunate, capitate, scaphoid, trapezium, trapezoid, triquetrum, pisiform; 5 metacarpal, 14 phalanges
Proximal carpus
<Pro edition>
1 each: lunate, scaphoid, triquetrum, pisiform
Central pillar (of hand)
<Pro edition>
1 each: hamate, capitate, trapezium, trapezoid; metacarpals 2 & 3
Foot 1 each: talus, calcaneus, cuboid, navicular; 3 cuneiform, 5 metatarsal, 14 phalanges, 2 sesamoid
Metatarsal 1
<Pro edition>
1 metatarsal, 2 sesamoid;
<Pro edition>
1 each: navicular, cuboid; 3 cuneiform; 4 metatarsal
Mandible 1 mandible (bone), 2 teeth lower (L/R)

*** The ethmoid bone in this set is split into distinct parts, including the orbital and cribriform plates, plus 'perp' ( perpendicular plate) and 'repg' (lamina perpendicularis pars repugnante).
**** A portion of the frontal bone is this set shows as 'sinf' (for 'sinus frontalis').