Deformable Objects ETH Zurich ETH Zurich

1. Discretization of an object into Modeling Dynamic Deformation mass points with Mass Points and Springs 2. Representation of forces between mass points with springs 3. Computation of the dynamics

deformable mass-spring system Movie

Movie

Movie

Matthias Teschner Teschner

M Teschner - Deformable Modeling Seminar – Wintersemester 02/031 M Teschner - Deformable Modeling 2

Outline Virtual Clothing ETH Zurich ETH Zurich

Motivation • Simulation of cloth based on Model Components deformable surfaces Mass Points (polygonal mesh) Springs • Realistic simulation of cloth with Forces different fabrics such as wool, Computation of the Dynamic Behavior cotton or silk for garment design Explicit Numerical Integration Implicit Numerical Integration Higher-Order Numerical Integration Stability and Performance Aspects

Performance Thalmann Time and Space Adaptive Sampling Damping Force-Deformation Relationship Model Topology Strasser Baraff

M Teschner - Deformable Modeling 3 M Teschner - Deformable Modeling 4

1 Virtual Clothing Facial Animation ETH Zurich ETH Zurich

• Simulation of facial expressions based on • deformable surfaces • deformable volumes •muscles • Animation of face models from speech and mimic parameters

Thalmann

Choi Seoul National University Terzopoulos

M Teschner - Deformable Modeling 6 M Teschner - Deformable Modeling 7

Medical Simulation Artificial Life ETH Zurich ETH Zurich

• Simulation of deformable soft tissue • Simulation of systems consisting of • Surgical planning • sensors for perception • Medical training • behavioral rules • Swiss NCCR Co-Me www.co-me.ch • physically-based representation of motor functions

Teschner Prediction of the surgical outcome in craniofacial surgery

Virtual endoscopy

Terzopoulos Szekely Kuehnapfel Laparoscopic (endoscopic) simulation

M Teschner - Deformable Modeling 8 M Teschner - Deformable Modeling 9

2 Games Outline ETH Zurich ETH Zurich

• Deformable structures are challenging for computer games Motivation Model Components Mass Points Springs Forces Computation of the Dynamic Behavior Explicit Numerical Integration Implicit Numerical Integration Higher-Order Numerical Integration Stability and Performance Aspects Performance Time and Space Adaptive Sampling Damping Niederberger Mueller Gross Novodex Force-Deformation Relationship Model Topology

M Teschner - Deformable Modeling 10 M Teschner - Deformable Modeling 11

Mass Points Elastic Springs ETH Zurich ETH Zurich

Spring stiffness is characterized by k Initial spring length L class POINT Current spring length l { public: float mass; L F Deformation linear proportional to force: float position[3]; l F = k()L − l Hooke’s law . . . } Elasticity: Ability of a spring to return to its initial form when the deforming force is removed.

M Teschner - Deformable Modeling 12 M Teschner - Deformable Modeling 13

3 Forces at Mass Points Model - Summary ETH Zurich ETH Zurich

ext Internal forces Fint External forces F x •Gravity • Discretization of an object into mass points x3 1 • All forces, which are • Definition of the connectivity L1,k1 not caused by springs L3,k3 (topology, adjacencies of mass points)

x0 • Model parameters: • Points: mass, initial position, velocity L ,k 2 2 • Springs: stiffness, initial length Resulting force at point i x2 • Definition of external forces (gravity) = int + ext x − x Fi Fi Fi Fint = k ()x − x − L i 0 0 ∑ i i 0 i − i|i∈{}1,2,3 xi x0

M Teschner - Deformable Modeling 15 M Teschner - Deformable Modeling 17

Outline Static Equilibrium ETH Zurich ETH Zurich

T System of mass points X = ()x ,x 0 1 x Motivation 1 Model Components Mass Points ()x − x − L L Fint = k 1 0 ()x − x Springs 0 x − x 1 0 Forces 1 0 Computation of the Dynamic Behavior x0  ()x − x − L ()x − x − L  Explicit Numerical Integration  k 1 0 − k 1 0  Implicit Numerical Integration  x − x x − x x  Higher-Order Numerical Integration − KX = − 1 0 1 0  0   ()x − x − L ()x − x − L  x  Stability and Performance Aspects − k 1 0 k 1 0  1  Time and Space Adaptive Sampling  − −  x1 x0 x1 x0 Damping   Force-Deformation Relationship Model Topology Static Equilibrium: Fint = −KX = Fext

