(The message @mhanwell mentions is below - out of order)
I know that 3Dmol.js uses the EDTSurf algorithm for molecular surfaces - seems very fast and easily threaded. I’m hiring an undergrad to implement this for Avogadro v2, including options for property maps (e.g., mapping charges onto a solvation surface).
But an interesting thing is the later discussion of marching cubes and the development of:
Vertex-Connected Marching Cubes (VCMC). The difference between them is that the vertices of the triangles in the traditional Marching Cubes are surface-edge intersections while the vertices in the VCMC are the existing grid points. When the resolution of grid is very high, there is no additional cost for real-time construction and rendering of the triangular surface by VCMC. Furthermore, the triangulation result generated by VCMC contains fewer vertices and faces than that by MC.
They claim the new VCMC method is faster and produces fewer triangles:
However, the numbers of vertices and faces in Figure 11B are 5958 and 11912, which are only half of that (11130 and 22256) in Figure 11A. Hence, VCMC has the advantage of saving storage space when describing mesh surfaces with similar shape.
The average CPU time by VCMC (0.54s) is about 1.4 times faster than the MC algorithm (0.75s).
Is it worth implementing the VCMC method for avogadrolibs?