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

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.


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.
Please leave a comment if you need you need more detailed information.