Thin Skin Elastodynamics, Study notes of Computer science

Skin is modeled as a 2D hyperelastic membrane with arbitrary topology, which makes it easy to cover an entire character or object. Un- like most Eulerian ...

Typology: Study notes

2022/2023

Uploaded on 03/01/2023

techy
techy 🇺🇸

4.8

(9)

258 documents

1 / 9

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
To appear in ACM TOG 32(4).
Thin Skin Elastodynamics
Duo Li Shinjiro Sueda* Debanga R. Neog Dinesh K. Pai
University of British Columbia
(a) (b) (c) (d) (e) (f) (g)
Figure 1: The skin of a character (a) can be significantly distorted using standard techniques (b), but moves realistically with our method (c).
Flexing a hand (d) realistically moves the skin, along with skin properties like normal maps (e). Our method can also be applied to skin-tight
clothes (f) and animal skin (g).
Abstract
We present a novel approach for simulating thin hyperelastic skin.
Real human skin is only a few millimeters thick. It can stretch
and slide over underlying body structures such as muscles, bones,
and tendons, revealing rich details of a moving character. Simulat-
ing such skin is challenging because it is in close contact with the
body and shares its geometry. Despite major advances in simulat-
ing elastodynamics of cloth and soft bodies for computer graphics,
such methods are difficult to use for simulating thin skin due to the
need to deal with non-conforming meshes, collision detection, and
contact response. We propose a novel Eulerian representation of
skin that avoids all the difficulties of constraining the skin to lie on
the body surface by working directly on the surface itself. Skin is
modeled as a 2D hyperelastic membrane with arbitrary topology,
which makes it easy to cover an entire character or object. Un-
like most Eulerian simulations, we do not require a regular grid and
can use triangular meshes to model body and skin geometry. The
method is easy to implement, and can use low resolution meshes
to animate high-resolution details stored in texture-like maps. Skin
movement is driven by the animation of body shape prescribed by
an artist or by another simulation, and so it can be easily added as a
post-processing stage to an existing animation pipeline. We provide
several examples simulating human and animal skin, and skin-tight
clothes.
CR Categories: I.6.8 [Simulation and Modeling]: Types of
Simulation—Combined
* Now at Disney Research Boston
Keywords: skin, faces, hands, physically-based simulation, con-
strained simulation, Eulerian simulation
1 Introduction
Beauty, in computer animation, is often skin deep. It is the motion
of skin that is finally seen in an animation and a poor skin model
can ruin important details of movement. For example, consider the
animation shown in Fig. 1a in which a character’s surface mesh is
carefully animated to look up and swallow. If one directly applies
detailed skin textures to the mesh, the skin near the base of the neck
does not move when the head is raised, and stretches unrealistically
when the character’s Adam’s apple moves up to swallow, destroy-
ing the illusion of reality (Fig. 1b). Perhaps because of this problem,
important details such as hairs, pores, veins, scars, and tattoos are
often not included in the skin textures of moving characters. Using
the method proposed here, the skin on the neck moves much more
realistically (Fig. 1c).
Part of the problem is that the term “skin” in computer graphics is
usually used to refer to the shape of a character’s external surface,
and all soft tissues beneath. To avoid confusion, we will refer to
subcutaneous soft tissues such as muscles, fat, and tendons that give
a character its 3D shape as the “body” and reserve the word “skin”
to refer to the thin anatomical skin that covers the body.
This anatomical skin in humans and animals is a thin membrane,
2-3 mm thick in most areas, and is especially thin on visible areas
such as the face and hands. Skin has evolved to be in close con-
tact with the body and yet not impede movement by sliding and
stretching over the body with little resistance.
Our goal is to capture these essential features of skin in an efficient
and robust simulation. However, the close contact between skin
and body presents serious difficulties for the usual methods used for
simulating cloth and other thin structures. These methods discretize
the thin structure into a mesh that has to interact with a separate
mesh representing the body, presenting significant challenges for
detecting and handling contact between these intimately osculating
meshes.
We avoid all these problems by using a single mesh to represent
1
pf3
pf4
pf5
pf8
pf9

Partial preview of the text

Download Thin Skin Elastodynamics and more Study notes Computer science in PDF only on Docsity!

Thin Skin Elastodynamics

Duo Li Shinjiro Sueda* Debanga R. Neog Dinesh K. Pai

University of British Columbia

(a) (b) (c) (^) (d) (e) (f) (g)

