The Surface Evolver is a computer program that minimizes the energy of a surface subject to constraints. The surface is represented as a simplicial complex. The energy can include surface tension, gravity, and other forms. Constraints can be geometrical constraints on vertex positions or constraints on integrated quantities such as body volumes. The minimization is done by evolving the surface down the energy gradient. This paper describes the mathematical model used and the operations available to interactively modify the surface.
K. Brakke, The Surface Evolver, Experimental Mathematics vol. 1 no. 2 (1992), 141-165.