Commit Graph

7 Commits

Author SHA1 Message Date
00138d944d Fix ImagePipeline operation rendering
Update MaskOperation to store mask dimensions for reconstruction.
Implement proper operation rendering in ImagePipeline:
- Apply mask+inpaint operations with proper mask reconstruction
- Handle adjustment operations by type (brightness/contrast/saturation)
- Scale masks when rendering previews at reduced resolution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:43:53 -05:00
48ee7ecd7c Add Metal-based inpainting and brush selection tools
Implement GPU-accelerated inpainting using Metal compute shaders:
- Add Shaders.metal with dilateMask, gaussianBlur, diffuseInpaint, edgeAwareBlend kernels
- Add PatchMatchInpainter class for exemplar-based inpainting
- Update InpaintEngine to use Metal with Accelerate fallback
- Add BrushCanvasView for manual brush-based mask painting
- Add LineBrushView for wire removal line drawing
- Update CanvasView to integrate brush canvas overlay

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:41:43 -05:00
eec086e727 Add export functionality with format options
- Add ExportView with JPEG, PNG, HEIC format support
- Include quality slider for JPEG compression
- Show image dimensions and estimated file size
- Implement save to Photo Library with proper permissions
- Add share sheet for AirDrop, Messages, etc.
- Wire export button in PhotoEditorView to show ExportView
- Add HEIC encoding extension for UIImage

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:30:54 -05:00
daa8ba82bb Integrate services with UI via EditorViewModel
- Add EditorViewModel coordinating masking, contour detection, and inpainting
- Connect PhotoEditorView to viewModel with mask confirmation bar
- Add processing overlay and error toast UI
- Update CanvasView with tap-to-mask functionality
- Add coordinate conversion from view space to image space
- Update ToolbarView to bind to viewModel state
- Wire up undo/redo actions through viewModel

Person, object, and wire removal now flow:
tap -> detect -> preview mask -> confirm -> inpaint

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:29:21 -05:00
20707da268 Implement core project structure and foundation components
Project Setup (Spec 01):
- Configure iOS 17.0 deployment target
- Add photo library usage descriptions
- Create proper folder structure (App, Features, Services, Models, Utilities)

Data Model (Spec 02):
- Add EditOperation enum with mask, inpaint, adjustment cases
- Add MaskOperation, InpaintOperation structs (Codable)
- Add Project model with operation stack and undo/redo support
- Add MaskData with dilation support via vImage

Services (Specs 03-05):
- Add InpaintEngine with Metal + Accelerate fallback
- Add MaskingService wrapping Vision framework
- Add ContourService for wire/line detection and scoring

UI Components (Specs 06-08):
- Add PhotoEditorView with photo picker integration
- Add CanvasView with pinch-to-zoom and pan gestures
- Add ToolbarView with tool selection and inspector panel

Utilities:
- Add ImagePipeline for preview/export rendering
- Add EdgeRefinement for smart brush edge detection
- Add check_build.sh for CI verification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:26:37 -05:00
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
c64aa4b8ac first commit 2026-01-23 23:17:06 -05:00