Figure 1: The skin of a character (a) can be significantly distorted using standard techniques (b), but moves realistically with our method (c). Flexing a hand (d) realistically moves the skin, along with skin properties like normal maps (e). Our method can also be applied to skin-tight clothes (f) and animal skin (g).

Abstract

We present a novel approach for simulating thin hyperelastic skin. Real human skin is only a few millimeters thick. It can stretch and slide over underlying body structures such as muscles, bones, and tendons, revealing rich details of a moving character. Simulat- ing such skin is challenging because it is in close contact with the body and shares its geometry. Despite major advances in simulat- ing elastodynamics of cloth and soft bodies for computer graphics, such methods are difficult to use for simulating thin skin due to the need to deal with non-conforming meshes, collision detection, and contact response. We propose a novel Eulerian representation of skin that avoids all the difficulties of constraining the skin to lie on the body surface by working directly on the surface itself. Skin is modeled as a 2D hyperelastic membrane with arbitrary topology, which makes it easy to cover an entire character or object. Un- like most Eulerian simulations, we do not require a regular grid and can use triangular meshes to model body and skin geometry. The method is easy to implement, and can use low resolution meshes to animate high-resolution details stored in texture-like maps. Skin movement is driven by the animation of body shape prescribed by an artist or by another simulation, and so it can be easily added as a post-processing stage to an existing animation pipeline. We provide several examples simulating human and animal skin, and skin-tight clothes.

CR Categories: I.6.8 [Simulation and Modeling]: Types of Simulation—Combined

  • Now at Disney Research Boston

Keywords: skin, faces, hands, physically-based simulation, con- strained simulation, Eulerian simulation

1 Introduction

Beauty, in computer animation, is often skin deep. It is the motion of skin that is finally seen in an animation and a poor skin model can ruin important details of movement. For example, consider the animation shown in Fig. 1a in which a character’s surface mesh is carefully animated to look up and swallow. If one directly applies detailed skin textures to the mesh, the skin near the base of the neck does not move when the head is raised, and stretches unrealistically when the character’s Adam’s apple moves up to swallow, destroy- ing the illusion of reality (Fig. 1b). Perhaps because of this problem, important details such as hairs, pores, veins, scars, and tattoos are often not included in the skin textures of moving characters. Using the method proposed here, the skin on the neck moves much more realistically (Fig. 1c).

Part of the problem is that the term “skin” in computer graphics is usually used to refer to the shape of a character’s external surface, and all soft tissues beneath. To avoid confusion, we will refer to subcutaneous soft tissues such as muscles, fat, and tendons that give a character its 3D shape as the “body” and reserve the word “skin” to refer to the thin anatomical skin that covers the body.

This anatomical skin in humans and animals is a thin membrane, 2-3 mm thick in most areas, and is especially thin on visible areas such as the face and hands. Skin has evolved to be in close con- tact with the body and yet not impede movement by sliding and stretching over the body with little resistance.

Our goal is to capture these essential features of skin in an efficient and robust simulation. However, the close contact between skin and body presents serious difficulties for the usual methods used for simulating cloth and other thin structures. These methods discretize the thin structure into a mesh that has to interact with a separate mesh representing the body, presenting significant challenges for detecting and handling contact between these intimately osculating meshes.

We avoid all these problems by using a single mesh to represent

both the skin and the body. This results in a new Eulerian dis- cretization of the dynamics of a hyperelastic membrane moving on a manifold. This is in contrast to the Lagrangian discretizations almost universally employed for cloth simulation. In the Eulerian setting the skin mesh is fixed on the body and can be identical to the body mesh. The skin is automatically constrained to move on the body and not separate from it, avoiding the need for contact pro- cessing. Even though the approach is unlike previous work in sim- ulating skin and cloth, it shares many features with texture mapping and is easy to implement.

Contributions. We propose a general Eulerian discretization of hyperelastic membranes, such as skin, moving on a triangulated surface. The mesh can have arbitrary topology, which makes it pos- sible to cover complete and complex characters. Any triangular mesh can be used, which makes it easy to collocate mesh vertices at constraints. We provide a general constraint handling method that serves as a flexible modeling tool for animators. The skin simula- tion is driven by body movement, and hence should be easy to inte- grate with existing animation pipelines as a post-processing stage.

2 Related Work

Because of its importance, a large body of research in computer an- imation is related to skin. We discuss only the closest work here. Due to space limitations we do not discuss work aimed at simulat- ing generic solids, fluids, and cloth; but we refer to closely related techniques in the rest of the paper, in context. Broadly speaking, skin models can be classified as kinematic, example based, or phys- ically based.

