Patent ID: 7092862

Claim:
A computer implemented process for simulating dynamic movement of two three-dimensional objects selected from a plurality of specified objects to determine whether the two three-dimensional objects will collide in a three-dimensional space comprising: using a computer having a memory and a collision detection program and the plurality of specified objects stored in the memory, performing the steps of; (a) responsive to a user selection of a first object and a second object from the plurality of specified objects; (b) designating a first object subsurface, a first object size, and a first object subsurface variance; (c) designating a second object subsurface, a second object size, and a second object subsurface variance; (d) calculating a first object subsurface normal for the first object subsurface; (e) calculating a second object subsurface normal for the second subsurface; (f) initializing a first object orientation, a first object position, and a first object velocity in the three dimensional space; (g) initializing a second object orientation, a second object position, and a second object velocity in the three dimensional space; (h) calculating a first dot product between the first object subsurface normal and the second object subsurface normal; (i) determining whether the dot product is negative; and (j) responsive to determining that the first dot product is negative, calculating a relative subsurface vector from the first object subsurface normal to the second object subsurface normal; (k) calculating a second dot product between the relative subsurface vector and the first object subsurface normal; (l) responsive to a determination that the second dot product is negative, calculating a third dot product of a first object subsurface individual elemental normal to a second object subsurface individual elemental normal; (m) responsive to a determination that the third dot product is negative, calculating a relative elemental vector from the first object elemental normal to the second object elemental normal; (n) calculating a fourth dot product of the relative elemental vector to the first object elemental normal; and (o) responsive to a determination that the fourth dot product is negative, providing a determination that the objects have collided.