The simulation requires two primary steps.
1) Minimize the discrete Dirichlet energy of the mesh.
2) Refine the polyhedral mesh to acheive a Delaunay triangulation.
The Dirichlet energy minimizing step is achieved by moving each vertex according to [3] :
And the Delaunay Triangulation is achieved according to the algorithm given in [1]
Quadrialteral
Tube
Helix
Cylinder
Skirt
Circles on Cube Face
Mobius
A mathematical helicoid on the left (area: 7.07275905) and one generated by SoaPy on the right (area: 6.84585756): (3.3%)
 A mathematical catenoid on the left (area: 23.9908918) and one generated by SoaPy on the right (area: 23.9793856): (0.05%)
[1]Delaunay Refinement Algorithms for Triangular Mesh Generation
Jonathan Richard Shewchuk
May 21, 2001
Department of Electrical Engineering and Computer Science
University of California at Berkeley
Berkeley, CA 94720
[2]Computational Aspects of Discrete Minimal Surfaces
Konrad Polthier. Sept. 10, 2002
[3] U. Pinkall and K. Polthier. Computing discrete minimal surfaces and their conjugates.
Experimental Math., 2(15), 1993.