Game Development Reference
Figure 1.9. Using the symplectic Euler method to approximate an orbit.
uses an implicit value of velocity to update position:
v i +1
= v i + h F ( t i , x i , v i ) /m,
= x i + h v i +1 .
x i +1
This takes advantage of the fact that velocity is the derivative of position, and
the end result is that we get a very stable method that only requires one force
calculation. It does have the disadvantage that it is not as accurate with constant
forces, but in those cases, we should consider using Equation (1.4) anyway.
In Figure 1.9, we see the result of using symplectic Euler with one step of our
orbit example. Admittedly this is a bit contrived, but we see that, in principle,
it is extremely stable—neither spiraling outward as explicit Euler would do nor
spiraling inward as implicit Euler would do.
1.8 Further Reading
This chapter is mainly intended as an overview, and the interested reader can find
more details in a wide variety of sources. Good references for linear algebra with
widely varying but useful approaches are [Anton and Rorres 94] and [Axler 97].
Kenneth Joy also has a good series on vectors, points, and affine transformations,
found in [Joy 00c], [Joy 00b], and [Joy 00a].
The standard quaternion reference for graphics is [Shoemake 85], which has
been expanded to excellent detail in [Hanson 06]. An early series of articles
about game physics is [Hecker 97], and [Witkin and Baraff 01] provides thorough
coverage of the early Pixar physics engine. It is also worth mentioning [Catto 06],
which first introducedme to the symplectic Euler method, for which I am eternally
Finally, without modesty, a good general source for all of these topics is my
own work, cowritten with Lars Bishop [Van Verth and Bishop 08].