We present efficient algorithms for collision detection and contact determination between geometric models, described by linear or curved boundaries, undergoing rigid motion. The heart of our collision detection algorithm is a simple and fast incremental method to compute the distance between two convex polyhedra. It utilizes convexity to establish some local applicability criteria for verifying the closest features. A preprocessing procedure is used to subdivide each feature's neighboring features to a constant size and thus guarantee expected constant running time for each test. The expected constant time performance is an attribute from exploiting the geometric coherence and locality. Let n be the total number of features, the expected run time is between o(#) and 0(n) depending on the shape, if no special initialization is done. This technique can be used for dynamic collision detection, planning in three-dimensional space, physical simulation, and other robotics problems. The set of models we consider includes polyhedra and objects with surfaces described by rational spline patches or piecewise algebraic functions. We use the expected constant time distance computation algorithm for collision detection between convex polyhedral objects and extend it using a hierarchical representation to distance measurement between non-convex polytopes. Next, we use global algebraic methods for solving polynomial equations and the hierarchical description to devise efficient algorithms for arbitrary curved objects. We also describe two different approaches to reduce the frequency of collision detection from pairwise comparisons in an environment with n moving objects. One of them is to use a priority queue sorted by a lower bound on time to collision; the other uses an overlap test on bounding boxes. Finally, we present an opportunistic global path planner algorithm which uses the incremental distance computation algorithm to trace out a one-dimensional skeleton for the purpose of robot motion planning. The performance of the distance computation and collision detection algorithms attests their promise for real-time dynamic simulations as well as applications in a computer generated virtual environment.