We propose an accurate collision detection algorithm for use in virtual reality applications. The algorithm works for three-dimensional graphical environments where multiple objects, represented as polyhedra (boundary representation), are undergoing arbitrary motion (translation and rotation). The algorithm can be used directly for both convex and concave objects and objects can be deformed (nonrigid) during motion. The algorithm works efficiently by first reducing the number of face pairs that need to be checked accurately for interference, by first localizing possible collision regions using bounding box and spatial subdivision techniques. Face pairs that remain after this pruning stage are then accurately checked for interference. The algorithm is efficient, simple to implement, and does not require any memory-intensive auxiliary data structures to be precomputed and updated. The performance of the proposed algorithm is compared directly against other existing algorithms, e.g., the separating plane algorithm, octree update method, and distance-based method. Results are given to show the efficiency of the proposed method in a general environment.