M Teschner - Deformable Modeling 18 M Teschner - Deformable Modeling 19

4 From Statics to Dynamics Mass-Point Dynamics ETH Zurich ETH Zurich

Consideration of dynamics Motion equation for mass point i at time point t − = ext = + ext () KX F 0 KX(t) F t damping mass position force at mass point coefficient Motion equation for a system of mass points 2 () () d xi t dxi t 2 m +γ = F d X()t i 2 i M = KX(t) + Fext ()t dt dt dt 2 acceleration damping force force linear proportional to velocity Incorporation of damping (Stokes friction) • second-order 2 () () • Newton’s equation or motion equation in Langrange form d X t + dX t = + ext () M 2 D KX(t) F t •force F is used for acceleration and damping dt dt • simplified form ma = F if damping is neglected

M Teschner - Deformable Modeling 20 M Teschner - Deformable Modeling 21

Rewriting the Problem Problem ETH Zurich ETH Zurich

Reduction of an second-order differential equation to two coupled first-order differential equations. We have: Initial position x Initial velocity v d 2x ()t dx ()t m i +γ i = F Derivative of position x with respect to time. i dt 2 dt i Derivative of velocity v with respect to time.

dx ()t dv ()t F ()t −γv t () i = v ()t i = i i dt i dt m () dv ()t F ()t −γv t () i dxi t = () i = i i vi t dt dt mi Goal: Computation of position x over time. velocity acceleration

M Teschner - Deformable Modeling 22 M Teschner - Deformable Modeling 24

5 Explicit Numerical Integration f(t) ETH Zurich ETH Zurich Euler Method −γ ()= () ()= F t ()v t () Leonard Euler: x' t v t v' t 1707 (Basel) – 1783 (Petersburg) Error O(h2) m

()= ()= Start with initial values x t0 x0 v t0 v0 () () Compute v' t0 x' t0 t t ()= ( )= () (≤ )≤ + t0 0 +h Assume v' t v' t0 x' t x' t0 t0 t t0 h (+ = ) ()+ = ()+ () () Compute x t0 h x t0 hx' t0 x t0 hv t0

•Initial value f(t0) −γ F t0 v t0 () () • Compute the derivative at t Compute v(t + h = )v t + ()hv' t = v ()t + h () 0 0 0 0 0 m • Move from t0 to t0 +h using the derivative at t0 ( F(t) is computed from x(t) and external forces! )

M Teschner - Deformable Modeling 25 M Teschner - Deformable Modeling 26

Problems Avoiding Instability ? ETH Zurich ETH Zurich

Numerical integration is inaccurate.

f (t + h = )f t + ()f ' t h + O ()(h2 ) (Taylor series) • No general solution to avoid instability Euler step Error for complex mass-spring systems. f(t) • A smaller time step increases the chance for stability. Inaccuracy can cause instability. • A larger time step speeds up h2 the simulation. 0 ≤ e < ⋅ f "(t + h) 2 • Parameters and topology of the Error mass-spring system, and external forces influence the stability of a system.

h t M Teschner - Deformable Modeling 29 M Teschner - Deformable Modeling 30

6 Improving the Accuracy 1 – Leap-Frog Improving the Accuracy 2 ETH Zurich f(t) f(t) ETH Zurich Euler Method Runge-Kutta Method v(t + h / 2) = v(t − h / 2) + h⋅a(t) Error O(h3) 2 3 time step h is significantly Error O(h ) Error O(h ) + = + ⋅ + x(t h) x(t) h v(t h / 2) larger compared to expl. Euler 2a

1 Euler Leap-Frog t 2b t t t t t0 0 +h 0 t0 +h/2 0 +h initV() // v(0) = v(0) – h/2a(0)

• Compute the derivative at t0 ...... •Move to t0 +h/2 addForces(); //F(t) addForces(h); //F(t) • Compute the derivative at t0 • Compute the derivative at t0 +h/2 positionEuler(h); //x=x(t+h)=x(t)+ velocityEuler(h); //v=v(t+h)=v(t)+ha(t) • Move from t0 to t0 +h • Move from t0 to t0 +h velocityEuler(h); //v=v(t+h)=v(t)+ha(t) positionEuler(h); //x=x(t+h)=x(t)+ using the derivative at t0 using the derivative at t0 +h/2 ......

