Skip to main content
Documentation

Outputs and Result Handling

Read the Argus output manifest, depth maps, merged point cloud, and camera poses, including partial results.

On this page

After GET /open/v1/argus/task/info returns gateway code: 0 and task data.status: 2, download the output.zip referenced by data.output_url before data.expiration_timestamp. The URL is temporary. Store the downloaded files in controlled storage and discard the URL after retrieval.

Files in the result

output.zip
├── output.json
├── depth/
│   ├── 000000_depth.exr
│   └── 000001_depth.exr
├── pointcloud/
│   └── merged.glb
├── pose/
│   ├── 000000_pose.json
│   └── 000001_pose.json
└── intrinsics/                 # optional
    ├── 000000_intrinsics.json
    └── 000001_intrinsics.json
FileMeaning
output.jsonRequired algorithm-result manifest. Read it before consuming other files.
depth/*_depth.exrPer-image 32-bit floating-point EXR depth maps, measured in meters.
pointcloud/merged.glbMerged point cloud in a right-handed, Y-up coordinate system.
pose/*_pose.jsonCamera-pose data for the corresponding successful image.
intrinsics/*_intrinsics.jsonOptional camera-intrinsics data, which may be absent for some or all successful images.

The manifest gives each product's relative path and its related metadata. Use those paths to locate the files inside the downloaded ZIP.

Task status and manifest status

The gateway's numeric task status reports execution progress. The downloaded output.json.status reports the algorithm result. Check both levels.

Manifest statusMeaning and handling
successEvery input image succeeded. Each image ID has a depth map and pose.
partialSome images succeeded. The manifest must provide a nonempty missing_ids list with unique IDs. Successful IDs each appear in both depth and pose entries; missing IDs appear in neither. Together, they account for all IDs in name_mapping.
errorThe algorithm failed. The manifest contains version, status, and error. Read error.code and error.message; do not consume absent products.

Match outputs to the original images

name_mapping is the authoritative mapping from image IDs to input filenames. Use it to match depth maps and poses to the original images. Do not derive IDs from a local directory listing or assume its order matches the output.

For example:

{
  "name_mapping": {
    "000000": "living-room.jpg",
    "000001": "kitchen.jpg"
  }
}

This is a manifest excerpt. A success or partial manifest also includes its version, status, product metadata, and any required missing-image fields.

Depth maps and point cloud

Each depth_maps entry identifies its image_id, relative path, format, resolution, and unit. Depth values use meters. Validate the EXR file header before passing the data to your depth-processing tools.

The point_cloud entry identifies the merged GLB and metadata such as vertex_count, has_color, has_normals, and coordinate_system. Read the returned metadata when deciding how to handle the point cloud; retain its right-handed, Y-up coordinate convention.

Camera poses

Each successful image has a pose JSON with image_id, rotation, translation, and coordinate_system.

  • rotation is a 3 × 3 matrix that transforms world coordinates to camera coordinates.
  • translation is the position of the world origin in camera coordinates.
  • coordinate_system is right-handed, Y-up.

Use these definitions when integrating the pose with another coordinate system. The translation field is not the camera's position in world coordinates.

Optional camera intrinsics

When present, the manifest's intrinsics entries identify files by image_id and relative path. Entries refer only to successfully reconstructed images, and may cover only some of them.

Interpret each returned file using its actual camera model and returned fields. Equirectangular panorama calibration and pinhole-image calibration use different projection models; follow the model supplied for that image rather than copying a panorama model onto pinhole inputs.

Validate before use

  1. Check the ZIP can be fully extracted without path traversal, duplicate paths, or files escaping the extraction directory.
  2. Validate output.json, including its manifest status and required error or missing-image fields.
  3. Confirm every file referenced by the manifest exists and its image ID matches the corresponding mapping and pose/depth entry.
  4. Validate GLB and EXR headers against their declared formats.
  5. Handle partial and error explicitly before consuming the reconstruction.

Use Quickstart for submission code and download guidance, and API Reference for task-query fields.