The first fundamental form

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

Unrolling a tube means finding a map from its surface to flat paper that keeps lengths right. Every length measured on a parametric surface P(u, v) is determined by three numbers at each point — E = P_u . P_u, F = P_u . P_v, G = P_v . P_v — and by nothing else. That is the whole reason this codebase has one abstraction rather than five unrelated algorithms: each unrolling tier is a different answer to integrate this metric, they share one input and one output, and so they can be tested against each other (PRD 6.0, ADR-004).

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

  • Assuming F = 0. It is zero for the three analytic surface types measured inside Fusion, and that is what keeps the closed forms clean, but it is not a general truth and must not be assumed for a NURBS face.

  • Confusing the metric’s units. E is millimeters squared per unit of u squared, and u is not always a length: for a cylinder it is z / r, dimensionless.

  • Treating a degenerate metric as a small one. EG - F^2 = 0 means the parameterization has collapsed — at a cone apex, or a pole — and no amount of tolerance makes the local frame meaningful there. Metric.is_degenerate exists for this.

7. References

  • do Carmo, M. P. (1976), Differential Geometry of Curves and Surfaces, chapter 2-5. The standard treatment. Cited by chapter so any edition, or an equivalent open text, can be used. Read it for the definition and for why the form is intrinsic.