Proper mesh offset

A mesh with any vertex surrounded by more than 3 faces generally doesn’t have an offset solution with:

  • the same number of vertices
  • its faces parallel to the input

(and this offset is trivial to find when you do have such a 3-valent mesh, but it’s a very restrictive condition you don’t ever really encounter except when you’re deliberately designing planar hex meshes). For 4 faces each vertex has to be conical, which is also very restrictive and doesn’t happen accidentally (when you do have a conical mesh, you can offset it with the face-face offset component in K2).

For general meshes though you have to choose which one of those 2 conditions you are willing to let go of. I think keeping the vertex count and letting the face-face distances vary is the sensible default.
I agree though it would be nice to have the other option (constant face-face, but the offset can have different vertex count). I did get something working to generate this on all convex meshes, but for concave vertices there are a lot of possibilities to check. I’ll have another look though and see if I can get it working.

See in particular the example 3dm here showing 2 different valid face-face offset solutions for a single 4-valent vertex.