M Teschner - Deformable Modeling hv(t) 32 M Teschner - Deformable Modeling 33 hv(t+h)

Second-Order Runge-Kutta Method Comparison () ETH Zurich ETH Zurich

Carl Runge: F t −γ()v t () 1856 (Bremen) – 1927 (Goettingen) x'()t = v t ()a()x(t),v(t) = Wilhelm Kutta: m 1867 (Pitschen) – 1944 (Fuerstenfeldbruck) Euler Method Runge-Kutta Method = Compute v at t k 1 v(t) • One computation of the • Two computations of the derivative per time step derivative per time step = ()() () 2 3 Compute a at t l1 a x t , v t • Error O(h ) • Error O(h ) h Compute v at t+h/2 (the midpoint) k = v(t) + l • Allows larger time steps 2 1 2 =  ()+ h  Compute a at t+h/2 with x and v at t+h/2 l 2 ax t k1 ,k 2  • Accuracy of Runge-Kutta per time step is higher.  2  • Computational complexity similar if time step Compute x at t+h with its velocity at t+h/2 x()t + h = x(t) + hk for Runge-Kutta is twice the time step for Euler. 2 hn 0 ≤ e < ⋅ f (n) (x) • Does Runge-Kutta really allow faster ()+ = + Compute v at t+h with the acceleration at t+h/2 v t h v(t) hl 2 n simulations of mass-spring systems?

M Teschner - Deformable Modeling 34 M Teschner - Deformable Modeling 35

7 Fourth-Order Runge-Kutta Method Implementation ETH Zurich ETH Zurich

f(t) Euler Method • Straightforward • Compute the derivative at t0 (1) • Compute spring forces • Move from t0 to t0 +h/2 • Add external forces using the derivative at t0 (1) 5 • Update positions 2 Error O(h ) • Compute the derivative at t0 +h/2 (2) •Update velocities • Move from t to t +h/2 0 0 4 using the derivative at t0 +h/2 (2) 3 • Compute spring forces • Compute the derivative at t +h/2 (3) 1 0 Runge-Kutta Method• Add external forces • Move from t to t +h 0 0 t t •Compute auxiliary positions and velocities using the derivative at t +h/2 (3) t0 t0 +h/2 0 +h 0 • requires additional copies of data • Compute the derivative at t +h (4) 0 • once for second-order • Compute a weighted average of all derivates (1) – (4) • three times for fourth-order and use this value to move • Update positions

from t0 to t0 +h •Update velocities

M Teschner - Deformable Modeling 36 M Teschner - Deformable Modeling 38

Implicit Integration – Theta Scheme Theta Scheme - Implementation ETH Zurich ETH Zurich

rewriting the problem v(t) + v(t + h) F(x(t)) + F(x(t) + h⋅ ) θ m⋅ v(t + h) = m⋅ v(t) + h⋅ 2 x(t +1) = x(t) + h()(1− )⋅ v(t) +θ ⋅ v(t +1) 2 θ m ⋅ v(t +1) = m ⋅ v(t) + h()(1− )⋅F(t) +θ ⋅F(t +1) linearization of force v(t) + v(t + h) ∂F(x) v(t) + v(t + h) F(x(t) + h ⋅ ) ≈ F(x(t)) + ⋅h⋅ ∂ 2 x x=x(t ) 2 θ = 0 : exlicit Euler explicit form for v(t+h) θ = 1: implicit Euler θ = 0.5 : Crank Nicolson  h2 ∂F(x)  h2 ⋅ v(t) ∂F(x) m − ⋅  ⋅ v(t + h) ≈ m ⋅ v(t) + h⋅F(x(t)) + ⋅ ∂ 2 ∂x  2 x x=x(t)  x=x(t)

M Teschner - Deformable Modeling 39 M Teschner - Deformable Modeling 40

8 Theta Scheme – Conjugate Gradient Higher-Order Numerical Integration ETH Zurich ETH Zurich

• linear system: A ⋅ v = b Integration methods for Integration methods for first-order ODE’s Newton’s motion equation ∇f (v) = A ⋅ v − b • gradient of a function Euler Verlet Heun Velocity Verlet with ∇ = f (v) 0 Runge Kutta Beeman

commonly used in commonly used in • iterative solution for v with initial value v 0 Computer Graphics applications = +α ⋅ ∇ Iteration: vk+1 vk w( f (vk ))

M Teschner - Deformable Modeling 41 M Teschner - Deformable Modeling 42

