Globally optimal direction fields energy
Currently, the smoothest vertex direction fields algorithms do not precisely implement the energy from the Globally Optimal Direction Fields paper; they use a slightly different, simpler algorithm.
The Globally Optimal Direction Fields paper carefully derives a FEM expression which incorporates curvature (Eqn 18). The geometry-central implementation instead just uses a simple connection Laplacian which does not really incorporate curvature properly. This is mostly fine most of the time, but some examples expose the distinction. For instance, try computing a curvature-aligned cross field on a uniform sphere.
Fix: implement the proper energy.
There are routines for computing the energy from Knöppel et al 2013 here:
https://github.com/GeometryCollective/fieldgen/blob/master/src/KVecDir.cpp https://github.com/GeometryCollective/fieldgen/blob/master/src/SectionIntegrals.cpp
Thanks so much for looking into this!