Creating A-nets

In this little post I will explain how to use VaryLab to create an A-net, i.e., a mesh with the property that each node and its neighbors lie in one plane.

Since A-nets are discrete versions of parametrization along asymptotic lines which only exist for surfaces with negative Gaussian curvature, we need to create a mesh with negative curvature first.

We start with a standard quad grid from the generators menu.
To obtain the right combinatorial structure, i.e., mesh topology,  we need to un-check the "Use Diamonds" box.

After clicking "Ok" we have a nice 6x6 quad grid.

Now we use the Vertex Coordinate Editor to move the corners of the grid up and down respectively. To do so we hold down the Shift key and the left mouse button and move the corners up and down.

We fix the corners by selecting them with a left mouse click (the selected nodes are shown in red). Then we turn to the Optimizer Plugins panel and select Spring Energy. We select the const. option and set the target length to 0. This will make the edge behave like rubber bands/spring with 0 rest length. As optimization method I selected CG (Conjugate gradient) and maximal number of iterations 100. Finally we fix the selected points in the constraints panel by checking x, y, and z. Now we press the Optimize button to proceed with the optimization. And obtain a mesh with negative curvature.

To turn this mesh into an A-net we use the Planar Vertex Stars optimizer from the Optimizer Plugin panel and optimize again. The mesh does not change a lot, since the above mesh is already almost an A-net after the first optimization.