Kinematic skin. Perhaps the standard approach to skinning is to compute vertex positions of the skin mesh based on the configura- tion of the skeleton. The most widely used approach is linear blend skinning (or skeletal-subspace deformation) [Magnenat-Thalmann et al. 1988] and its refinements (e.g., [Kavan et al. 2008]).

Example based skin. Example based skinning is attractive since it can provide rich details from physical measurements [Huang et al. 2011; Beeler et al. 2011], animator input [Lewis et al. 2000; Mohr and Gleicher 2003], physical simulation [Kry et al. 2002], mesh animations [James and Twigg 2005], or motion capture [Park and Hodgins 2006]. The main difficulties with this approach are the complexity of acquiring the necessary data and poor generalization, especially to characters that only exist in our imagination.

Physically based skin. With few exceptions, previous work in this area focuses on simulating the deformation of soft tissues of the body and not on how skin moves on the body. Notable exam- ples include generic soft tissues [McAdams et al. 2011], muscles [Teran et al. 2003], and tendons [Sueda et al. 2008]. These meth- ods, as well as those listed earlier, are complementary to our work and could provide the detailed subcutaneous shapes on which our skin slides.

One of the most popular approaches to skin modeling is through passive mass-spring networks attached to muscles that drive the de- formation. The seminal work of Terzopoulos and Waters [1990] on facial animation included deformable skin modeled with a mass- spring network. Similar approaches have been applied to simulating the skin of animals [Wilhelms and Gelder 1997], human hands [Al- brecht et al. 2003], and for general texture mapping [Maillot et al. 1993]. More sophisticated finite element models have also been used. Membrane models have been used to simulate wrinkles [Wu et al. 1996], and for performance-driven animation [Choe et al.

Skin Space Body Space^ Physical Space

Skin atlas Body atlas

Jacobians are shown in red

F

Figure 2: Five spaces involved in representing elastic skin, and the mappings between them. See text for explanation.

2001]. Thin shell models [Qin and Terzopoulos 1996; Grinspun et al. 2003] extend membrane models by including resistance to bending; this could be useful for simulating thicker skin. Gourret et al. [1989], Sifakis et al. [2005] and Lee et al. [2009] model the skin as volumetric soft tissue along with muscles. Using a volumetric approach is advantageous or required for many applications, e.g., skin surgery [Sifakis et al. 2009].

To our knowledge, no prior work in graphics has simulated skin or any thin elastic solid in the Eulerian setting that is the key to our method. The Eulerian setting is standard for simulating flu- ids, but has only recently been used for simulating solids—in 1D [Sueda et al. 2011] and in 3D [Levin et al. 2011; Fan et al. 2013]. Our method significantly extends this work to include 2D mani- folds of arbitrary topology, allows arbitrary triangular meshes in- stead of regular grids, and integrates easily with standard animation pipelines.

3 Methods

3.1 Spaces

Simulating skin is challenging because skin is in close contact with the body and shares its geometry. Yet, the two are physically dis- tinct. To carefully distinguish between skin and body movements we define the relevant spaces first. See Fig. 2. To make things con- crete, it shows an example of elastic skin that completely covers the surface of a torus.

First look at the right hand side of the figure. Physical space is the familiar 3D space in which objects live; its points are denoted x. Body space is the reference 3D space in which we embed the sur- face of the body upon which the skin slides, at time t = 0; points on the surface are denoted X. We assume that the surface is rep- resented as a triangle mesh, for generality. A triangle of the mesh is shown in the figure. While meshes are convenient, it is useful to also have a parameterization of the surface. Body atlas is a collec- tion of 2D coordinate charts that parameterize the body surface; its points are denoted u. We assume that we have an invertible map, ⇡ : u 7! X, between points in the atlas and points on the sur- face. Intuitively, the atlas corresponds to the familiar texture space used in graphics, generalized to shapes of arbitrary topology. ⇡ is called the parameterization. ⇡ ^1 is called the coordinate map and corresponds to the familiar texture map.

Thus E¯ has the same non-zero eigenvalues as E, but simply ignores its irrelevant null space.

