diff --git a/docs/superpowers/specs/2026-06-11-wide-angle-distortion-design.md b/docs/superpowers/specs/2026-06-11-wide-angle-distortion-design.md index 50d361f..9511912 100644 --- a/docs/superpowers/specs/2026-06-11-wide-angle-distortion-design.md +++ b/docs/superpowers/specs/2026-06-11-wide-angle-distortion-design.md @@ -88,8 +88,16 @@ calibration independent of display/canvas size. ## Data flow +> **Correction (found in live testing):** the warp bends a path only at its *vertices*. A +> straight G0/G1 move is a 2-point segment, so warping just its endpoints draws a straight +> chord and hides the curvature entirely (measured ~320px of bow on bed-spanning lines +> collapsed to nothing). `projectSegments` therefore **subdivides each segment in work space +> (~20mm steps) before warping**, so the rendered polyline follows the curve. Arcs were +> already flattened to dense vertices and are unaffected. + ``` G-code (mm) + → subdivide segments to ~20mm in work space → applyAlignment (per-job rotate/translate, mm) → applyPolyWarp forward (mm → normalized image) → scale to canvas px → draw overlay