# Rotation-minimizing frames ```{admonition} Status: outline :class: warning 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. . 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). . The double-reflection method: this is the algorithm to actually implement, and it is both cheaper and more accurate than integrating the defining equation.