Remeshing is necessary to get a mesh quality good enough to run further geometry processing algorithms through without choking, such as our hyperbolic metric computation. I have an algorithm for remeshing that is pretty painful.

compute metric on mesh
while mesh is broken:
    flag broken edges
    fix broken edges in blender
    export mesh
    compute metric on mesh
    is mesh broken?

I wonder if I can really fully automate this. The types of geometric configurations I see fall into a few typical cases, most commonly is a valence-3 vertex forming a sharp spike. But there are sometimes some artifacts that are just noise and need to be burned with fire. Here’s a typical case that seems like it should be easy to automatically fix with edge-flip and edge-collapse:

Typical broken edge configuration

Another complication is if landmarks have already been marked on a mesh that is remeshed: if landmark vertices were removed, then the landmark must be re-marked, which is more time consuming. An automated remesh method could potentially keep track of this if it does some nice operations that respect topology of the landmarks, but if we’re blasting chunks of the mesh away and resurfacing, then it becomes a little more difficult.

For the time being, I am pushing forward manually. Notes to self follow below:

# convert xyz-points into a python list to copy-paste into blender
asc2idx -m mesh.off -p broken_verts.asc -f2

Here’s a helper function to run in the blender console with a list generated with the above command-line tool to select the vertices:

By the way, Blender doesn’t have an OFF import-export plugin by default so here’s one that I have that parses simple OFF files: blender-off-addon.