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.