The ability to realistically simulate physical objects' motion behaviors has become an area of great importance in science, engineering, training and planning. Realistic simulation requires accurately modeling the behavior and interactions of contacting objects. In particular, it is necessary to be able to simulate the same non-interpenetrating motion that real- world objects undergo. An important subset of physical simulation is simulations where all objects are modeled as being perfectly rigid. The abstraction of a perfectly rigid body, though physically unobtainable, is an excellent and reasonable approximation for many real-world applications in robotics and computer graphics. Even with the rigid-body assumption, simulation is made difficult by the need to deal with complex surface geometries and contact phenomena such as friction. This project aims at extending the capabilities of current physical simulation systems that model contact and collision between systems of rigid bodies and explore practical uses for simulation systems. Specifically, the investigation centers on the development of new geometrical algorithms that allow for simulations with greater levels of geometric complexity, and the extension of computational complexity bounds and algorithms for the problem of contact with friction. This project will also explore using non-interpenetration constraints to aid in interactive computer-aided design and modeling applications.