We assume that skin is a hyperelastic membrane, with strain en- ergy function W ( E¯). We compute W symbolically as a func- tion of the reduced vertex coordinates ¯^ i , and derive the forces acting at vertex i of the triangle by symbolic differentiation using MapleTM^ [Monagan et al. 2005]. Other derivatives required for im- plicit integration, see §3.5, are also computed symbolically. This is quite efficient, as shown in Section 4, since these computations are performed per triangle, with small matrices. We initially considered optimizing this computation based on additional physical insights, but found it was not worthwhile since it takes a small fraction of the total simulation time. The procedure is also very general, and could be used for any hyperelastic material model that can be expressed algebraically in terms of the reduced deformation gradient.

For example, for St. Venant-Kirchhoff material, the strain energy of a triangle is given by W ( E¯) = A

2 (tr^ E¯) 2 + μtr( E¯ 2 )

where

A is the area of the triangle in skin space (equal to 12 det R ). and μ are the Lam´e constants. Other types of materials can be used if desired [Volino et al. 2009].

The contribution of triangle j to the total force at vertex i is f^ ¯ (^) ij = @W (^) j /@ ¯^ i. We evaluate this quantity symbolically using MapleTM^. By the principle of virtual work, this force is transformed to skin space by Q (^) j and then to the body atlas using the transpose of the triangle’s Jacobian

@ /@u T = (D D 1 u )^

T = D T u D^

T = D T u R^

T Q T

. (4)

Here the triangle index is suppressed for clarity, and the thin QR decomposition of D is substituted. The transformed force in the body atlas simplifies to

f (^) ij = D T uj R^

T j Q^

T j Q^ j f¯^ ij =^ D^

T uj R^

T j f¯^ ij.^ (5)

The total vertex force f (^) i is the sum of the contributions f (^) ij from incident faces j.

3.5 Dynamics

The configuration of the skin is completely determined by the ver- tex values , and the external input x. Therefore the space of all values at mesh vertices is a skin configuration space, and the standard Lagrangian procedure can be used to write the dynamics of the skin entirely in terms of the stacked vector and its deriva- tives. Motion of the entire skin is equivalent to the motion of a point in. The high dimensional space should not be confused with the 3D Euclidean space in which the skin is embedded.

However, there is still the important choice to make whether the value at mesh vertex i, (^) i , is the coordinate of a fixed point on the skin (Lagrangian discretization) or of the skin material that is cur- rently at a fixed point on the body (Eulerian discretization). In the Lagrangian setting the mesh is fixed in the skin and moves on the body during simulation; in the Eulerian setting the mesh is fixed on the body and moves on the skin. We choose an Eulerian discretiza- tion for the reasons discussed in §1.

The generalized inertia (or mass) matrix M is computed as follows. Let be the material velocity of the skin point (which is at body location u in the Eulerian setting). Its velocity in space is then

x ˙ = where def = @x/@u (see Fig. 2). Note that the Jacobian from the body atlas is needed here; the skin has no material velocity in the skin atlas. Then, the kinetic energy of the skin is

T =

Z

A (^) u

T T dA (^) u =

T

✓Z

Au

T dA (^) u

The matrix in parentheses is the generalized inertia M. ⇢ is areal density and A is area.

The Jacobian = D (^) x D u 1 is constant within each triangle. Com- puting it is straightforward; D u 1 is also constant in time (and can be precomputed). We approximate the velocity to be constant in each triangle j, with (^) j = (^13)

P

i 2 vert(j) i^. Then the inertia con- tribution of triangle j is

M (^) j = (^) j Tj (^) j. (6)

Here (^) j is the mass of the skin in triangle j; this scalar value is easy to compute using the density and vertex values in skin space (already available from the elasticity computation in §3.4).

Vertex inertias are computed by adding 1 / 3 the inertia of each in- cident triangle. These 2 ⇥ 2 vertex inertias are assembled into the global block-diagonal inertia matrix M.

After time discretization using the linearly implicit method widely used in graphics [Baraff and Witkin 1998], we get ✓ M + h 2

@f @u

˜(k+1)^ = M (k)^ + h(f (k)^ + b (k)^ ). (7)

We use the tilde in ˜(k+1)^ to remind ourselves that this is the mate- rial velocity of the point that was at a mesh vertex at step k, and we will need an advection step to arrive at the final Eulerian velocity (k+1) (^). Also, h is the size of the time step; f is the elastic force (§3.4); b is body force due to gravity or other phenomena (includ- ing the user), applied in the physical space and transformed to the body atlas by T^. To obtain @f /@u, we evaluate @ f /¯@ ¯^ symbol- ically using Maple TM^ , and then rotate and transform it in a similar manner to Eq. (5). Note that M depends on the skin configuration, which gives rise to a “quadratic velocity vector” term in the dynam- ics as well. This is not significant for typical skin movements, so we ignore it. The integration scheme is stable, but adds time-step dependent numerical damping, which is not a significant problem for skin movement. If desired, other types of integration schemes can be used without modifying the algorithm.

