Contact Detection Algorithms S. Kockara 1 , T. Halic 1 , C. Bayrak 1 , K. Iqbal 1 , and R. A. Rowe 2 University of Arkansas at Little Rock 1 , University of Arkansas for Medical Sciences 2 Abstract— A process that determines whether two or more bodies make contact at one or more points is called contact detection or collision detection. Contact detection is inseparable part of the computer graphics, surgical simulations, and robotics etc. There are large of methods that are used for collision detection. We will review a few of the most common ones. Algorithms for contact determination can be grouped into two general categories - broad-phase and narrow-phase-. This paper provides a comprehensive classification of a collision detection literature for the two phases. Moreover, we have attempted to explain some of the existing algorithms which are not easy to interpret. In the process, we have tried to keep sections self-explanatory without sacrificing depth of the coverage. Index Terms—contact detection, collision detection, deformation, bounding volumes, spanner I. BROAD-PHASE COLLISION DETECTION When given the two models and their placements in the world space, the simplest brute force approach to perform a collision query is to test each of the primitive segments in object A against each of the primitive segments of object B; that process requires number of A’s primitive segments times number of B’s primitive segments overlap tests. This approach is reasonable for relatively small models. However, we cannot perform exhaustive pair-wise testing on models which have thousands of primitives since a collision query needs to be performed in every simulation step in order to detect colliding objects. Animations can have many objects, all of which may have a complex geometry such as polygonal soups of several thousands facets. Therefore, performing collision detection is computationally extensive task. Yet, it can be difficult to obtain real time interaction. Thus, to eliminate these computationally costly pair-wise tests different algorithms are proposed in the literature. Hubbard [1] was the first to classify the collision detection into two parts e.g. broad-phase and narrow- phase. Those concepts of broad-phase and narrow phase collision detection reduce the computational load by performing a coarse test in order to prune an unnecessary pair test. Broad-phase collision detection identifies disjoint groups of possibly intersecting objects. On the contrary, pruning unnecessary primitive-pair test is narrow-phase collision detection which identifies disjoint groups of possibly intersecting objects’ primitives e.g. polygons. Most of the literature uses Hubbard’s broad and narrow phase collision detection scheme to classify collision detection algorithms [2]-[3]. The same classification technique will also be used throughout this survey along with introduction of new algorithms. Some of the methods such as bounding volumes or boxes are included in both broad and narrow phase collision detection. II. BROAD-PHASE COLLISION DETECTION From computational geometry [4], we know that broad phase collision detection can be achieved by answering these questions: which box contains a given point and/or which boxes overlap a given box. Therefore, for broad- phase collision detection, approximating objects with boxes make broad-phase collision detection easier. However, we also need to know which boxes will be overlapped in the next iteration because in physics-based animations objects can move and deform in time. To perform this, broad-phase collision detection can be done with three different kinds of algorithms: All-pair test (Exhaustive Search), sweep and prune (Coordinate Sorting), and hierarchical hash tables (multi level grids). An exhaustive search is the brute-force approach which compares each object’s bounding volume with others’ bounding volumes. If algorithm finds colliding bounding volumes then it starts further investigation with narrow phase collision detection algorithms. Sweep and prune algorithm [5][6] projects every object’s bounding volume’s starting and ending points onto the coordinate axes. If there is intersection among the entire principal coordinate axes then there is a collision between those objects. Another approach for broad-phase collision detection is hierarchical hash tables, such as grid [7]. This algorithm divides the entire scene into the equal size grids along all the principal axes. All points overlapping with the given grid cell is identified by the algorithm. If there is more than one object sharing the same cell, those objects are possibly colliding objects. III. NARROW-PHASE COLLISION DETECTION Broad phase lists pairs of possible colliding objects and narrow phase inspects further each of these pairs and finally contact determination algorithms verify the exact collisions. Narrow phase algorithms usually return more detailed information such as separation distance, penetration depth, closest points etc. This information can be later used for the computation of time of impact, collision response and forces, and contact determination. Narrow phase collision detection algorithms can be categorized into four groups [8]: feature-based, simplex- JOURNAL OF COMPUTERS, VOL. 4, NO. 10, OCTOBER 2009 1053 © 2009 ACADEMY PUBLISHER