For the isothermic goal to work, the initial mesh needs to be either fairly good to start with, or quite free (in terms of fixed corners/boundaries, or pulling onto surfaces).
If a grid is fully aligned with principal curvature directions, there can’t ever be any odd valence irregular vertices. It seems these isothermic meshes can sometimes still work with some, but lots of automatic quad meshers give an output with too many valence 3 and 5s, which tend to cause problems.
Also, at the moment, when the angle of the quads goes beyond some limit, the isothermic goal can become unstable. I think I can fix this to make it stable for a wider angle range, or at least to switch itself off when the limit is passed.
Isothermic meshes have fairly square quads (since each quad has an incircle, and a rectangle cannot have an incircle). So if the aspect ratio of the initial grid isn’t good, and the boundaries are fixed, it might not be able to reach a good solution.
Leaving the boundary free can make it much easier to get to an isothermic grid on a freeform curved surface. One way to do this is if you can extend your surface far enough beyond all the boundaries of the region you want, to allow the grid boundary to slide around.
I’ve also got a new goal, which I’ll post tomorrow, that pulls the points of a grid onto a surface, but also
lets points slide off the edge of the surface, so you can avoid having to create this extended target surface.