Next, the velocity field is advected using the stable semi- Lagrangian method [Stam 1999; Feldman et al. 2005]. More so- phisticated methods developed in fluid mechanics could be used if needed [Kim et al. 2005; Selle et al. 2008; Lentine et al. 2011]. We are agnostic to the particular choice, and assume that an adequate advection routine is available such that for any material quantity q,

q = advect( , h, q˜). (8)

Using this method we advect the velocity, to obtain (k+1)^. Finally, the velocity is integrated by advecting skin positions.

(k+1) (^) = advect( , h, ˜(k+1) (^) ). (9)

3.6 Coupling Skin and Body

The motion of the body influences the motion of the skin in com- plex ways. This includes non-penetration constraints and viscous resistance to sliding. In animal skin the connective tissue fibers an- choring skin to subcutaneous structures have highly nonlinear elas- tic behavior; the stress-strain curve has a low force “toe” region in the physiological range, but becomes very stiff beyond that region. Our goal is not to model these biological tissues in detail, but to capture some of their essential features in an efficient simulation. In addition, we would like to provide sufficient modeling flexibility

so that an artist can choose to have elastodynamic skin only on a re- gion of interest of the body, and have a small number of parameters to control the behavior of skin relative to the body.

Constraints provide a very general method for attaching skin to the body and for setting boundary conditions on the region of interest to be simulated. Attachments at vertex positions are particularly easy to enforce in the Eulerian setting, since the constraints are col- located with state variables, as observed by [Sueda et al. 2011]. At the velocity level, the constraints on vertex i are of the general form G (^) i = g. Skin velocity is obtained by solving the KKT equations for the constrained dynamical system ✓ M ⇤^ G T G 0

˜(k+1)

f ⇤ g

where is the vector of Lagrange multipliers, M ⇤^ = M + h 2 @f /@u, and f ⇤^ = M (k)^ + h(f (k)^ + b (k)^ ) (compare Eq. (7)).

This method can model a variety of important conditions. When the skin is fixed to the body at vertex location u (^) i , the velocity (^) i = 0. This is enforced by setting G = I and g = 0. More generally, we can constrain a skin vertex to not move along the normal a to a constraint curve, but allow it to slide along the curve. In this case, the constraint is a T^ i = 0 and is enforced by setting G = a T^ and g = 0.

Body movement. The main input to the simulation is the (arbi-

trary) deformation of the body mesh, x ⇤(k+1)^ at the new time step k + 1, provided by the user. Skin points that are not explicitly con- strained as above are still influenced by implicit contact constraints. Therefore we consider x ⇤(k+1)^ a target vertex displacement

x = x ⇤(k+1) x (k) , (11)

which is modified to a feasible displacement x 0 that enforces these constraints approximately in each time step.

x is decomposed into a normal component x (^) n and a tangential component x (^) t. To enforce non-penetration and non-separation constraints, x (^) n is left unchanged, so that the skin tracks the body in the normal direction. In the tangential direction, there is some skin damping and also a limit on the amount of strain ( (^) max ) that models the biphasic behavior of collagen in skin. We obtain a corrected displacement ¯x (^) t = (^) ||^ x x^ t (^) t || min(||x (^) t ||, (^) max ) and

scale it with a parameter ⇣ to get

x 0 = x (^) n + ⇣x¯ (^) t (12)

⇣ is a user specified “inverse damping” parameter: ⇣ = 1 approxi- mates infinite friction so that the skin material sticks tightly on the body mesh; ⇣ = 0 makes the sliding motion highly underdamped (there is still resistance to motion due to tension from neighboring vertices and artificial damping from implicit integration). x in time step k is updated with x 0 instead and transformed to skin using the pseudoinverse: = †^ x 0. (13)

Note that since we compare the target shape to the actual skin shape at each time step in Eq. (11), all errors are eventually corrected and there is no constraint drift.

The pseudocode for our implementation showing all the steps and equations are shown in Alg. 1.

4 Results

We implemented our system in C++, and ran the simulations on a 2.66 GHz Intel Core i5 computer with 4 GB of RAM. The code

