We present methods for modeling complex manipulations at interactive rates. These methods are based on assigning actions to primitives within a virtual object. By knowing which primitives are active, we can optimize collision detection and response schemes. We describe the optimizations to collision detection, and present a scheme bounding primitives of objects that are not commonly considered, such as bounding edges of objects composed of faces, or bounding the swept volume of objects composed of edges. We present a scheme for resolving object interpenetration based on allowing one object to follow the contour of another. These methods have been implemented in surgical simulation software but can be generalized to other applications as well. We present examples of complex object interactions, which illustrate the efficiency of these methods.