## Books

Real-time collision detection. I spent way too much time over the last few years of my life writing a book on collision detection. It covers a large number of primitive tests, spatial partitioning methods, bounding volumes and bounding volume hierarchies, robustness issues, and lots more. Check out the book page for more detail.

Recommended list. I admit it — I'm a compulsive book buyer. Thanks to me, many book publishers are still in business! Out of all the books I have, there are a few that I think any self-respecting (games) programmer should have. Those books are listed here.

## Papers & Slides

**GDC 2007 — Physics for Games Programmers: Numerical Robustness (for Geometric Calculations)**
At GDC 2007 I again talked about numerical robustness at the physics tutorial sessions.
[slides ppt 297KB]

**GDC 2007 — Physics for Games Programmers: Collisions using separating-axis tests.**
In the 2007 physics tutorial sessions I also talked about the separating-axis test, and here are
the slides.
[slides ppt 191KB]

**GDC 2006 — Physics for Games Programmers: Numerical Robustness (for Geometric Calculations)**
I held a repeat of my GDC 2005 talk at the GDC 2006 Physics tutorial. The slides are
virtually identical to the GDC 2005 talk, except now with a nicer white background. The
comments below on the previous incarnation of the talk still applies.
[slides ppt 297KB]

**GDC 2005 — Numerical Robustness for Geometric Calculations (**aka** EPSILON is NOT 0.00001!)**
This is my GDC 2005 presentation that gives an overview of floating-point numbers and
their issues. The talk grew out of my frustration seeing lots and lots of broken
floating-point code posted on the net and various online forums. It's very easy to
screw up floating-point-based code, and here I show why! There are no notes for
this presentation (although the slides have some notes) but Chapters 8 and 11 of RTCD
cover the presented information in deeper detail. (Robustness is relly important
in general, which is why I talk about it a lot in my book.)
[slides ppt 542KB]

**SIGGRAPH 2004 — The Gilbert-Johnson-Keerthi Algorithm.** At SIGGRAPH 2004, as part of the *Collision
Detection and Proximity Queries* course, I held a presentation on the GJK algorithm for
determining intersection between convex polyhedra.
The notes are heavily based on material from my book.
[notes pdf 2,859KB;
slides ppt 494KB]

**GDC 2003 — Memory Optimization.** At GDC 2003 I presented a lecture on memory optimization,
talking about ways to deal with the bottleneck between CPU and main memory. There are no notes,
but the slides are quite self-contained so that should hopefully not be a problem. However,
for more information, Chapter 13 of my book deals with the topics of this presentation in
deeper detail.
[slides ppt 827KB]

## Articles

**Combined absolute and relative tolerances revisited. (06/09/2007)**
This article expands on the coverage in both my book as well as my GDC slides of how to combine
absolute and relative tolerance tests into a single test.