Algorithm 1 Thin Skin Elastodynamics 1: // Initialization 2: Build a discretization of ⇡ with X and u 3: // Simulation loop 4: while simulating do 5: Move mesh vertices to x ⇤(k+1)^ via external driver 6: // Dynamics coupling 7: for all verts i do 8: Get feasible displacement x (^0) i // Eq. (12) 9: Update: x ( ik +1)= x ( ik )+ x (^0) i 10: end for 11: for all triangles j with verts i do, 12: Compute (^) ij // Eq. (13) 13: end for 14: Advect with to obtain ˜(k+1)^ // Eq. (8) 15: // Elastic force 16: for all verts i do 17: Look up (^) i with (^) i via ⇡ 18: end for 19: for all triangles j with verts i do 20: Compute elastic force f (^) ij // Eq. (5) 21: Compute M (^) j // Eq. (6) 22: end for 23: // Time integration 24: Form KKT system and solve for ˜(k+1)^ // Eq. (10) 25: Advect the velocity ˜(k+1)^ to obtain (k+1)^ // Eq. (8) 26: Advect skin positions ˜(k+1)^ to obtain (k+1)^ // Eq. (9) 27: end while

(a) Torus at rest (b) Global parameterization

(c) With standard skinning method (d) With our method

Figure 3: Torus Deformation

is single-threaded and uses csparse [Davis 2006] for solving the sparse linear system. We use 1 millisecond time steps for all the demos.

Torus deformation. Fig. 3 shows our simulation result on a closed surface. The torus is parameterized by four adjacent charts as shown in Fig. 3b. Using traditional skinning, non-uniform de- formations can cause large, undesirable distortion of the texture, as shown in Fig. 3c. With our method the surface material slides to uniformly distribute the distortion over the entire surface, as shown in Fig. 3d.

Our Method

Skinning

(a) Rest pose (b) Lifting arm (c) Shrug

Figure 7: Tight clothes slide on the torso during movement. The upper figures are simulated with our method while the bottom fig- ures are obtained using standard skinning.

(a) ⇣ = 0 (b) ⇣ = 0.3 (c) ⇣ = 0.6 (d) ⇣ = 1

Figure 8: Torus shaking: the skin slides on the surface when a horizontal rigid motion is applied to the torus. ⇣ values control the influence of body movement. Skin motion is visualized as motion blur; the video shows this more clearly.

and overshoots the motion of the body mesh.

Dinosaur walking. The dynamic coupling described above can be efficiently used in character animation to produce a visually re- alistic jiggling of skin material. The dinosaur example provided in the video shows that the skin jiggles when the dinosaur suddenly stops moving.

4.1 Performance

All the examples illustrated in this paper are simulated at interactive rates with our method. Table 2 tabulates performance statistics for above examples. In almost all of our examples, the linear solver dominates the overall computation time.

5 Limitations and Future Work

Our method has several limitations. To make it easy to integrate with any animation pipeline, we chose one-way coupling between body and mesh. Two-way coupling is useful when the skin (or a tight fitting suit) is to influence the body’s dynamics. Most bio- logical tissues are incompressible but we did not enforce this in our model. This is in part due to the fact that wrinkled skin is not incompressible at a coarse scale due to subgrid folds that can

Table 2: Statistics of examples. Cons = Constraints, T = Total time per frame in ms, T (^) LS = Time for linear solver in ms, T (^) R = Time for the rest of steps in ms. “torus” = torus deformation, “torus*” = torus shaking.

Example Tris DoFs Cons T T (^) LS T (^) R torus 1152 1152 0 22.44 14.73 7. cylinder 1276 1320 44 33.72 25.67 8. head 1593 1724 258 50.75 39.95 10. hand 445 516 118 9.00 5.83 3. cloth 3162 3320 278 164.04 144.75 19. torus* 1152 1152 0 23.37 14.45 8. dinosaur 461 560 198 6.27 2.73 3.

change surface area. It also removes the restriction that the input body mesh deformation is also area preserving. Incompressibil- ity constraints could be added at the velocity level if essential for some applications, as they are done in fluids simulation. Simulating or synthesizing wrinkles and buckling from the computed stresses [Rohmer et al. 2010] could be included in this framework, but were not. Inversions could occur in some cases, and so an approach sim- ilar to Irving et al. [2004] would be useful. We assumed that the skin can be embedded in a stress-free state on the body surface at some configuration, although this may not be possible for some biological materials. It should be possible to account for this using the same methods used for representing plastically deformed solids. Even though our framework is general, our examples used a simple St. Venant-Kirchhoff material. We tried a more biomechanically realistic Fung-like skin model with an exponential term to prevent large deformation, but it introduced numerical instabilities and may need new types of integrators. We also did not model the cutaneous ligament, which binds the skin to the underlying tissues. This is an area for future work. Currently we only use low order methods for discretizing space and time, following the practice in animation, which favors efficiency over accuracy of the simulation.

