1. A method of optimizing joint positions of a skeleton, the method comprising: receiving 3D mesh information, skeleton information and linear blend skinning (LBS) weights related to a 3D model; generating a plurality of representative structure preserving deformation exemplars of said skeleton sampled from a manipulation space of all possible skeleton deformations; generating a linear relationship between joint positions and bone translations by constraining the bones to be connected at their respective joints when the bones of each exemplar are rotated; for each bone of each exemplar, fixing a rotation entity while allowing a translation entity to change; calculating an energy entity representing a quality of deformation of the mesh as a function of the rotation and translation; and determining joint positions so as to minimize said energy entity over said plurality of exemplars.