Verlet Integration Other Integration Techniques ETH Zurich Predictor-Corrector Methods ETH Zurich

• Predicts a value from previous derivatives 2 3 h + = + + h + h + 4 f ()()t + h = f t + ()a f '()t + a f ' t − (h + a f )' t − 2h ( ) x(t h) x(t) hx'(t) a(t) x'''(t) O(h ) 0 0 + + 1 0 2 0 3 0 2 6 a1 a2 a3 + 2 3 • Corrects the value using the derivative from the predicted value (implicit) − = − + h − h + 4 x(t h) x(t) hx'(t) a(t) x'''(t) O(h ) h 2 6 f ()()t + h = f t + ()b f '()t + h + b f ' t + ()()b f ' t − h 0 0 + + 1 0 2 0 3 0 b1 b2 b3 = 2 4 x(t + h) = 2x(t) + x(t − h) + h a(t) + O(h ) Burlisch-Stoer Methods • Polynomial function extrapolation based on midpoint method steps x(t + h) − x(t − h) • High accuracy with minimal computational effort v(t) = + O(h2 ) 2h • Bad for non-smooth functions • Not very promising, but has been used for mass-spring models

M Teschner - Deformable Modeling 43 M Teschner - Deformable Modeling 44

9 Numerical Integration - Summary Outline ETH Zurich ETH Zurich

Motion equation for mass point • second-order differential equation Motivation • coupled system of first-order differential equation Model Components • derivatives of velocity v and position x are described Mass Points Springs Numerical integration Forces • known initial values at a certain time t for v and x Computation of the Dynamic Behavior • approximative integration of v and x through time Explicit Numerical Integration •time step h Implicit Numerical Integration Integration techniques Higher-Order Numerical Integration • Euler, Leap-Frog Stability and Performance Aspects • Runge-Kutta Performance • Crank-Nicolson Time and Space Adaptive Sampling • Verlet, velocity Verlet, Beeman Damping • predictor-corrector Force-Deformation Relationship • methods differ in accuracy and computational complexity Model Topology • size of time step h is trade-off between performance and robustness M Teschner - Deformable Modeling 45 M Teschner - Deformable Modeling 46

How to Measure Performance ? Comparison of Integration Methods ETH Zurich ETH Zurich It is difficult ! • Synthetic object under gravity • Frames per second Method time step comp. time ratio (System updates per real-life second) • 22320 springs (16875 tetras) [ms] [ms] • Commonly used • How many mass points? expl. Euler 0.5 9.3 0.05 • How many springs? Heun 2.9 27.5 0.1 • Computational expenses for external forces? RK2 3.8 18.9 0.2 • Other expenses like collision handling and rendering? impl. Euler 49.0 172.0 0.28 • Which numerical integration technique? RK4 17.0 50.0 0.34 • What time step? Verlet 11.5 8.5 1.35

• Example: 0.1 – 1 s for 10,000 polygons per iteration using various Intel Pentium 4, 2GHz integration techniques [Volino/Thalmann 2001] cloth simulation

M Teschner - Deformable Modeling 47 M Teschner - Deformable Modeling 48

10 Performance - Example Performance - Example ETH Zurich ETH Zurich

2949 mass points Uterus 15713 springs Vessel 1349 mass points 6888 springs • Numerical integration time step 1.9 ms • Computational time 6.1 ms • Performed tasks in a simulation environment per second • 135 integrations a 6.1 ms • Numerical integration time step 5 ms • 135 collision handlings a 1.1 ms • Computational time 1.8 ms • 7 visualizations a 3.7 ms • Performed tasks in a simulation environment per second • 450 integrations a 1.8 ms • 450 collision handlings a 0.2 ms • 23 visualizations a 1.7 ms

M Teschner - Deformable Modeling 49 M Teschner - Deformable Modeling 50

f(t)

Adaptive Time Steps Space Adaptive Sampling ETH Zurich ETH Zurich

• Minimizing computational expenses t by adaptively choosing time steps • Small time steps if forces at mass points change significantly Debunne • Larger time steps if forces do not change much • Computational overhead for tracking force changes • Hierarchical model representation (coarse sampling to fine sampling) •Example: • Different numbers of mass points for different modeling accuracies • Free falling sphere does not require small time steps. • Allows to focus the computational load on interesting regions • Any collision would require smaller time steps. • Problem: How to define regions of interest • Early detection of force changes necessary. • Problem: Relation between simulated mass points and object points