6 Conclusions

We have introduced a new method for simulating human-like skin that is in close contact with the underlying structures of the body. The key to the method is a novel Eulerian discretization of thin membranes that are constrained to slide on surfaces of arbitrary topology. This discretization makes the simulation very robust since the major problems of dealing with contact between the skin and the body are avoided. The method is also easy to implement and efficient. Since it is simple to integrate the method with any an- imation pipeline as a post-process, we hope it will be widely useful.

Acknowledgment The authors would like to thank David Levin and the anonymous reviewers for their help. This work was funded in part by grants from the Canada Research Chairs Program, NSERC, Peter Wall Institute for Advanced Studies, and CFI.

References

A LBRECHT, I., H ABER , J., AND S EIDEL , H.-P. 2003. Construc- tion and animation of anatomically based human hand models. In ACM SIGGRAPH/Eurographics Symposium on Computer An- imation, 98–109.

B ARAFF , D., AND W ITKIN , A. 1998. Large steps in cloth sim- ulation. In Proc. SIGGRAPH 1998, Annual Conference Series, 43–54.

B ARGTEIL , A. W., W OJTAN , C., H ODGINS , J. K., AND T URK ,

G. 2007. A Finite Element Method for Animating Large Vis- coplastic Flow. ACM Trans. Graph. 26, 3 (July), 16:1–16:8.

B EELER , T., H AHN , F., B RADLEY, D., B ICKEL , B., B EARDS - LEY, P., G OTSMAN , C., S UMNER , R., AND G ROSS , M. 2011. High-quality passive facial performance capture using anchor frames. ACM Trans. Graph. 30, 4 (July), 75:1–75:10.

C HOE , B., L EE , H., AND K O , H. 2001. Performance-driven muscle-based facial animation. The Journal of Visualization and Computer Animation 12, 2, 67–79.

D AVIS , T. A. 2006. Direct Methods for Sparse Linear Systems. SIAM Book Series on the Fundamentals of Algorithms. SIAM.

D ONG , S., B REMER , P.-T., G ARLAND , M., PASCUCCI , V., AND H ART, J. C. 2006. Spectral surface quadrangulation. ACM Trans. Graph. 25, 3 (July), 1057–1066.

FAN , Y., L EVIN , D. I. W., L ITVEN , J., AND PAI , D. K., 2013. Eulerian-on-Lagrangian simulation. To appear in ACM Transac- tions on Graphics.

F ELDMAN , B. E., O’B RIEN , J. F., K LINGNER , B. M., AND G OK - TEKIN , T. G. 2005. Fluids in deforming meshes. In ACM SIGGRAPH/Eurographics symposium on Computer Animation, 255–259.

G OURRET, J.-P., T HALMANN , N. M., AND T HALMANN , D.

  1. Simulation of object and human skin formations in a grasping task. In Computer Graphics, vol. 23, 21–30.

G RINSPUN , E., H IRANI , A. N., D ESBRUN , M., AND S CHR ODER¨ , P. 2003. Discrete shells. In ACM SIGGRAPH/Eurographics Symposium on Computer Animation, 62–67.

H UANG , H., Z HAO , L., Y IN , K., Q I , Y., Y U , Y., AND T ONG , X. 2011. Controllable hand deformation from sparse examples with rich details. In ACM SIGGRAPH/Eurographics Symposium on Computer Animation, 73–82.

I RVING , G., T ERAN , J., AND F EDKIW, R. 2004. Invertible finite elements for robust simulation of large deformation. In ACM SIGGRAPH/Eurographics symposium on Computer Animation, 131–140.

JAMES , D. L., AND T WIGG , C. D. 2005. Skinning mesh anima- tions. ACM Trans. Graph. 24, 3 (July), 399–407.

K AVAN , L., C OLLINS , S., ˇZ ´ARA , J., AND O’S ULLIVAN , C. 2008. Geometric skinning with approximate dual quaternion blending. ACM Trans. Graph. 27, 4 (Nov.), 105:1–105:23.

K IM , B., L IU , Y., L LAMAS , I., AND R OSSIGNAC , J. 2005. Flow- fixer: using BFECC for fluid simulation. In Proceedings of the First Eurographics conference on Natural Phenomena, 51–56.

