I am looking for literature - or a simple explanation - on how the Farseer (and for that reason, the Box2D) collision detection system works - specifically the logic that comes after the broadphase culling:

  • What data structure does it use?
  • How does it use that data structure to determine if a collision has occurred?
  • How does it calculate the response normals?

NB: I am not asking how to use it, I merely want to know how it works as a matter of personal enlightenment.

  • \$\begingroup\$ Add a bounty and post the link to question on Farseer/Box2D boards. \$\endgroup\$
    – Den
    Nov 2, 2011 at 12:02
  • \$\begingroup\$ Have you considered jumping into the source and checking it out? \$\endgroup\$ Nov 2, 2011 at 18:26
  • \$\begingroup\$ @Drackir I definitely have been looking at the code - but it's hard to get started when I don't know what I am actually looking at :). Really; I am just look for a broad overview so that I have it at the back of my mind while reading the code. \$\endgroup\$ Nov 2, 2011 at 21:31

2 Answers 2


I really recommend Real-Time Collision Detection by Christer Ericson

It'll answer all your questions, go buy, rent, steal this book.

  • \$\begingroup\$ It's worth noting, that this book covers 3D collision detection, whereas box2d and farseer are 2D. \$\endgroup\$ Nov 2, 2011 at 15:44
  • \$\begingroup\$ Many thanks. I'll avoid stealing it at all costs :). \$\endgroup\$ Nov 2, 2011 at 21:31

There is a small explanation of the Farseer 2.1 physics. It includes information on both SAT and Distance Grid detection.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .