Fast Automatic Skinning Transformations

Alec Jacobson, Ladislav Kavan, Ilya Baran, Jovan Popović, Olga Sorkine-Hornung

100 armadillos deformed in real-time at 30fps

We present a method to automatically determine 2D and 3D skinning transformations from a sparse set of controls. We achieve high quality deformations by minimizing a nonlinear energy function, while keeping our algorithm extremely fast: skinning transformations for 100 individually animated armadillos (86k triangles each) are computed at 30fps on a single CPU core.


Skinning transformations are a popular way to articulate shapes and characters. However, traditional animation interfaces require all of the skinning transformations to be specified explicitly, typically using a control structure (a rig). We propose a system where the user specifies only a subset of the degrees of freedom and the rest are automatically inferred using nonlinear, rigidity energies. By utilizing a low-order model and reformulating our energy functions accordingly, our algorithm runs orders of magnitude faster than previous methods without compromising quality. In addition to the immediate boosts in performance for existing modeling and real time animation tools, our approach also opens the door to new modes of control: disconnected skeletons combined with shape-aware inverse kinematics. With automatically generated skinning weights, our method can also be used for fast variational shape modeling.


external links

  • libigl - A simple C++ geometry processing library
  • fast tutorial
  • 3D C++ demo source (on github)
  • accompanying video (with narration)

    fast forward (with narration)

    3D C++ demo

    3d C++ demo source code 3D C++ demo

    example GIF

    ogre with region controls


    We are grateful to Peter Schröder for an illuminating discussion, to Emily Whiting for her narration of the accompanying video, and to Eftychios Sifakis for open sourcing his fast 3x3 SVD code. We thank Scott Schaefer for providing the wooden gingerbread man image from "Image Deformation Using Moving Least Squares". We also thank Bob Sumner, Daniele Panozzo, Sebastian Martin and Bernd Bickel for their feedback. This work was supported in part by an SNF award 200021_137879 and by a gift from Adobe Systems.