We present an approach to reciprocal collision avoidance, where multiple mobile agents must avoid collisions with each other while moving in a common workspace. Each agent acts fully independently, and does not communicate with others. Yet our approach guarantees that all agents will be collision-free for at least a fixed amount of time. Our approach provides a sufficient condition for collision-free motion. Given the agent's objective, the optimal collision-free action can be computed very efficiently, as it is the solution to a two-dimensional linear program. We show our approach on dense and complex simulation scenarios involving thousands of agents at fast real-time running times.