### Summary This paper describes a method for introducing auxiliary joints to a skeleton and automatically determining weights for all joints given a set of example meshes representing desirable poses of a character. ### Problem Interactive applications require skinning algorithms that are fast and operate on a compact set of data. However, the most common method for this, linear-blend skinning, does not allow for subtleties such as muscle bulges and falls prey to a number of artifacts such as the candy wrapper effect. ### Solution By introducing auxiliary joints in to the skeleton, problems such as the candy wrapper effect can be solved. They can also allow for subtleties such as muscle bulges. Placing these auxiliary joints and providing proper weights is incredibly difficult, however. This paper describes a method whereby desirable auxiliary joints and their associated weights can be determined automatically given a set of examples. The example set consists of the mesh created/modified manually for a particular pose. For each pose in the example set, a default set of joints are placed in the desired position by the animator. As an example, the system can detect large orientation changes between joints and insert auxiliary joints between them in order to prevent the candy-wrapper effect. Once all of the joints have been determined, the system then solves a bi-linear (in the dress-pose vertex positions and weights) least squares equation to automatically determine weight and vertex positions for the skin. ### Contributions 1. Extensions to linear-blend skinning to prevent the candy wrapper effect and allow effects such as muscle bulge. 2. Method for helping to automate the authoring process for the aforementioned extension to linear-blend skinning. ### Questions, Comments, Flaws The only potential problem I see with this method is that when solving for weights, there is no method used to guarentee that all weights are non-negative. This could lead to some weights which are greater than 1 and others that are less than 0 which is undesirable.