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 based on the input data, and analyzing the surface model along a plurality of paths outwardly extending from points on the perimeter along the three-dimensional surface to produce gingival margin data. Methods also include receiving point input data that defines a point on the virtual tooth, 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 based on the axis input and the computed vector. Methods also include receiving permissible movement input data directed to permissible movement of a first virtual tooth, simulating, in three dimensional space, bringing the first virtual tooth into contact with a second virtual tooth while constraining movement of the first virtual tooth based on the permissible movement input data, and displaying data resulting from the simulation.