M Teschner - Deformable Modeling 51 M Teschner - Deformable Modeling 52

11 Space Adaptive Sampling Space Adaptive Sampling ETH Zurich ETH Zurich

• Combination of physically-based and geometric deformation • Different degrees of freedom for deformation

surface/object points

mass point

Debunne Desbrun • Definition of rules to switch between level of details in certain areas Coti Barr • Update of the relation between mass points and surface points.

M Teschner - Deformable Modeling 53 M Teschner - Deformable Modeling 54

Damping Point Damping ETH Zurich ETH Zurich

Damping is a force usually linear proportional to vn in opposite direction •Coulomb F~v0 not applied for mass-spring systems • Force at a point is used for acceleration and damping •Stokes F~v uniform damping, preferred 2 () () d xi t dxi t 2 m +γ = F •Newton F~v non-uniform damping i dt 2 dt i

damping force • Models the real fact, that friction costs energy • Damping force is applied in opposite direction to the velocity of the point • Smoothens variations in velocities and positions of mass points () ()−γ () dvi t Fi t vi t • Reduces instability risk = dt mi

It is not intended to bound velocities and positions! • Example: Falling mass point has a maximum speed, Not the magnitude, but variations influence the stability! when gravity and damping are in an equilibrium

M Teschner - Deformable Modeling 55 M Teschner - Deformable Modeling 56

12 Spring Damping Force-Deformation Relationships ETH Zurich ETH Zurich

x1 (t) + • Definition of forces which work against deformation x1 (t h) • No deformation -> no force l(t) + l(t h) x − x Fint = k()x − x − L 1 0 x 0 1 0 − 1 x (t + h) x1 x0 x0 (t) 0 L • Damping force proportional − int = ()− 2 − 2 x1 x0 to the velocity of the spring F0 k x1 x0 L l(t + h) − l(t) ()x (t) − x (t) x − x 2 F (t) = −γ 1 0 1 0 x 1 − 0 h x1 (t) x0 (t) n  x − x − L  x − x • Damps relative movements of mass points Fint = k 1 0  1 0 n odd ! Why ? 0   − • Reduces internal oscillations of the mass-spring model  L  x1 x0 • Requires computation of auxiliary point positions • Various computational complexity • Problem: Which force direction is correct? • Influence on the function, which is integrated M Teschner - Deformable Modeling 58 M Teschner - Deformable Modeling 61

Spring Properties and Stability Model Properties and Stability ETH Zurich ETH Zurich force force force force • Two different sets of parameters (mass and stiffness) for the same topology • Higher stiffness difficult to handle spring spring spring spring deformation deformation deformation deformation Movie soft stiff oscillating non-oscillating stable problematic stable don’t even think of using it

• Behavior of force-deformation relation strongly influences stability. • It’s difficult to simulate stiff structures. • It’s difficult to represent non-oscillating deformable structures. Movie • Human soft tissue • Large forces should be handled.

• No oscillations Teschner M Teschner - Deformable Modeling 62 M Teschner - Deformable Modeling 63

13 Topology and Stability –2D Topology and Stability –3D ETH Zurich ETH Zurich

• Stable model topologies stable • Triangulated sphere surface with respect to deformation but not • Edges represented by springs not stable general • Stable sphere model represented with two layers of springs • Inner layer is a copy of the surface • Both layers are connected by springs stable • Stable, but many springs, many forces, computational expensive can be generated automatically by copying the surface to an inner layer and connecting both – layered model

much more resistant in • Design problem direction than in direction.

M Teschner - Deformable Modeling 64 M Teschner - Deformable Modeling 65

Topology - Ambiguity Problem Topology and Stability –2D ETH Zurich ETH Zurich

• Unappropriate topology • Generating pre-strained models for stability • No force penalty for shearing model is attached • Diagonal springs are missing to these two planes

• Appropriate topology relaxed, additional new stable? • However, self-collision problem not stable forces equilibrium

Problems: • New equilibrium does not represent given model geometry. • Initiated forces are dependent on surface changes and object transformation. original equilibrium 1 equilibrium 2 • Initiated forces could be bound to surface normals. M Teschner - Deformable Modeling 66 M Teschner - Deformable Modeling 67

14 Volumetric Models Performance Aspects - Summary ETH Zurich ETH Zurich

