An algorithm for calculating the minimum distance between non-convex polyhedra is described. A polyhedron is represented by a set of triangles. In calculating the distance between two polyhedra, it is important to search efficiently thepair of the triangles whichgives the pair of closest points. In our algorithm discrete Voronoi regions are prepared as voxels around a non-convex polyhedron. Each voxel is given the list of triangles which have possibility to be the closest to the points in the voxel. When a triangle on the other object is intersecting a voxel, the closest triangles can be efficiently searched from this list on the voxel. The algorithm has been implemented, and the results of distance computations show that it can calculate the minimum distance between non-convex polyhedra composed of a thousand of triangles at interactive rates.