K RY, P. G., JAMES , D. L., AND PAI , D. K. 2002. Eigenskin: real time large deformation character skinning in hardware. In ACM SIGGRAPH/Eurographics Symposium on Computer Animation, 153–159.

L EE , S.-H., S IFAKIS , E., AND T ERZOPOULOS , D. 2009. Com- prehensive biomechanical modeling and simulation of the upper body. ACM Trans. Graph. 28, 4 (Sep), 99:1–99:17.

L ENTINE , M., A ANJANEYA , M., AND F EDKIW, R. 2011. Mass and momentum conservation for fluid simulation. In ACM SIG- GRAPH/Eurographics Symposium on Computer Animation, 91–

L EVIN , D. I. W., L ITVEN , J., J ONES , G. L., S UEDA , S., AND

PAI , D. K. 2011. Eulerian solid simulation with contact. ACM Trans. Graph. 30, 4 (July), 36:1–36:9.

L EWIS , J. P., C ORDNER , M., AND F ONG , N. 2000. Pose space deformation: a unified approach to shape interpolation and skeleton-driven deformation. In Proc. SIGGRAPH 2000, Annual Conference Series, 165–172.

M AGNENAT-T HALMANN , N., L APERRIRE , R., T HALMANN , D., AND M ONTRAL , U. D. 1988. Joint-dependent local deforma- tions for hand animation and object grasping. In In Proceedings on Graphics interface 88, 26–33.

M AILLOT, J., YAHIA , H., AND V ERROUST, A. 1993. Interactive texture mapping. In Proc. SIGGRAPH 1993, Annual Conference Series, 27–34.

M C A DAMS , A., Z HU , Y., S ELLE , A., E MPEY, M., TAMSTORF, R., T ERAN , J., AND S IFAKIS , E. 2011. Efficient elasticity for character skinning with contact and collisions. ACM Trans. Graph. 30, 4 (July), 37:1–37:12.

M OHR , A., AND G LEICHER , M. 2003. Building efficient, accurate character skins from examples. ACM Trans. Graph. 22, 3 (July), 562–568.

M ONAGAN , M. B., G EDDES , K. O., H EAL , K. M., L ABAHN , G., V ORKOETTER , S. M., M C C ARRON , J., AND D E M ARCO , P. 2005. Maple 10 Programming Guide. Maplesoft, Waterloo ON, Canada.

PARK , S. I., AND H ODGINS , J. K. 2006. Capturing and animating skin deformation in human motion. ACM Trans. Graph. 25, 3 (July), 881–889.

Q IN , H., AND T ERZOPOULOS , D. 1996. D-NURBS: A Physics- Based Framework for Geometric Design. IEEE Transactions on Visualization and Computer Graphics 2, 1, 85–96.

R OHMER , D., P OPA , T., C ANI , M.-P., H AHMANN , S., AND S HEFFER , A. 2010. Animation wrinkling: augmenting coarse cloth simulations with realistic-looking wrinkles. ACM Trans. Graph. 29, 6 (Dec.), 157:1–157:8.

S ELLE , A., F EDKIW, R., K IM , B., L IU , Y., AND R OSSIGNAC , J.

  1. An unconditionally stable maccormack method. J. Sci. Comput. 35, 2-3 (June), 350–371.

S HEFFER , A., P RAUN , E., AND R OSE , K. 2006. Mesh parameter- ization methods and their applications. Found. Trends. Comput. Graph. Vis. 2, 2 (Jan.), 105–171.

S IFAKIS , E., N EVEROV, I., AND F EDKIW, R. 2005. Automatic determination of facial muscle activations from sparse motion capture marker data. ACM Trans. Graph. 24, 3 (July), 417–425.

S IFAKIS , E., H ELLRUNG , J., T ERAN , J., O LIKER , A., AND C UT- TING , C. 2009. Local flaps: A real-time finite element based solution to the plastic surgery defect puzzle. Studies in Health Technology and Informatics 142, 313–8.

S TAM , J. 1999. Stable fluids. In Proc. SIGGRAPH 1999, Annual Conference Series, 121–128.

S TAM , J. 2003. Flows on surfaces of arbitrary topology. ACM Trans. Graph. 22, 3 (July), 724–731.

S UEDA , S., K AUFMAN , A., AND PAI , D. K. 2008. Musculoten- don simulation for hand animation. ACM Trans. Graph. 27, 3 (Aug.), 83:1–83:8.