2949 mass points 1349 mass points 10257 tetras 4562 tetras 15713 springs 6888 springs • Performance is difficult to assess! •Varying time steps • Model hierarchies, coarse to fine point sampling • Point and spring damping. • Force-deformation relationship. Soft and oscillating models are robust. • Topology. How to connect mass points in an appropriate way? Influence on the stability of the numerical integration • Topology. How to avoid too many springs? Influence on the performance of the numerical integration

M Teschner - Deformable Modeling 68 M Teschner - Deformable Modeling 69

Other Forces Penalty Forces ETH Zurich ETH Zurich

• Induction of internal forces by falsifying the initial spring length

L(t) = const L(t) = f (t) • Penalty forces are additional momentum conserving external forces at mass points. • Penetration of a mass point into another object can cause a penalty force to resolve the collision. • Volume variation of basic volumetric elements can cause forces to L(t ) + preserve volume. 0 L(t0 h) • Surface changes can cause penalty forces at mass points to relaxed no longer spring relaxed preserve certain characteristics of the surface. • Proper relation of penalty, internal, and other external forces has to be considered. • Simulation of muscle contraction (or fishes) • Penalty force functions should be appropriate for numerical • L(t) has to be smooth for stability integration.

M Teschner - Deformable Modeling 70 M Teschner - Deformable Modeling 72

15 Penalty Forces Dynamic Deformation - Summary ETH Zurich ETH Zurich

Collision Surface changes • Discretization of an object into mass points • Definition of the connectivity (topology, adjacencies of mass points, layers) 1 1 • Model parameters: • Points: masses, initial positions, initial velocities • Springs: force-deformation relationship and Penalty its parameters (stiffness) Penalty 2 2 • Damping: points and/or springs (Stokes and/or Newton) • External and penalty forces: definition of theses forces over time • Restrictions: fixed points, restricted movement

M Teschner - Deformable Modeling 73 M Teschner - Deformable Modeling 74

Dynamic Deformation - Summary Outline ETH Zurich ETH Zurich

Motivation • Numerical integration technique: Model Components • Euler, Leap-Frog Mass Points Springs • Runge Kutta Forces • Crank-Nicolson Computation of the Dynamic Behavior •Verlet, Beeman Explicit Numerical Integration • Predictor-corrector methods Implicit Numerical Integration Higher-Order Numerical Integration Stability and Performance Aspects • Consider performance aspects! Performance • Find an appropriate time step Time and Space Adaptive Sampling to solve your specific problem ! Damping Force-Deformation Relationship Model Topology Movies M Teschner - Deformable Modeling 75 M Teschner - Deformable Modeling 76

16 Cloth Simulation Hand Simulation ETH Zurich ETH Zurich Articulated bone structure Sibille / Teschner / Latombe

Generic skin model

Fedkiw Deformable Stanford University pulp space

M Teschner - Deformable Modeling 81 M Teschner - Deformable Modeling 82

A few References ETH Zurich

• D. Terzopoulos, J. Platt, A. Barr, K. Fleischer, “Elastically Deformable Models,” SIGGRAPH’87, ACM Computer Graphics, vol. 21, no. 4, pp. 205-214, 1987. • D.Computer Terzopoulos, Graphics K. Fleischer, “Modeling Inelastic Deformation: Viscoelasticity, Plasticity, Fracture,” SIGGRAPH’88, ACM Computer Graphics, vol. 22, no. 4, pp. 269-278, 1988. • Y. Lee, D. Terzopoulos, K. Waters, “Realistic Modeling for Facial Animation,” SIGGRAPH’95, ACM Computer Graphics, vol. 29, no. 4, pp. 52-62, 1995. • D. Baraff, A. Witkin, “Large Steps in Cloth Simulation,” SIGGRAPH’98, ACM Graphics , pp. 43-54, 1998. • M. Desbrun, P. Schroeder, A. Barr, “Interactive Animation of Structured Deformable Objects,” Graphics Interface ’99,Kingston, Canada, 1999. • G. Debunne, M. Desbrun, M. Cani, A. Barr, “Dynamic Real-Time Deformations using Space and Time Adaptive Sampling,” SIGGRAPHC’01, ACM Computer , pp. 31-36, 2001. • H. R. Schwarz, “Numerische Mathematik,” B. G. Teubner Stuttgart, ISBN 3-519-32960-3, 1997. M Teschner - Deformable Modeling 86

17