Skip to main content

Rigid-Body Systems

  • Chapter
  • 1428 Accesses

Part of the Simulation Foundations, Methods and Applications book series (SFMA)


This chapter presents the theoretical and practical aspects of designing and implementing dynamic-simulation engines for rigid-body systems. It covers both generic and specialized algorithms for non-convex and convex objects, respectively, including the special cases of thin and fast moving objects. Special attention is given to one of the most difficult and least understood topics in physically based modeling, namely, the computational techniques needed for determining all impulsive and contact forces between bodies with multiple simultaneous collisions and contacts.


  • Rigid Body
  • Contact Force
  • Convex Body
  • Collision Detection
  • Collision Time

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

This is a preview of subscription content, access via your institution.

Buying options

USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-1-4471-4417-5_4
  • Chapter length: 87 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
USD   59.99
Price excludes VAT (USA)
  • ISBN: 978-1-4471-4417-5
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   79.95
Price excludes VAT (USA)
Hardcover Book
USD   109.99
Price excludes VAT (USA)
Fig. 4.1
Fig. 4.2
Fig. 4.3
Fig. 4.4
Fig. 4.5
Fig. 4.6
Fig. 4.7
Fig. 4.8
Fig. 4.9
Fig. 4.10
Fig. 4.11
Fig. 4.12
Fig. 4.13
Fig. 4.14
Fig. 4.15
Fig. 4.16
Fig. 4.17
Fig. 4.18
Fig. 4.19
Fig. 4.20
Fig. 4.21
Fig. 4.22
Fig. 4.23
Fig. 4.24
Fig. 4.25
Fig. 4.26
Fig. 4.27
Fig. 4.28
Fig. 4.29
Fig. 4.30
Fig. 4.31
Fig. 4.32
Fig. 4.33
Fig. 4.34
Fig. 4.35
Fig. 4.36
Fig. 4.37
Fig. 4.38
Fig. 4.39
Fig. 4.40
Fig. 4.41
Fig. 4.42
Fig. 4.43


  1. 1.

    The algorithm presented in Appendix F (Chap. 11) limits the set of valid cut faces to simple polygons (without holes or double edges). This, in turn, makes the algorithm unsuitable for decomposing complex geometric shapes.

  2. 2.

    This issue has been already discussed in Sect. 1.4.4 of Chap. 1, but it is revisited here for completeness.

  3. 3.

    The direction defined by the line connecting the closest points at t i .

  4. 4.

    Since an edge is shared by two faces, the underlying implementation data structure representing the rigid body’s face must have its own edge structure because the same edge has one direction for one of its faces, and the reverse of this direction for the adjacent face.

  5. 5.

    This owes to the fact that the bodies have convex shapes. Unfortunately, the same does not apply for the case in which the bodies have non-convex shapes.

  6. 6.

    There is no particular preference for which violated plane should be used in the event that there is more than one.

  7. 7.

    We shall use the parameter λ to index the points on edge b 2.

  8. 8.

    Recall that \(\vec{p}_{2}\) is the point on b 2 closest to b 1.

  9. 9.

    Equation (4.33) is the same as Eq. (4.29), and is repeated here for convenience.

  10. 10.

    The plane in this case is defined as \(\pi_{\vec{p}_{i}, \vec{q}_{i}} = \{\vec{x}: (\vec {n}_{i} \cdot \vec{x} + d_{i}) = 0\}\), as opposed to \(\{\vec{x} : (\vec{n}_{i} \cdot \vec{x} - d_{i}) = 0\}\). The latter is the definition used in all other sections of this book.

  11. 11.

    We will use the vector-based notation as much as possible to keep the equations concise. However, there are cases in which we do need to rewrite the equations using the individual components of each vector, such as when computing the critical-friction coefficient covered later in this section.

  12. 12.

    Even though the use of the indexes is not particularly useful for the single-collision case, they will be extensively applied in the block-matrix representation of multiple collisions to distinguish between equations associated with collisions involving different rigid bodies.

  13. 13.

    If the actual coefficient of friction is equal to the critical coefficient of friction, then the sliding motion will stop exactly at the instant corresponding to the end of the collision.

  14. 14.

    Keep in mind that the velocities computed so far assume that the sliding motion continues throughout the collision.

  15. 15.

    The local-coordinate frame is defined by the collision normal and tangent plane.

  16. 16.

    Whenever a collision becomes a contact, the collision normal will be referred to as the contact normal.

  17. 17.

    Notice that F t is zero if a t (t) is zero.


  1. Baraff, D.: Analytical methods for dynamic simulation of non-penetrating rigid bodies. Comput. Graph. (Proc. SIGGRAPH) 23, 223–232 (1989)

    CrossRef  Google Scholar 

  2. Baraff, D.: Curved surfaces and coherence for non-penetrating rigid body simulations. Comput. Graph. (Proc. SIGGRAPH) 24, 19–28 (1990)

    CrossRef  Google Scholar 

  3. Baraff, D.: Coping with friction for non-penetrating rigid body simulation. Comput. Graph. (Proc. SIGGRAPH) 25, 31–40 (1991)

    CrossRef  Google Scholar 

  4. Baraff, D.: Dynamic simulation of non-penetrating rigid bodies. PhD Thesis, Cornell University (1992)

    Google Scholar 

  5. Baraff, D.: Fast contact force computation for non-penetrating rigid bodies. Comput. Graph. (Proc. SIGGRAPH) 28, 24–29 (1994)

    CrossRef  Google Scholar 

  6. Beer, F.P., Johnston, E.R.: Vector Mechanics for Engineers: vol. 2—Dynamics. McGraw-Hill, New York (1977)

    Google Scholar 

  7. Brach, R.M. (ed.): Mechanical Impact Dynamics: Rigid Body Collisions. Wiley, New York (1991)

    Google Scholar 

  8. Baraff, D., Witkin, A.: Partitioned dynamics. Technical Report CMU-RI-TR-97-33, The Robotics Institute at Carnegie Mellon University (1997)

    Google Scholar 

  9. Baraff, D., Witkin, A.: Physically based modeling. SIGGRAPH Course Notes 13 (1998)

    Google Scholar 

  10. Cameron, S.: Enhancing GJK: computing minimum and penetration distances between convex polyhedra. In: Proceedings IEEE International Conference on Robotics and Automation, pp. 3112–3117 (1997)

    CrossRef  Google Scholar 

  11. Campagna, S., Kobbelt, L., Seidel, H.-P.: Directed edges: a scalable representation for triangle meshes. J. Graph. Tools 3(4), 1–11 (1998)

    CrossRef  Google Scholar 

  12. de Berg, M., van Kreveld, M., Overmars, M., Schwartskopf, O.: Computational Geometry: Algorithms and Applications. Springer, Berlin (1997)

    MATH  Google Scholar 

  13. Duff, I.S., Erisman, A.M., Reid, J.K.: Direct Methods for Sparse Matrices. Oxford University Press, London (1986)

    MATH  Google Scholar 

  14. Gilbert, E.G., Johnson, D.W., Keerthi, S.S.: A fast procedure for computing the distance between complex objects in three-dimensional space. IEEE J. Robot. Autom. 4(2), 193–203 (1988)

    CrossRef  Google Scholar 

  15. Goldstein, H.: Classical Mechanics. Addison-Wesley, Reading (1950)

    Google Scholar 

  16. Hahn, J.K.: Realistic animation of rigid bodies. Comput. Graph. (Proc. SIGGRAPH), 299–308 (1988)

    Google Scholar 

  17. Keller, J.B.: Impact with friction. Trans. ASME J. Appl. Mech. 53, 1–4 (1986)

    MathSciNet  MATH  CrossRef  Google Scholar 

  18. Kawachi, K., Suzuki, H., Kimura, F.: Simulation of rigid body motion with impulsive friction force. In: Proceedings IEEE International Symposium on Assembly and Task Planning, pp. 182–187 (1997)

    Google Scholar 

  19. Lötstedt, P.: Numerical simulation of time-dependent contact friction problems in rigid-body mechanics. SIAM J. Sci. Stat. Comput. 5(2), 370–393 (1984)

    MATH  CrossRef  Google Scholar 

  20. Mirtich, B.V.: Impulse-based dynamic simulation of rigid body systems. PhD Thesis, University of California, Berkeley (1996)

    Google Scholar 

  21. Mirtich, B.: V-clip: fast and robust polyhedral collision detection. Technical Report TR-97-05, MERL: A Mitsubishi Electric Research Laboratory (1997)

    Google Scholar 

  22. Mirtich, B.: Rigid body contact: collision detection to force computation. Technical Report TR-98-01, MERL: A Mitsubishi Electric Research Laboratory (1998)

    Google Scholar 

  23. Ong, C.J., Gilbert, Elmer G.: The Gilbert–Johnson–Keerthi distance algorithm: a fast version for incremental motions. In: Proceedings IEEE International Conference on Robotics and Automation, pp. 1183–1189 (1997)

    Google Scholar 

  24. O’Rourke, J.: Computational Geometry in C. Cambridge University Press, Cambridge (1998)

    MATH  CrossRef  Google Scholar 

  25. Shabana, A.A.: Computational Dynamics. Wiley, New York (2010)

    MATH  CrossRef  Google Scholar 

  26. Skiena, S.: The Algorithm Design Manual. Springer, Berlin (1997)

    MATH  Google Scholar 

  27. Thürmer, G., Wüthrich, C.A.: Computing vertex normals from polygonal facets. J. Graph. Tools 3(1), 43–46 (1998)

    MATH  CrossRef  Google Scholar 

  28. van den Bergen, G.: A fast robust GJK implementation for collision detection of convex bodies. J. Graph. Tools 4(2), 7–25 (1999)

    MathSciNet  CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations


Rights and permissions

Reprints and Permissions

Copyright information

© 2013 Springer-Verlag London

About this chapter

Cite this chapter

Coutinho, M.G. (2013). Rigid-Body Systems. In: Guide to Dynamic Simulations of Rigid Bodies and Particle Systems. Simulation Foundations, Methods and Applications. Springer, London.

Download citation

  • DOI:

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-4471-4416-8

  • Online ISBN: 978-1-4471-4417-5

  • eBook Packages: Computer ScienceComputer Science (R0)