Reconstruct Location in 3D
lab_location_reconReconstruct a real place in 3D from a scan clip: keyframes are pulled from the clip server-side and turned into a point cloud / splat on the location board, so a scouted room can be looked at from angles nobody filmed. THE SCAN IS NOT MADE HERE — it is a walk-around clip uploaded by the FilmLab camera app together with the phone's lens data. This tool takes one that already exists; lab_list_location_scans gives you the ids. SLOW AND NOT A JOB ROW: the answer comes back as 'reconstructing', and the finished state is picked up ONLY by lab_list_location_scans — lab_job_status and lab_get_job will never show this one finish. If the call times out, the reconstruction normally keeps running on the server: list the scans instead of firing it again. Re-running is allowed from any state that is not done.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| engine | No | Which reconstruction path. Omit for the backend default. 'vggt' is scene-scale and fast but gives a point cloud; 'vggt-splat' trains a walkable Gaussian splat from the same scan (minutes on a GPU, not seconds). Both need their own model configured on the backend — where it is not, the answer says so instead of falling back silently. | |
| image_id | Yes | Id of the SCAN row (from lab_list_location_scans) — positive integer as string. It is a row in the image gallery whose tool is the location scanner; a normal generated image with that id is rejected, not reconstructed. | |
| max_photos | No | How many keyframes are pulled from the clip and handed to the reconstruction. Omit to let the engine use its own count — more frames mean a wider parallax baseline and a slower run. | |
| project_id | Yes | Project id (from lab_list_projects) — positive integer as string. The scan must belong to it; a scan of another project is not found rather than borrowed. |