Skip to content
AI Primer
release

SpAItial opens Echo-3 API for phone-capture splats, meshes and floorplans

SpAItial’s Echo-3 API turns phone captures into splats, meshes or floorplans. A companion ARKit capture prototype filters frames and exports bundles for integration.

4 min read
SpAItial opens Echo-3 API for phone-capture splats, meshes and floorplans
SpAItial opens Echo-3 API for phone-capture splats, meshes and floorplans

TL;DR

The capture prototype has no accounts, network calls or analytics; scans stay on-device until export. The export API can bundle splats, meshes and floorplans into a single downloadable ZIP.

Splats, meshes and floorplans

Echo-3 reconstructs captured spaces at real-world scale, according to SpAItial’s mobile capture guide.

The output options have some important distinctions:

  • Gaussian splats: SPZ is the default, with SOG and PLY also available.
  • Meshes: The export service describes these as collision geometry, with mesh and mesh-simplified variants.
  • Floorplans: These are top-down renders of the splat.

Exports can take several additional minutes after the world finishes processing.

ARKit capture and LiDAR guidance

SpAItial also published the prototype behind its iOS capture app for developers building their own capture flow.

The MIT-0 capture code is the sleeper feature here, with frame filtering and scan coaching available to reuse. Its capture pipeline includes:

  • Tracking gates: Frames are saved after ARKit tracking has settled, with movement thresholds typically around 7 cm or 10°.
  • Blur filtering: Predicted motion blur is calculated from camera pose and exposure.
  • Scan coaching: Messages cover movement speed, lighting and coverage of walls, ceilings and floors.
  • Orientation control: The scan keeps one phone orientation; frames taken after switching orientation are not saved.

Two builds produce the same final capture bundle:

  • Core: Text coaching and a walls, ceiling and floor pass guide, without requiring LiDAR.
  • Full: LiDAR coverage overlays, a live point-cloud preview, guidance toward missed areas and a finish review with gap repair. LiDAR depth and meshes are used live but never saved.

Building the prototype requires Xcode 26 and XcodeGen. Scanning requires an iPhone or iPad running iOS 18 or later with an ARKit-compatible 1920×1440 wide-angle camera format; Full’s coverage features need LiDAR.

Capture ZIP to backend job

Any capture app can supply Echo-3’s input format. The integration guide defines this handoff:

  1. Capture bundle: A ZIP contains 1 to 5,000 native-resolution JPEG frames and required per-frame camera calibration. Camera poses are optional; Echo-3 estimates them when absent.
  2. Hosted upload: The developer’s backend submits an HTTPS ZIP URL. Presigned storage URLs work, but range requests are required and the file must remain accessible and unchanged for two hours or until completion.
  3. Job submission: POST /v1/worlds uses model echo-3 and input type capture_bundle.
  4. Completion: The API returns a request ID. Progress is available through the status endpoint, or through world.completed and world.failed webhooks.

The repository also includes a local bundle validator that checks ZIP structure, image timestamps and camera metadata before submission.

Pricing and commercial access

SpAItial’s billing documentation values each credit at $0.01. API processing costs $9 plus $0.01 per image in the ZIP:

  • 300 frames: $12.
  • 1,000 frames: $19.
  • 5,000 frames: $59.

The quote endpoint, GET /v1/captures/process-quote, returns the required credits, available balance and estimated processing time. Failed and cancelled captures are not charged.

API keys come from the developer portal. Billing docs list Echo-3 under Standard and Pro, describing Standard as non-commercial and Pro as commercial.

The per-frame formula applies to API jobs. Captures processed through the SpAItial Capture app are priced per scan minute.

Share on X