I have a wrinkled mesh (image 1 in green) that I would like to relax while keeping all of its vertices on a guide mesh (red). Especially I would like to get rid of the cavities that are marked by the arrows. The resulting mesh should follow the guide mesh, but it will have different edge lengths in different areas, especially the left side will probably have less vertices than the right.
The attached script relaxes the cavities after some time (image 2), but it also contracts the mesh and eventually collapses it. I have tried to add a secondary force that pushes non-neighboring vertices apart from each other, as well as faces or edges pushing outwards, but I have not managed to achieve any good results. I can not change the connectivity of the mesh. I would appreciate any suggestion, thank you very much!
KangarooRelaxMeshOnSurface-CK01.gh (142.2 KB)