Archive for March, 2007

GDC 2007

Hello all!

I again participated at the GDC, giving a physics tutorial with Jim Van Verth, Christer Ericson, Squirrel Eiserloh, Gino van den Bergen, and Marq Singer. I changed my presentation a bit this year because I wanted to coordinate better with the other speakers and I wanted to discuss Jacobians and more constraint types. I have added only a couple of enhancements to Box2D at this time.

Download my presentation here. I hope you find it useful.

Sequential Impulses

In 2005 I had a poster session at the GDC called “Iterative Dynamics with Temporal Coherence.” Obviously, such an obscure title is not likely to gain the headlines at the GDC. Further, trying to describe the PGS algorithm to game developers proved to be quite challenging. Nevertheless, a couple people out there managed to struggle through it.

I spent much of the next year talking with my co-worker and friend Gary Snethen about ways to simplify the PGS algorithm into something digestible for a wider audience. Gary had the brilliant idea that PGS is equivalent to applying impulses. I also read this and a paper from ETHZ 2005 (I can’t find it online now).

So I set out to prove that PGS is equivalent to sequential impulses. I scribbled some formulas down and it immediately became apparent that they are equivalent if you clamp accumulated impulses. So that was the birth of my version of SI. I presented all of this at the GDC 2006 tutorial with the Box2D mini-engine.

Now I don’t believe that SI is necessarily a new invention, however I had not seen the algorithm explicitly presented in any published work. I believe that accumulated clamping is the key to the algorithm, and I have not seen accumulated clamping presented explicitly in any other work. Also, SI with accumulated clamping is mathematically equivalent to PGS, so it is not a new mathematical device, on the other hand it is a new algorithm in the sense that a separate accumulator is not needed.

I hope this settles the origins of SI once and for all and properly credits Gary for his contribution.