Files
CheapRetouch/specs/11-wire-removal.md
jared 1049057d7d Add Ralph Wiggum agent setup and project specifications
- Add project constitution with vision, principles, and autonomy settings
- Add 15 feature specifications covering full app scope
- Configure agent entry points (AGENTS.md, CLAUDE.md)
- Add build prompt and speckit command for spec creation
- Include comprehensive .gitignore for iOS development

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:19:41 -05:00

1.5 KiB

Wire & Line Removal Feature

Description

Remove power lines and wires using contour detection with line brush fallback.

Acceptance Criteria

  • User taps near wire with Wire tool selected
  • VNDetectContoursRequest returns all detected contours
  • ContourService scores contours and selects best wire-like match:
    • Proximity to tap point
    • Thin/elongated aspect ratio
    • Straightness (low curvature)
    • Length
  • Best contour highlighted for preview
  • Mask width configurable: default 6px, range 2-20px via slider
  • User confirms, mask expanded to configured width, inpaint executes
  • Line brush fallback when no contour detected:
    • User switches to "Line brush" mode
    • User draws along wire
    • Consistent stroke width maintained
    • Stroke becomes mask for inpainting
  • Multiple wires can be removed sequentially
  • Performance: contour detection < 300ms

Technical Notes

  • Power lines against sky have strong edges - ideal case
  • Scoring weights: proximity 0.3, aspect 0.3, straightness 0.2, length 0.2
  • Line brush should use touch velocity for smooth strokes
  • Consider Catmull-Rom spline for smooth line brush paths

Edge Cases

  • No wire-like contours found: "No lines detected. Use line brush" prompt
  • Wire against busy background (buildings, trees): likely needs line brush
  • Curved wires (drooping power lines): scoring allows moderate curvature
  • Wire crosses entire image: may need to process in segments
  • Multiple parallel wires: each tap selects one, remove sequentially