MODELING OF CONTACT DEFORMATIONS BETWEEN A SYNTHETIC HUMAN AND HIS ENVIRONMENT J.P.Gourret1 MIRALab Universite de Montreal CP 6128, Succ. A, Montreal, Quebec, H3C3J7, Canada e-mail:
[email protected] N.Magnenat-Thalmann MIRALab, CUI Universite de Geneve, CH 1207, Geneve, Suisse, e-mail:
[email protected] D.Thalmann Laboratoire d'infographie Ecole Polytechnique Federale de Lausanne CH 1015, Lausanne, Suisse e.mail:
[email protected] INTRODUCTION Many problems exist in synthetic human modeling because of the limitations of current models. In these models, the outside aspect of the body is an envelop deformed and animated with a non realistic skeleton generally made up of segments tied to joints. As a result, realistic deformations of the envelop, such as inflation due to muscles is very difficult to simulate(1). Moreover, parts of the envelope are modeled separately and the assemblage of different parts is non-trivial. For example, there is a well-known problem with shoulders. When a synthetic human lifts the arms, there are folds on the top of shoulders. This problem is also present at hip, when the actor's legs are raised. It seems this type of problem cannot be solved using skin envelop on one hand and segment skeleton on the other. The association of realistic bones with a method simulating volumetric elasticity of the flesh is a necessary step to realism. In the absence of contact, several solutions have been proposed for skin deformations. In his hand animation system MOP, Catmull proposed a hand envelop made up of polygons in 1972 (5), spheres and B-splines were proposed by Badler and Morris in 1981 for hand deformations (6), Bézier surfaces were used by Komatsu for arm deformations (7), Magnenat-Thalmann et al. (8) used operators which are adjustable links between the skeleton and the skin, and more recently, Chadwick et al. (9) used a kind of "exoskeleton" which is a parallelepiped lattice to control skin deformations. These solutions work very good to give visual realism as muscle inflation, but when a contact is detected, they cannot model skin deformations produced by the contact. 1
(on leave from Laboratoire de traitement du signal numerique, Ecole Nationale Superieure de Physique de Marseille, 13397 Marseille Cedex 13, France
2
The environment of a synthetic human is made up of rigid and flexible objects such as key-frame deformable objects, the simplest but not the easiest to implement, objects based on mathematical transformations as proposed by Barr (10), soft objects which are cluster of points surrounded by scalar functions (11), physically deformable objects based on elasticity theory, first presented by Terzopoulos et al. (12) The processing of contacts is often based on collision detection by computational geometry and on collision response by physical laws. Collision impulses and friction forces are introduced for animation of rigid objects (13,14,15), the contact between elastic and rigid bodies is treated by Terzopoulos (16). But, unsolved problems remain for contact processing, mainly because there are many incompatible methods to model the skin and the objects. In recent papers, we have claimed that the finite element method (22) must be used to model both the environment of synthetic actors and the deformation of human skin in order to simplify the processing of contacts (2,3). We did not give the details of the contact detection and repelling used in the special case studied. This is done in this paper. By using the finite element method, we take advantage of developments in the field of structural engineering analysis (18) and in hardware for finite element analysis (19). This allows us to synthesize physical laws for deformation and motion calculations adapted to an animation context. Moreover, the link between visual realism of surfaces and finite element calculations seems to be ensured (3). In (20), Gallagher presented an extended voxel-based technique for the display of intra-element behavior. The technique generates threshold surfaces from the element corner values. Because most contacts between the human and his environment are made with the hand, we give some details about the grasping of a soft object when interacting forces deform the fingers and the object simultaneously. We want to include these calculations in a task-oriented grasping system based on robotic laws. In this way, we will consider the flesh interface between the skin and the skeleton in the calculations of reacting forces on bones. This work is a part of an animation project named HUMAN FACTORY (4), involving humans being conscious of their environment. FORMULATION, HYPOTHESIS AND ALGORITHM In the following, an example of a finger pressing a ball is presented. The ball is made up of cubes and prisms and it has an internal pressure. This example has been chosen to discuss the approximations because it is simpler than the complete hand manipulation. Hand envelop and bones were created with the HUMAN FACTORY system and finite elements are obtained starting from the skin nodes and meshing in the volume until the bones. Realistic bones are necessary because, as in the hand, bones flush against the skin in some region and are more distant in others. So, they restrict the deformations of the skin and give realistic bumps because of the bones. Calculations for contact are based on a total Lagrangian analysis approach (21). The equilibrium of a body submitted to various forces is found using the virtual displacement principle which states that the internal work resulting from internal stresses is equal to the external work resulting from forces such as gravity, pressure and contacts. Each work component is an integral over the volume or over the surface of the body. After decomposition of the body into small elements, these integrals are calculated over the volume Ve or over the surface Se of each element.
3
internal work =
⌠ (strain)e (stress)e dV e. ⌡ Ve
external work =
⌠ ⌡ (force per unit volume)e (displacement)e dV e. Ve
⌠ (force per unit surface)e (displacement)e dS e. + ⌡ Ve
+ (concentrated force)e (displacement)e These equations are detailed in (3). They are classical ones and do not need more development. The subscript e shows that expressions in parenthesis are local evaluations over each element. In the internal work, the (strain)e depends on the (displacement)e and the (stress)e depends on (strain)e. Consequently, it is also a function of the (displacement)e. As each component depends on the (displacement)e, we can assemble each element and write the equilibrium equation in the form K U = R which can be seen as a spring of stiffness K, displacement U and return force R. In these calculations, a slow displacement of the finger is assumed, entirely under the responsibility of the animator. Because of this restriction, each finger position may be considered as an equilibrium position using the static relation K U = R to solve the problem. No inertial or damping effects are introduced. This approach is known as pseudo-static equilibrium in literature. The strains are also considered to be small and a linear constitutive law (stress)e = f((strain)e) may be used. An isotropic material and a Hooke's law have been chosen. To consider geometrical non linearities necessary to model greater displacements and rotations, two tensors are used: a Green-Lagrange strain tensor for deformation measurements, and a second Piola-Kirchoff stress tensor for the stress measure. Following Bathe notations (21), using tensor notation conventions and an Euclideancoordinates system xi, i = 1,2,3. The strain and stress components are: ∂tuj ∂tuk ∂tuk 1 ∂tui strain: 0 t εij = 2 (∂0 xj + (∂0 xi + (∂0 xi . (∂0 xj ) ρ stress: t Sij = t ρ 0
0
.
∂0 xi ∂0 xj . tτ . mn ∂txn ∂txm
where k,m,n = 1,2,3, tτmn is the Cauchy stress tensor at time t, tui is the displacement in the direction i at time t, a superscript 0 denotes the initial position of the body, and tρ is the mass density at time t. When a contact is started, there are prescribed degrees of freedom which are known displacements Uk and/or known forces Rk, with the restriction that a displacement and a force cannot be prescribed simultaneously in the same degree of freedom. The total number of equations in K U = R is diminished by the number of known prescribed displacements. The resolution of the remaining equations gives the unknown displacements Uu. The knowledge of displacements Uu and U k allows the unknown forces Ru to be deduced in the displacement prescribed degrees of freedom Uk (2).
4 This scheme works correctly except when the finger and the ball are highly deformed. In this case, the number of equations is modified during evolution of computation and an iterative process is needed. As the number of equations changes with the number of constrained nodes, the method works like a Lagrange multipliers method. Table 1 describes the iterative process for a time t. For each time step, calculations are started from the deformed situation obtained from preceding time. So, it works as a step by step incremental load method. In a first step, the animator positions the finger into the ball using its animation system. During the second step, which is the first step of the iterative process, the ball nodes which are inside the finger are repelled using a method described in the next section. After repelling, the degrees of freedom of nodes in contact with the table (if any), repelled nodes, finger nodes and bone nodes are displacement prescribed. In a third step, the solution of the static relation K U = R gives the displacements and forces on the ball. Only forces on the ball are required because all others degrees of freedom are displacement prescribed. At equilibrium, contact forces must be equal and opposite. So, calculated contact forces on the ball obtained in the step 3 are copied on the finger during the fourth step. The copying process in illustrated in table 1. When a ball node penetrates the finger, it is repelled on the surface of the polygon and attached to a point I, whose position is defined in the next section. The force obtained from step 3 in point I, is then dispatched between the three constituent points 1, 2, 3 of the facet using the same linear interpolation function as for FEM calculations. In the fifth step, all degrees of freedom, except on bones, are released and contact nodes are force prescribed. The resulting solution of the static relation K U = R gives displacements everywhere (skin and ball) and forces on the bones. With this process, sticking and releasing contacts are possible because, during the iteration i+1, repelled points are not necessarily the same as in iteration i. The calculation is stopped when the displacement difference between two successive iterations is under a chosen threshold displacement or when the mean reacting force calculated on bones is greater then a chosen threshold force. In the last case, and with a parametric animation system, a warning is sent to the animator. In a parametric animation system, the angle given to each phalanx is under the responsibility of the animator. So he must modify these positions if the warning message is received. In a dynamic animation system, a more complex processing can be envisaged. We hope that an automatic displacement of bones will be possible using the calculated reacting forces on bones. Figure 1 shows a shaded image obtained for a more complex situation of ball grasping. These results are obtained after 3 iterations and necessitate 2 hours of calculations on a VAX 780. To diminish this time we are thinking about a volume mesh restricted to the sensitive areas such as the palm and the bottom of the fingers. The meshing process will not be a classical one because it must be adapted to the animation method already used for visual deformation of fingers without contact (8). To save calculation time we are also considering image coherence as a new inbetweening process.
5 A calculation with the second Piola-Kirchoff stress tensor, with the GreenLagrange strain tensor and with integrals over the initial position of the bodies, is the so called total lagrangian formulation in great displacements. Instead of this formulation, we calculated the finger flexion without contact using a Cauchy stress tensor, an infinitesimal strain tensor, and integrals over the current position of the finger. This is the so called updated lagrangian formulation which is equivalent to the total lagrangian formulation. In (2), we show that displacement of the phalanges less than 10 degrees gives realistic visual results. Figure 2a shows a finger flexion with 30 degrees for the first phalanx and 50 degrees for the second one. This position was found starting from the rest position, when the finger is horizontal, and from eight intermediate positions to respect the 10 degrees condition. We can see the flesh inflation which appears under the finger. Even if the visual results are good, the use of FEM calculations for finger flexion has several drawbacks. It is time consuming (1 minute per frame on VAX 780). It needs special bones, shown in Figure 2b, and it is not satisfying for the FEM community because a rotation of 10 degrees is too important for an updated lagrangian formulation with infinitesimal strain tensor and cauchy stress tensor. So, we are tempted to qualify this result as a "curiosity", and keep the idea of FEM modeling without contact for a more accurate model including nerves and muscles. Moreover, in the absence of contact, it is possible to use another method which is less time consuming than FEM and gives equivalent visual results (8). The JLD operators method does not need bones as an internal frame but instead simply uses segments tied at joints. They are links between segments and skin, and there exist special operators for each segment or group of segments. In our animation system, JLD operators methods are used before contact and the FEM method after a contact is detected. INTERSECTION DETECTION AND REPELLING People working on dynamic collision detection want to know when an object penetrates another. They are interested in two or several objects thrown one against another. Objects can be deformable bodies made up of triangular facets, rigid bodies, or articulated bodies made up of an assemblage of rigid bodies. The algorithm must be built to avoid the penetration or to detect the penetration of a single point or edge of the first object (projectile) into the second object (target). In the first case, the collision detection is processed before contact and is described by Platt and Barr (16), Luciani (14), Moore and Wilhems (13). In the second case, the collision detection is processed after contact and is described by Moore and Wilhems (13), Hahn (23) and Bathe and Chaudary (24,25). The solution before contact avoids calculations of intersections between the bodies. Each body is surrounded by an "influence area" and a penalty function is chosen which takes a great value when a body enters in the influence area of the other. This approach is also used in robotics by Lozano-Peres (26) for path planning. Terzopoulos et al. (12) use a potential energy c e-f/e around each object, where f is the inside/outside function and c and e are constants defining the shape of the potential. From this potential they find the collision force which is applied on each surface, in opposite directions. Luciani and Moore-Wilhems introduce artificial springs between close-by rigid bodies, whose stiffness is proportional to K/d where K is a stiffness constant and d is the distance between surfaces. For hard and soft collision modeling, they use a stiffness K different
6 for approaching then for receding. The methods before contact are time consuming when the springs become very stiff because they need very small time steps. The solution after contact requires intersection calculations between bodies, taking into account point penetration and/or edge penetration (Figure 3). When each body is in displacement one against another, a bounding box method is used. It calculates intersection between the path of the points of one object and the boxes defined by the moving faces of the other object during a time step dt. Run-through without detection of the penetration, because the dt step is too large, is avoided by surrounding the boxes with an envelop. Generally, the step dt is sufficiently small enough so that the contact is situated very near the surface. In this way, no repelling is needed, avoiding the problem of choosing the right face where the point must be repelled. When objects are on resting (non-colliding) contact, Baraff (15) considers point to plane contacts, point to edge, point to point, edge to edge, edge to plane, and plane to plane contacts. For rigid bodies, the collision response is calculated by finding non linear and angular velocities for the bodies, obtained by conservation of the linear and angular momentum, and introducing a collision impulse. In the same way, Bathe and Chaudary (25) develop a model of contact based on static compressive loading and on impact using a complete finite element model. However, the goals in mechanical engineering and in computer animation are different. This model, when applied to stiff bodies, is uninteresting in computer animation because the same behavior under impact can be obtained from calculations on rigid bodies, without necessitating a great number of points and a long CPU time. But, to implement the natural behavior of a soft body, or deformations of a stiff body under intense impulsive load (27), a model of this type is necessary. Collision detection in 3D can also be processed by covering the 3D space by cubic cells. This approach is based on voxel machines (28,29). This voxel approach is used in Video Display Processors for video game machines. The space is represented by voxels which can be empty or can contain a representative value of a specific object. Each object occupies some voxels and the collision detection during motion consists simply of knowing if a voxel is empty before moving the object. The communication between objects and a collision detector is performed in terms of messages so each object is responsible for its own motion. In our algorithm for ball pressing and grasping, the collision detection is processed after penetration. Objects are based on oriented polygonal facets numbered in such a way that the normal to the facet is always directed to the outside of the object. A method to know whether a point P is on the same side or on the opposite side of the normal, is to choose an arbitrary point A on the facet and to calculate the dot product n. PA. The dot product will be greater than zero when P is in the same space partition as n. We can apply this property to each face of a convex hull to know whether a point P is inside or outside it. The knowledge of the position of the point P is enough because we suppose a pseudo-static problem. In a dynamic problem, the bounding boxes method would be needed. The hand and the ball after deformation, are not convex hulls. A first solution to solve this problem is to cut the concave hand in a collection of convex polyhedra and to apply the inside/outside test to each of them. This solution is awkward because the method for convex partitioning needs the clipping of the hand by planes. Each clipping plane orientation needs the composition of several translations and rotations and is very time consuming.
7 To simplify our specific problem, some assumptions were introduced. The initial center of the ball always remains located inside it, even if the ball is strongly deformed. This assumption is correct when the internal pressure is enough to balance the forces exerted by the fingers and keep them far enough away from the center. The ball nodes are always radially repelled. The radial repelling is made for all ball nodes and for all hand facets. So, the problem has a complexity of O(n1n2) for n1 triangles and n2 points. A parametric equation is used for the segment CM such that the point P(t) on this segment is P(t) = VC + (VM-VC)t and the intersection parameter tmin (Figure 4a) has been chosen. This allows us to find the nearest intersection of the ball center C (point I in table 1). To detect when the point I is effectively in the facet, we use a method based on the winding number. This method states that the sum of angles obtained connecting the point I to the successive vertices of the triangle is zero when I is inside the triangle and 360 degrees when it is outside. The radial repelling avoids situations where a ball node is repelled on a face which is not the good one (Figure 5). Indeed, without this precaution, when a point P penetrates until point P', the point P' is generally repelled on the nearest face in P'' in place of P''', giving wrong calculation of repelling forces in intensity and in direction for the point P". In a dynamic detection collision system, this problem is avoided by choosing a time step dt small enough to authorize only penetration into the dashed area. In our "hybrid" animation system, where parametric animation and physical animation are merged to simulate the behavior of real objects, a depth penetration is always possible because the hand is entirely driven by the animator and not by a small time step dt. The radial repelling avoids the situation evoked in Figure 5. Large geometric deformations of the ball mesh, which result in the reversing of some element meshes and give negative Jacobian matrices, are also avoided. This property is possible because the radial repelling results in a star-shaped simple polyhedron H as defined in 2D by Preparata and Shamos (30). In this kind of polyhedron, there is an internal point z such that for all points p of H, the line segment zp lies entirely within H. The locus of the points z having the above property is the kernel of H. In Figure 4a, the center C of the ball is the kernel of the polyhedra so that all of segment CM is inside the ball. An example of the first repelling process is shown in Figure 4b. Because our present formulation is based on Hooke's law, great deformations are not permitted. So, great deformations of elements such as BA in Figure 4b must be avoided. For that, a smoothing of the surface is processed after repelling, to eliminate prominent tips. The smoothing is a sliding average done on non repelled points and gives the surface shown in Figure 4c. After the average, points can be situated inside a finger. This temporary situation is not tested, and calculations by FEM are started. The average method gives a good initial solution to our problem. In an iterative process, it is an important factor to improve the speed of convergence. CONCLUSION AND FURTHER WORKS In this paper, some explanations have been given about the use of the finite element method for computer animation of characters in contact with their environment. The simulation of the environment and of the skin with the same method allowed us to model the deformations due to the contact forces during the grasping of a ball.
8 Furthermore, the use of the same numerical method for contact modeling between skin and environment is not enough. It must also include calculations of the skeleton deformations. In this way, human skeleton, skin, and objects in the environment will be modeled by the same method, successfully used in structural engineering. Presently our skeleton is made up of rigid segments (4), but realistic walking based on multilevel control may need telescopic legs (17). During the arm movements around the shoulders, the joint between the arm and the trunk is moving so the length of the arm is not always the same. It may appear shorter or longer depending on the movement. An approach based on the finite element method with deformable or rigid bones depending on the articulation seems to be a good one. The method is very time consuming and needs a great memory size because each node necessitates three degrees of freedom and because the volume contains a great number of nodes. To avoid the memory size problem, (but not the time problem), there is in structural engineering another method called the Boundary Element Method (BEM) which needs only nodes on the surface of the objects instead of nodes on the surface and in the volume. As with the FEM, the BEM allows volume properties and forces to be considered during calculations. It is similar to taking finite elements on the surface of the bodies and it is easy to combine with FEM. ACKNOWLEDGMENTS We wish to thank Russell Turner for editing the final manuscript. The research was supported by le Fonds National Suisse pour la Recherche Scientifique, the Natural Sciences and Engineering Council of Canada, the FCAR foundation, the Institut National de la Recherche en Informatique et Automatique (INRIA, France) and NATO. REFERENCES 1 - D.TOST and X.PUEYO "Human body animation: a survey" Visual Computer, Vol 3, n 3, pp. 254-264, 1988. 2 - J.P.GOURRET, N.MAGNENAT-THALMANN, D.THALMANN "Simulation of object and human skin deformations in a grasping task" Computer Graphics Proc. SIGGRAPH'89, vol 23 n 3, pp.21-31, Boston (MA), July 1989. 3 - J.P.GOURRET, N.MAGNENAT-THALMANN, D.THALMANN "The use of the finite element theory for simulating object and body deformations and contacts" Proc. Eurographics'89, pp.477-487, Hambourg (RFA), 1989. 4 - N.MAGNENAT-THALMANN and D.THALMANN "The direction of synthetic actors in the film rendez-vous a Montreal" IEEE Computer Graphics and applications Vol 7 No 12 (dec 1987) pp 7-19 7 - K.KOMATSU "Human skin model capable of natural shape variation" The Visual Computer,N 3 (1988) pp265-271 8 - N.MAGNENAT-THALMANN, R.LAPERRIERE and D.THALMANN "JointDependent Local Deformations for hand animation and object grasping" Proc.Graphics Interface'88, Edmonton,Canada. 5 - E.CATMULL "a system for computer-generated movies"Proc.ACM Annual Conf.,Vol 1 (1972) pp 422-431 6 - N.I.BADLER and M.A.MORRIS "Modeling flexible articulated objects" Proc.Comp.Graphics'82, on line conf., (1982) pp 305-314.
9 9 - J.E.CHADWICK, D.R.HAUMANN, R.E.PARENT "Layered construction for deformable animated characters" Computer Graphics, Proc. SIGGRAPH'89, vol 23 n 3, pp. 243-252, july 1989. 10 - A.H.BARR 'global and local deformations of solid primitives' computer graphics, proc. SIGGRAPH'84, Vol 18 No 3 (july 1984) pp 21-30 11 - B.WYVILL, C.McPHEETERS, G.WYVILL 'Animating soft objects' The Visual Computer, No 2 (1986) pp 235-242 12 - D.TERZOPOULOS, J.PLATT, A.BARR and K.FLEISCHER 'Elastically deformable models' Computer Graphics proc.SIGGRAPH'87, Vol 21 No 4 (july 1987) pp 205-214 14 - A.LUCIANI 'Un outil informatique de creation d'images animees: modeles d'objets, langage, controle gestuel en temps reel. Le systeme ANIMA' These Docteur-Ingenieur. INP Grenoble (1985) 15 - D.BARAFF "Analytical methodsfor dynamic simulation of non-penetrating rigid bodies" Computer Graphics, Proc. SIGGRAPH'89, Vol 23, n 3, pp.223-232, 1989. 16 - J.C.PLATT and A.H.BARR "Constraint methods for flexible models" Computer Graphics, Proc. SIGGRAPH'88, Vol 22, n 4,pp.279-288, 1988. 17 - A.BRUDERLIN and T.W.CALVERT "Goal directe, dynamic animation of human walking" Computer Graphics, Proc. SIGGRAPH'89, vol 23, n3, pp.233-242, 1989. 18 - N.C.KNOWLES "Finite element analysis" Computer Aided Design, Vol 16, n 3, pp.134-140, 1984. 19 - J.M.WINGET "Advanced graphics hardware for finite element analysis" (J.F.Cory Jr., J.L.Gordon, Eds.), PVP Vol 143, ASME, NY, 1988. 20 - R.S.GALLAGHER and J.C.NAGTEGAAL "An efficient 3D visualization technique for finite element models and other coarse volumes" Computer Graphics, Proc.SIGGRAPH'89, vol 23, n 3, pp.185-194, 1989. 13 - M.MOORE and J.WILHEMS "Collision detection and response for computer animation" Comp.Graphics, Proc.SIGGRAPH'88, Vol 22 N 4, (1988) pp 289298 21 - K.J.BATHE "Finite element procedures in engineering analysis", Prentice Hall, Inc., (1982) 22 - O.C.ZIENKIEWICZ "The finite element method" third edition, McGraw-Hill, London, (1977) 26 - "Robot motion: planning and control" (Brady, Hollerbach, Johnson, LozanoPerez, mason, Eds.), 1984. 23 - J.K.HAHN "Realistic animation of rigid bodies" Computer Graphics, Proc SIGGRAPH'88, Vol 22, n 4, pp.299-308, 1988. 24 - A.B.CHAUDHARY and K.J.BATHE "A solution method for static and dynamic analysis of three dimensional contact problems with friction" Comp.Struc. Vol 24 N 6 (1986) pp 855-873
10
25 - K.J.BATHE, A.CHAUDARY "A solution method for planar and axisymetric contact problems" Int. J. for Num. Meth. Eng. Vol 21, pp.65-88, 1985. 27 - G.R.Johnson, D.D.COLBY and D.J.VAVRICK "3D computer code for dynamic response of solids to intense impulsive loads" Int. J. Num. Meth. in Eng., Vol 14, pp.1865-1871, 1979. 28 - T.UCHIKI, T.OHASHI, M.TOKORO "Collision detection in motion simulation Comp. and Graphics, Vol 7, n 3-4, pp. 285-293, 1983. 29 - T.OHASHI, T.UCHIKI, M.TOKORO "A 3D shaded display method for voxel based representation" Proc. Eurographics'85, (C.E.Vandoni, Ed.), pp.221-232, 1985. 30 - F.P.PREPARATA and M.I.SHAMOS "Computational geometry" SpringerVerlag, 1985.
11
1. positioning (parametric animation)
2. repelling (geometrically)
3. solving Uu for ball Ru for contacts
4. prescribing non penetration
P
ball node repelled during step 2
2 R2
P 3
skin facet
R
3
RI = force calculated during step 3 Ri = dispatched forces
R
P 1 R
1
5. solving Uu everywhere Ru on bones
table 1
I
direction of the ball center
12
Fig. 3 Point and edge collision
M t=1 a)
P(t) tmin
VM
C (t=0) VC
V
system coordinate center
B
b) A
C
c)
C
Figure 4 ball nodes repelling
13 P
step dt
P'
P"
Fig.5 A four faceted object collided by a point P when the step time dt is too large
14
List of captions Figure 1: Ball grasping after 3 iterations Figure 2: a- Finger flexion without contact b- Finger with special bones Figure 3: Point and edge collision Figure 4: Ball nodes repelling a- before repelling b- repelling process c- after repelling and smoothing Figure 5: A four faceted object collided by a point P when the time step dt is too large Table 1: the algorithm