- 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>
1.5 KiB
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
VNDetectContoursRequestreturns 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