How Tux is shaped
by R. Niehoff
Developers who want to create new characters are probably confused about the way Tux is built. The complete figure is composed of spheres (!) and no texture is used for the surface of Tux. All effects are realised with clever spreading the spheres to ellipsoids and well-balanced material properties.
Tux is shaped by a script in SP format that doesn't show the internal structure. So I will try to clarify this structure. The character consists of a grid of nodes arranged in a hierarchical tree. The hierarchical structure is extremly important. Consider you want to orientate the figure, that is you have to rotate it. Since all transformation functions of OpenGL create a new, local coordinate system based on the matrix of the higher system, you only need to rotate the root node of Tux - all other nodes follow automatically. To rotate a part of the figure, for example the left leg with the left foot and the toes you have to rotate the node that connects the leg with the torso. Those nodes are commonly called "joints".
The following picture shows all nodes of Tux:

You see that it is a quite complex structure. Most of the nodes are abstract, they dont't represent visible parts. The visible nodes are drawn yellow, and they define spheres. So it's typical for these nodes that they are scaled to ellipsoids and described with a set of material properties.
The blue framed nodes are joints. They are empty, for the purpose of external access. Yoe need the joints for keyframes or animations. Remember that an animation is nothing else but the rotation of a body part.
The red framed nodes are "org" nodes. These nodes are used for defining translations and / or rotations bevor the tree branches out. The black framed nodes are intended for defining the base transformations of a branc.
Let's walk through a small part of the tree and begin with the root node t1. The node is empty and the "grip" for all procedures which affect the complete figure, mainly the orientation. r1 ist the main scale node, it defines the common size. The node 46 defines the root of the left leg, it rotates the leg and moves it to the right position at the body. Node 47 is an empty joint for rotation from outside. Node 48 represents the hip, it contains the predefined translations and rotations of the entire leg. As you can see, two spheres (49, 50) belong directly to the hip, they are drawn as rotated and translated in 48. The other parts of the leg start with node 56 etc.
A hint: It's not possible to explain all details of the tree. To find out how a modification affects the shape of Tux, you should experiment. But your trials should be tactical and deliberate. Example: You want a Tux with bow-legs. What's the root for this modification? How do the nodes on this branch work? Which nodes are affected?


See Boris, a character of Tuxracer 1.1. The lazy guy is sitting in a hose, a nice idea. The concave shape of the hose is composed of a few dozens of polygons - impossible to obtain this with spheres or ellipsoids.