it's already evident that the least-squares version has the problem that it can't make temporary changes that worsen overlaps and crossings. it would only be able to jump them. there's a method for that too, of course.
for some reason i'm also thinking of putting all vars on the surface of a sphere, and all term labels inside of the sphere. then allow the user to rotate the sphere to change the projection.
idk. no epiphany yet. still experimenting.
maybe just use graphviz?
#devlog
