A macOS app that automates 3D model reconstruction from photos using Apple's Object Capture framework. Process multiple photo sets with various quality settings on a schedule, all in one batch queue.
- Batch Job Queue — Add multiple photo folders and process them sequentially without user interaction
- Flexible Reconstruction Settings — Configure separate detail levels, mesh types, masking, and texture options per job
- Time-Window Scheduling — Define allowed processing hours (e.g., process overnight) or delay start by a specific time
- Persistence — Queue and settings survive app restarts
- Real-Time Progress — Track individual job progress with estimated time remaining
- Notifications — Get notified when the queue completes or jobs fail
- Error Recovery — Retry failed jobs or remove them from the queue
- macOS 14.0+
- Xcode 15.0+
- Apple Object Capture framework (built-in)
xcodebuild -project ObjectCaptureReconstruction.xcodeproj \
-scheme ObjectCaptureReconstruction \
-configuration Debug \
-destination 'platform=macOS' \
buildOr open ObjectCaptureReconstruction.xcodeproj in Xcode and build from there.
- Click Add Job to open the job setup sheet
- Select a folder of images (HEIF, JPEG, PNG supported)
- Choose an output folder for the generated model
- Enter a model name (e.g., "Vase-High-Quality")
- Select reconstruction settings:
- Detail Level — High, Medium, Low, or custom polygon count
- Mesh Type — Standard or raw
- Masking — Auto, manual, or disabled
- Texture Format — PNG or JPEG with quality
- Texture Resolution — Up to 4K
- Optionally generate multiple models per job (e.g., High + Medium detail)
- Click Add to Queue
- Click Schedule to configure processing time windows
- Choose:
- Delayed Start — Process starts at a specific date/time
- Allowed Hours — Only process between two times each day (e.g., 22:00–06:00)
- Save settings
- Click Start to begin processing jobs in order
- Monitor progress:
- Active job shows percentage complete
- Failed jobs display error details
- Use Pause to suspend processing or Stop to cancel
- Right-click on a job to retry or edit (if pending)
Completed models are saved as USDZ files in the output folder you specified for each job.
- AppDataModel — Holds JobScheduler and UI state
- JobScheduler — Sequential processor respecting time windows and schedule
- ReconstructionJob — Per-job data including folders, settings, and status
- JobStore — Persists queue and settings to Application Support
- Settings Views — Modular UI for configuring reconstruction parameters
The app uses macOS sandbox with user-selected folder access. Folder bookmarks are persisted securely to maintain access across restarts.
This project is licensed under GPLv3, but contains components originally licensed by Apple Inc. under the MIT License.