
 
on a supercomputer). Our approach, which is in-
spired with the techniques of computer graphics, 
attempts at bringing a compromise by representing a 
muscle with a surface mesh that quickly deforms. 
Most popular computer graphics methods for de-
formation of the surface mesh are based on mesh-
skinning technique, e.g., in (Blanco et al., 2008), that 
binds a mesh to the underlying skeleton so that 
change of this skeleton produce a smooth non-rigid 
deformation of the mesh. However, these methods 
often fail to preserve the volume of the object being 
deformed, e.g., (Ju et al., 2005), and they do not 
induce impenetrability between objects, which is 
undesirable for our purpose. 
Shi et al. (Shi et al., 2007) proposed an approach 
in which, for each vertex of the mesh, an equation 
describing the energy of this vertex derived from its 
position is formed and the approach tries to succes-
sively reposition vertices to minimize the total ener-
gy. Each time the intersection between two meshes 
is detected, a new equation describing the impulse 
force at the intersected area is added into the system. 
Our approach is similar to the one by Shi et al. 
The most significant differences are as follows. To 
speed up the process, we do not minimize the energy 
of the original mesh but of a coarse mesh and then 
transfer the computed values to the original mesh. 
We solve the intersections locally because this gives 
us a better control than the impulse force approach.  
3 DEFORMATION METHOD 
Bones, action lines, and muscles are positioned in 
the rest pose (RP), which is the initial position for 
the deformation algorithm. For bones and action 
lines also their final position, called current pose 
(CP), is available. To get a muscle from RP into CP, 
the deformation of the muscle has to be provided. 
An example can be seen in Figure 1.  
a) 
 
b) 
 
c) 
 
Figure 1: Position of bones (pelvis and femur) and shape 
of the gluteus maximus: a) muscle and bones in RP; 
b) bones in CP, muscle in RP; c) muscle deformed to CP. 
The original method is based on algorithm de-
scribed in (Huang et al., 2006). For each muscle, its 
outer hull (a low polygon coarse mesh) is needed. 
Mostly it is loaded from the pre-computed database; 
if not available, the hull is computed by the progres-
sive hull decimation algorithm (Cholt, 2012). This 
coarse hull is used to get an initial approximate solu-
tion, which is then refined by a final few iterations in 
which the original mesh is used. This strategy saves 
both memory and computational power.  
The deformation algorithm as described in 
(Kellnhofer et al., 2012) defines constraints to pre-
serve the shape of the muscle, its main deformation 
direction and its volume. From these constraints the 
over-constrained linear system with non-linear 
boundary constraint of volume was mathematically 
derived. We solve the equations iteratively using 
Gauss-Newton method with Lagrange coefficients. 
In each iterative step, a new position for every ver-
tex of the mesh being processed (either the coarse 
hull mesh or the full mesh) is computed, after which 
the intersection corrections are applied to avoid 
mutual inter-penetration of meshes. 
3.1 Solving Intersections 
During the whole deformation, computation inter-
sections are solved on two levels. In each iterative 
step, it is checked, if the deformation has not moved 
the mesh vertices too far. Because it profits from the 
knowledge of the previous vertex position and its 
motion, it is called dynamic intersection. As can be 
seen in Figure 2, if any vertex is found to lie inside 
an obstacle, the adequate triangle of the obstacle in 
the direction inverse to the vertex motion direction is 
detected and the vertex is moved to the boundary of 
the obstacle (on the detected triangle) – left gray 
point in Figure 2; or to its previous position, if the 
vertex has been already inside the obstacle before 
the deformation step – right gray point in Figure 2. 
a) 
 
b) 
 
Figure 2: Dynamic intersection solving schema (colour 
curve represents the obstacle, black curve the deforming 
muscle): a) the original position of vertices (solid line) and 
the intersected vertices after deformation iteration (dashed 
line); b) situation after intersection solving. 
As each vertex of the original muscle mesh is de-
fined as the linear combination of all vertices of the 
hull, the linear mapping is not able to represent a 
larger pit pushed into the original mesh surface and, 
therefore, after all iterations, the final intersection 
check, called static intersection, using full meshes 
must be done to prevent problems.  
GRAPP2013-InternationalConferenceonComputerGraphicsTheoryandApplications
74