- 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.3 KiB
1.3 KiB
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