Wrinkles in surface mesh with Mmgs

Dear developers,

I was trying to remesh a surface mesh of raw triangulation with Mmgs. Surprisingly, there were wrinkles in the output mesh where it was supposed to be smooth.

I was using mmgs_O3.exe on windows, with the command

mmgs_O3 test.mesh -hausd 0.1

Did I miss some options in the command?

Best regards,

test.mesh (125.0 KB)
test.o.mesh (743.4 KB)


As you have very streched triangles, the computation of normal at triangles/vertices is very sensitive and the entire surface model of Mmg relies on a suitable computation of these normals.
Does it help Mmg to perform 1 (or 2) ‘flat’ splitting using the “refine by splitting” option of Gmsh?

Best regards,

Hi @Algiane,

Thanks for the explanation!

Just a bit confused, by “streched” do you refer to the size or the shape of the triangle?

“refine by splitting” simply reduces the size, but doesn’t change the shape. Which is more detrimental to the calculation of normals, a brupt change in triangle size or a very acute, but small triangle?



Hi @song.liu ,

Sorry, my answer was not very clear: by “streched” I refer to the shape of the triangle.
You are right, subdividing the triangles will not improve their shapes but it can help because in your input mesh, you don’t have any node “internal” to the orange and green surfaces. So the surface model relies entirely on the normals computed at the interfaces of the blue+(orange&green) surfaces and yellow+(orange&green) surfaces. Thus, adding other nodes can help to have a better computation of normals.

I am not sure that it will work though (:crossed_fingers:). If it doesn’t work, another solution can be to provide the normals by yourself (if you know them)…

Best Regards

Hi @Algiane,

It’s much clearer for me now. I will have a try with your advice.

Thanks again!

Best regards,


I had exactly the same type of errors. for the moment I dont have the time for the moment to treat this problem automatically. if a do a brute force splitting my refined mesh tends to be too big for real time processing.

thanks any way for the hit of how to treat this problem.

Thank you for this feedback @Felipe_Bordeu ,

This is a problem that has been coming up from time to time for several years and:

  • I am not sure if the solution of “flat” refinement works often or only on specific test cases;
  • I have no other idea to solve this.

I think that it worth to be discussed with the researchers impiled in the dev of Mmg and, if a solution can be implemented, submitted to the member of the Mmg consortium (in december) to see if they agree to put efforts to solve this in 2023.

Best Regards,

Hi @Felipe_Bordeu,

I think part of your problem is that the straight edge shared by the flat and cylindrical faces is not detected and preserved. Does it get any better if you use a smaller -ar value?

Best Regards,


@song.liu I know ! I need to test 2 things

  1. better control of the option ar
  2. add the topological edges (as ridges) from the step (CAD file). Im working on a tool to do this automatically.