In this post, we describe the different functionals available for discrete geometry optimization in VaryLab.

Please leave a comment if you need you need more detailed information.
### Circular Quads

Defines an energy functional which is minimal for planar circular
quads. Since we are using an angle criterion, the convergence to
planarity is relatively slow. If the planar quads energy is added
to the optimization, the geometry converges more quickly.

### Incircle Quads

The property for a quadrilateral to possess an incircle tangent to its sides is that the two sums of opposite side lengths is equal $a+c=b+d$. Planarity is not included in this functional, so to get planar quadrilaterals with inscribed incircles you need to add planarity to the optimization.

### Touching Incircles

In a quad-mesh with incircles, the
incircles need not touch. So in combination with the
incircles and planarity energies it one can create a mesh
with touching incircles.

### Conical

This energy implements an angle criterion for conical
meshes. So in combination with planarity it optimizes a mesh
to have the property, that faces adjacent to one node are
tangent to a cone of revolution.

### Direction Field

Allows the user to specify a direction field. This can be used
with spring energy and boundary constraints to do simple form
finding.

### Equal Diagonals

The lengths of the diagonals of each quad are equal in an optimized mesh.

### Planar Quads

A functional that forces planarity of quad faces

### Planar Vertex Stars

This energy is dual to the planar faces energy. It computes the
volume spanned by a node and its neighbors. Minimization yields
meshes such that each node lies in a plane with its
neighbors. If used together with face planarity the initial mesh
is mapped to a plane.

### Reference Mesh

Given a reference mesh we compute the closest point to a node
and add a spring force between each node and its projection. The
projection point is recomputed in each step of the
optimization. If combined with other energies it keeps the
optimized mesh close to a reference mesh.

### Reference Surface

This is similar to Reference mesh but with a reference nurbs surface.

### Spring Energy

The spring energy is computed by adding springs to all the edges
of the mesh. These springs can have user specified target
lengths and strengths that can be specified by various
options.

### Willmore Energy

See the article: A.I. Bobenko, A conformal energy for simplicial surfaces.

# Parameterline Curvatures

There are many ways to define the curvature of a polygonal
parameter line on a quad mesh. We have implemented a few
different notions:

### Geodesic Curvature

On smooth surface, the curvature of a surface curve is
decomposed into geodesic and normal curvature, where geodesic
curvature is the curvature in direction of the tangent plane. So
we consider the projection of the parameter polyline into the
tangent plane orthogonal to the normal at a node. For the
optimized mesh, the projection is straight.

### Opposite Angles Curvature

This curvature is based on the intrinsic geometry of the
surface. Let $\alpha$, $\beta$, $\gamma$, and $\delta$ denote
the angles in the adjacent quads at a node in cyclic order. Then
the optimal mesh satisfies $\alpha+\beta = \gamma+\delta$ and
$\beta+\gamma = \delta+\alpha$, i.e. so the parameter lines are
straight from an intrinsic point of view.

### Opposite Edges Curvature

This energy penalizes the deviation of a parameter polyline from
a straight line. So using this energy only, will flatten the
mesh to the plane. Used together with, e.g. a reference surface
energy, this energy smoothes the parameter lines of the
quad mesh.

### Circumcircle Curvature

The curvature is the inverse of the radius of the circle through
three consecutive points on a parameter polyline.