Generation of surface meshes remains an active research problem despite the many publications addressing this topic. The main issues which must be treated by a good remeshing algorithm are: element quality, sizing control, approximation accuracy, robustness and efficiency. One reason surface meshing is such a challenging problem is the fact that using the Euclidean metric to measure distances between points on the surface can generate large discrepancies between the original surface and the constructed mesh. We solve this problem by using geodesic distances on the surface. The ability to accurately and efficiently compute geodesic distances, and propagate them across the mesh, permits us to generate quality surface meshes which closely approximate the input without using costly parameterization techniques.