I’m hoping some of your can provide some suggestions regarding a mesh smoothing algorithm. Ideally, you can also reference some code I can play around with (C++ or C#).
I need it to:
Preserve the original boundary as closely as possible (Laplace + HC?)
Give me the ability to pass the index of node/face that should remain completely unaffected
When you say preserve the boundary, do you mean just keep the naked vertices fixed, or are you talking about keeping the same volume?
Laplacian smoothing or zero length edge springs with a fixed boundary in kangaroo converges to exactly the same thing as Laplacian smoothing in weaverbird, but you also have the option of fixing internal vertices.
If you want to script it though, it’s also fairly simple - just iteratively moving the vertices towards the average of their neighbours.
Here’s an example comparing Laplacian smoothing -with a simple vertex averaging script, with Weaverbird, and with Kangaroo.
As you see, they all converge to the same result, but Kangaroo is able to get there faster because of its use of momentum to accelerate convergence
I want to have the ability to keep some vertices unaffected and for the remainder of the mesh to keep the same volume. I don’t currently have access to GH but I’ll check as soon as I do.
Thanks @Konrad & @DanielPiker , do you know if the code is publicly available?