General unfolding and least-squares flattening¶
Status: outline
This chapter is scaffolded, not written. Section 1 and the failure modes below are real; sections 2 to 5 are placeholders. PRD 15.3 fixes the seven-part shape used here and states the standard: a dedicated chapter that takes a reader from novice to able to implement — not a literature dump and not a proof, but a constructive path. Do not delete a section heading to avoid filling it in.
1. The problem in one paragraph¶
When no closed form applies, the surface is triangulated and the triangles are laid into the plane one at a time, each hinged on an edge it shares with an already-placed neighbour. Every triangle is placed exactly; the error accumulates in the seams, so the result depends on the order the triangles were visited and does not close up. A relaxation then adjusts all the planar vertices at once to minimize the total squared discrepancy between planar edge lengths and true surface edge lengths, which removes the path dependence and distributes the unavoidable strain (PRD 6.6).
2. The minimum background¶
To be written. Develop the notation from scratch, defining every symbol at first use.
3. The derivation¶
To be written. In steps small enough that a reader can check each one individually.
4. The algorithm¶
To be written. Pseudocode using the real function names in this codebase, so a reader can move from the page to the source without a translation step.
5. A worked numerical example¶
To be written. With actual numbers a reader can reproduce, and the expected output printed in full. This section is what separates a chapter that can be implemented from one that can only be admired.
6. Failure modes¶
Reporting the greedy result without relaxing, so the template depends on an arbitrary traversal order. PRD 13.3 T12 unfolds in two orders and asserts agreement.
Relaxing without pinning the result, leaving the template free to translate and rotate, which makes byte-comparable golden files impossible (ADR-012).
Exceeding the triangle budget. The 2 s budget holds to about 15 000 triangles in Fusion’s interpreter, and the preview budget of 300 ms allows about 300.
7. References¶
Floater, M. S., Hormann, K. (2005), “Surface parameterization: a tutorial and survey”, in Advances in Multiresolution for Geometric Modelling. https://doi.org/10.1007/3-540-26808-1_9. The best single entry point; start here.
Hormann, K., Levy, B., Sheffer, A. (2007), “Mesh Parameterization: Theory and Practice”, SIGGRAPH course notes. https://doi.org/10.1145/1281500.1281510. The practical companion to the survey.
Liu, L., Zhang, L., Xu, Y., Gotsman, C., Gortler, S. J. (2008), “A local/global approach to mesh parameterization”, SGP. https://doi.org/10.1111/j.1467-8659.2008.01290.x. ARAP: the closest published relative of the relaxation used here and the natural upgrade path.
Levy, B., Petitjean, S., Ray, N., Maillot, J. (2002), “Least squares conformal maps for automatic texture atlas generation”, SIGGRAPH. https://doi.org/10.1145/566654.566590. Relevant if the relaxation is ever reformulated conformally.
Sheffer, A., Levy, B., Mogilnitsky, M., Bogomyakov, A. (2005), “ABF++: fast and robust angle based flattening”, ACM TOG 24(2). https://doi.org/10.1145/1061347.1061354. The main alternative family; cite for the trade-off discussion.