Rotation-minimizing frames¶
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¶
To describe a bent tube you carry a frame along its spine. The obvious choice, the Frenet frame, is unusable: it is undefined where the curvature vanishes and it flips through 180 degrees at an inflection point, which would put a visible discontinuity in the middle of an S-bend’s template. A rotation-minimizing frame — a Bishop frame — carries the same normal plane without twisting about the tangent, and it is continuous everywhere the tangent is. The double-reflection method computes it to second-order accuracy at a cost of a few dot products per step (PRD 6.5, PRD 7.10).
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¶
Using a Frenet frame and not noticing, because the reference model happens to contain no inflection point. PRD 13.3 T2b exists to force the case.
Accumulating drift by integrating the twist rate numerically instead of using the double-reflection construction.
Choosing the initial frame arbitrarily. The frame is only defined up to a rotation about the tangent at the start, and that choice is exactly what the datum fixes (FR-3).
7. References¶
Bishop, R. L. (1975), “There is more than one way to frame a curve”, American Mathematical Monthly 82(3), 246-251. https://doi.org/10.2307/2319846. Six pages, and the original. Read it before implementing anything in
frames.py.Wang, W., Juttler, B., Zheng, D., Liu, Y. (2008), “Computation of rotation minimizing frames”, ACM TOG 27(1). https://doi.org/10.1145/1330511.1330513. The double-reflection method: this is the algorithm to actually implement, and it is both cheaper and more accurate than integrating the defining equation.