Notes on offset surfaces and shape optimization
In this post I will do a summery of reading on a paper^{1} about shape optimization using offset surfaces. This paper is suggested by Campbell Barton(ideasman42) and it may be used to implement new solidify tools in the coming GSOC 2016.
Overview
In this paper^{1} the stated problem is modeled as an optimization problem using offset direction , and offset depth . The objective function and constraints are built based on .
A mean curvature flow based method is used to find the “shape skeleton” (or mesoskeletons in the paper), which we can take as an upper bound for how far we can offset from the shape surface. By using this upper bound we can also avoid selfintersection.
The offset direction can also be retrieved using the shape skeleton: we just take the direction from one vertex from contracted surface to its counterpart on the original surface.
If we try to solve the problem based on current setting, we would suffer from high complexity due to potential large number of vertices. So the author uses manifold harmonics to transform the explicit mesh representation into several discrete basis. And hence then the original problem of searching for gets transformed into searching for a vector of basis weights.
Starting from section 6 the author shows how to represent geometric/mechanic constraints.
Notes and thoughts
I have known the mean curvature flow problem before. And I learned it as a nonlinear hyperbolic equation. In this paper, the approach used is slightly different^{2}.
For manifold harmonics, which is used for order reduction, several (discrete)differential geometric tools will be used. I find this book^{3} really useful for implementation. Several concepts, such as LaplaceBeltrami operator, onering neighborhood, etc. are introduced in chapter 3.
For the future Solidify tools of Blender, I also consider other potential solutions than the one in this paper. The first idea I come up with is that I can compute the distance field for the given mesh, and solve a levelset problem(almost exactly a mean curvature flow problem) to contract or dilate the distance field, finally a isosurface extraction method(e.g. marching cube or dual contouring) is used to get the mesh representation for the offset surface.
References

Musialski, Przemyslaw, et al. “Reducedorder shape optimization using offset surfaces.” ACM Trans. Graph 34.4 (2015): 102. ↩ ↩^{2}

Tagliasacchi, Andrea, et al. “Mean curvature skeletons.” Computer Graphics Forum. Vol. 31. No. 5. Blackwell Publishing Ltd, 2012. ↩

Botsch, Mario, et al. Polygon mesh processing. CRC press, 2010. ↩