Build a 3D model with photogrammetry

Photograph an object or an area with Apple Object Capture, build a USDZ model on the phone, and georeference it from the GPS logged for every photo.

On this page

Photogrammetry mode uses Apple Object Capture to photograph a subject from many angles and build a textured 3D model on the phone. The app logs the live GNSS fix for every photo. After the model is built, it fits the camera positions to those fixes to place and orient the model on the ground.

Before you start

  • You need a device that supports Object Capture and on-device reconstruction, such as a LiDAR iPhone or iPad Pro. On other devices, the tile shows N/A.
  • Make sure you have about 2 GB of free storage. The preflight check blocks the capture below that.
  • For a model that's oriented correctly, use an RTK receiver, especially for small objects. See how georeferencing works.

Capture

  1. Go to Capture → New capture and tap Photogrammetry.
  2. Check the preflight banner and lock the start position. See Lock the scan position.
  3. Choose a mode:
    • Object: "Orbit a single object — detect it, circle it, flip it."
    • Area: "Walk a space or surface — shoot overlapping photos from many angles."
  4. Follow the steps for your mode below.
  5. When you have enough photos, tap Finish (N photos). This becomes available after 10 photos. The app shows Saving photos… and then starts building the model.

The top of the screen shows the photo count against the maximum, which is at most 300 (for example 42 / 300). The count turns orange when you reach the maximum. The line at the bottom shows your position source, fix type and accuracy.

Object mode

  1. Point the camera at the object and tap Detect object. A box appears around it. Tap Reset to try again.
  2. Tap Start capturing and walk slowly around the object. Object Capture takes photos automatically as you go.
  3. When you've completed a full pass, choose:
    • Flip & continue: turn the object over and capture its underside in a new pass.
    • Same side again: do another pass from a different height without moving the object.
  4. Tap Finish.

Area mode

  1. Tap Start capturing. There's no detection step.
  2. Walk the space or surface, keeping plenty of overlap between photos and varying your angle.
  3. Tap Finish.

To abandon the capture and delete its photos, tap Cancel at any point during capture.

Building the model

The Building 3D model screen shows progress as a percentage. "Keep the app open — this usually takes a minute or two." If the device gets hot, you'll see Device is hot — reconstruction may slow down.

When it's done, the review screen shows the model. Its title is Model · fit ±0.04 m (or similar) when the photos could be fitted to their GPS fixes, or Photogrammetry model when they couldn't.

  • Keep files the model against the anchor asset, or asks which asset if you skipped the lock.
  • Discard deletes the model and its photos.

If reconstruction fails, the app shows why, with "The photos are kept — you can retry reconstruction from the Capture tab." Tap Close and use the Resume banner described below.

Resume an unfinished photo scan

If you cancel while the model is building, or the app is interrupted, the photos stay on the phone. The Capture tab then shows a banner:

Unfinished photo scan · number of photos · object or area · Resume · Discard

  • Resume picks up where it left off. If the model had already been built, you go straight to the review. Otherwise reconstruction starts again from its last checkpoint.
  • Discard deletes the photos and the unfinished job.

An unfinished photo scan is kept for 48 hours. If the interrupted capture has fewer than 10 photos, it can't be resumed. The app says "The interrupted capture has too few photos to reconstruct."

How the model is georeferenced

The reconstructed model is to scale and level, but it doesn't know where it is or which way it faces. The app works that out from the GPS fix it logged at each photo.

  1. Pose-to-GPS fit. The camera positions from the reconstruction are matched to the logged fixes. The app solves the model's position and heading without changing its scale. The fit is used only when it can be trusted:
    • at least 3 photos with a fix that's 10 m or better and no more than 3 seconds old
    • photos spread widely enough compared with the fix noise: at least 0.25 m, and at least six times the typical fix error
    • a small enough leftover error
  2. Averaged fixes, no heading. If the fit fails, the model's position is the accuracy-weighted average of the photo fixes, and it's placed without rotation.
  3. The locked position. If no photo carried a fix, the model uses the position you locked at the start.

In practice, centimetre RTK can resolve the heading even for an orbit around a small object. Phone GPS on the same orbit can't, so the model falls back to no heading, and that's the correct result. Walking an area scan spreads the photos much further apart, so it resolves the heading with much weaker fixes.

The capture's details show the result: Heading (for example 212° photogrammetry-fit, or unknown — placed without rotation), Pose ↔ GPS fit (the fit's error and how many photos it used), and Origin.

GPS-stamped photos

Once the model is built, the app writes each photo's logged fix into that photo's EXIF GPS tags: latitude, longitude, height above sea level and horizontal accuracy. Only the metadata is rewritten. The image itself isn't re-compressed. A photo taken with no fix is left unstamped rather than given a false position.

Each photo is then georeferenced on its own, so the set can go straight into desktop photogrammetry or GIS software.

Keep photo-scan photos

Settings → 3D capture → Keep photo-scan photos decides whether the source photos stay with the model after reconstruction. It's on by default, because the photos are the GPS-stamped raw data. Expect 100 MB or more per scan. Turn it off to keep only the model and the shot log.

The photos are left out of bundle exports unless Photos in bundle exports is also on. See The capture library.

What's saved

File Contents
model.usdz The textured 3D model
shots.json One GNSS fix per photo: position, heights, accuracy, source, fix type, pole offset and fix age
images/ The source photos with EXIF GPS, if kept
georef.json The model's position, heading and fit result
info.json, preview.jpg A summary and a thumbnail
preflight.json The preflight checks at the start