If I have a complex 3D model (provided as a Wavefront OBJ file, all faces are triangles) and a point in the same space, how can I find the closest point on the surface of the model? I’m interested not only in (X, Y, Z) but also corresponding interpolated (U, V) values. The model is not strictly convex. I’m working in C#. Are there any premade libraries that can do this, or am I going to have to implement it myself?