Files
CheapRetouch/specs/14-brush-tool.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

33 lines
1.3 KiB
Markdown

# Brush Tool
## Description
Manual brush selection for fallback when automatic detection fails.
## Acceptance Criteria
- [ ] Brush tool available in toolbar
- [ ] Brush size adjustable: 1-100px via slider
- [ ] Brush size also adjustable via stepper (accessibility)
- [ ] Touch draws on mask layer in real-time
- [ ] Smooth stroke rendering (interpolate between touch points)
- [ ] Brush preview circle follows finger
- [ ] Erase mode toggle to remove from mask
- [ ] Clear mask button to start over
- [ ] Edge refinement optional: snap brush strokes to nearby edges
- [ ] Mask preview shown in real-time as user paints
- [ ] When done painting, user taps "Done" to proceed to inpaint
- [ ] Pinch-to-zoom still works while brush active
- [ ] Brush works with Apple Pencil (pressure sensitivity optional)
- [ ] Performance: 60fps stroke rendering
## Technical Notes
- Use Core Graphics or Metal for stroke rendering
- Interpolate touch points with quadratic curves for smoothness
- Edge refinement uses gradient magnitude from `EdgeRefinement.swift`
- Consider separate gesture recognizer for drawing vs zoom/pan
## Edge Cases
- Very fast strokes: ensure no gaps between points
- Stroke at image edge: clamp to image bounds
- Accidental touch: undo single stroke or clear all
- Zoom while drawing: complete current stroke, then zoom