Foundations of Physically Based Modeling & Animation


As they are found, errata will be listed under the appropriate chapter headings. Thus, it would be good to refer back to this page from time to time.


  1. Introduction
  2. Simulation Foundations
  3. Follow the Bouncing Ball
  4. pg 25, Fig. 3.1: The assignment Timestep = TimestepRemaining; should be just after the while statement, not before, as currently in the text. The comment try to simulate a full timestep should be on the assignment TimestepRemaining = h;

  5. Particle Systems
  6. pg. 46: The exponent in the Gaussian formula is missing a negative sign.

    pg. 47: Brian Wyvill points out that Archimedes hatbox: is another useful approach to understanding how to distribute random points uniformly over a sphere. In addition, there is an easier to understand algorithm by Marsaglia that begins by picking pairs of uniformly distributed random numbers x1 and x2 over the interval [-1, 1] and rejecting pairs for which x12 + x22 >= 1

    pg. 55: At the top of the page had its speed reduced by ρ should read had its speed reduced by cr

  7. Particle Choreography
  8. pg. 76: In the figure at the top of the page, the label v̂i should be on the velocity vector, not on the vector between the particle position and the sphere center.

  9. Interacting Particle Systems
  10. pg. 97: The first sentence to the left of the diagram has a spurious 0. It should read ... near to each other but relatively far ...

  11. Numerical Integration
  12. pg. 115: The label on the top of the rightmost graph should read Third order not Second order.

    pg. 141: At the bottom of the worked example, the solution for v1[n+1] should be -1.089 not -1.09.

  13. Deformable Springy Meshes
  14. Rigid Body Dynamics
  15. pg. 200: Clarification: the definition of omega in the derivation of q-dot should make it clear that u is the unit vector in the direction of the angular velocity vector (i.e. it is parallel to the axis of rotation), and theta-dot is the signed magnitude of the angular velocity (i.e. it is the rotational speed, with sign determined by the right-hand rule).

  16. Rigid Body Collisions and Contact
  17. Constraints
  18. Articulated Bodies

    pg. 261: in the ComputeArticulatedInertia() procedure, the term L[i] in the computation of Qi should be L[i]

  19. Foundations of Fluid Dynamics
  20. pg. 267: In this chapter should read In this section.

    pg. 268: The last paragraph of section 13.1 should read:
    In the rest of this chapter we first lay out the mathematical foundations for treating continuous fields, and describe the Navier-Stokes equations for fluid momentum update. In the following two chapters we go on to demonstrate the most popular Lagrangian and Eulerian methods for simulating fluids for computer animation.

  21. Smoothed Particle Hydrodynamics
  22. pg. 283 1st paragraph: IN THIS SECTION ... should read IN THIS CHAPTER ..., and hydrodynamics should read fluid dynamics.

    pg. 285 top: The integral should be over the volume of the kernel, not a path integral.

  23. Finite Difference Algorithms


  1. Vectors
  2. pg. 323: To the left are ... should read To the right are ....

  3. Matrix Algebra
  4. pg. 337: The determinant |M| in example 1. should be 3, not 1/3.

  5. Affine Transformations
  6. pg. 345: Last sentence should read Appendices D and E provide alternate methods for specifying rotation.

  7. Coordinate Systems
  8. pg. 350: Clarification - the third figure down on the right has a curved arrow containing an "x". This is meant to be the crossproduct symbol, not the coordinate x. So the meaning of the figure is that crossing a into b gives a vector in the direction of uz.

  9. Quaternions
  10. Barycentric Coordinates

Foundations of Physically Based Modeling & Animation