Methods for recognizing a virtual tooth surface, defining a virtual tooth coordinate system, and simulating a collision between virtual teeth are provided. Methods include receiving input data specifying a point on the rendered surface model associated with a tooth, deriving a perimeter on the surface model of the tooth, and analyzing the surface model along a plurality of paths outwardly extending from points on the perimeter. Methods also include receiving point input data, receiving axis input data that defines first and second axes associated with the virtual tooth, computing a substantially normal vector for a portion of the tooth surface surrounding the point, and computing a coordinate system. Methods also include receiving permissible movement input data directed to permissible movement of a first virtual tooth, bringing the first virtual tooth into contact with a second virtual tooth, and displaying data resulting from the simulation.