Posed images to splats
Reconstruct refined Gaussian splats from posed RGBD images.
posedImages2Splats reconstructs Gaussian splats from posed RGBD images, then
refines them by rendering new views, cleaning them up, and training the splats
against them. The result is an SPZ file.
The task is asynchronous and currently available as a Marble 2 beta endpoint.
Each successful run costs:
- Refined (the default): 5,000 credits ($5).
- Draft, with
refine: false: 500 credits ($0.50).
Failed runs are free.
Prepare the capture
Provide at least two ordered posedFrames. Each frame combines an imageAsset
with its camera and its depth: a linear-depth EXR under depth.depthAsset,
as images2PosedRGBD returns for each image, or
atlasGenerate with returnDepth. An asset can be a
project-owned asset ID, inline base64 smaller than 10 MiB, or a public HTTPS
URL. Every frame needs depth, and all images must share one size. Keep each
returned image, camera, and depth together: the camera intrinsics describe the
returned grid, which can differ from the original image. See
Cameras and posed images.
The request accepts as few as two frames. For a single room, start with 8–16 well-distributed, overlapping views and add views to cover missing areas. Check that objects agree across views, including generated ones, before submitting. The Splat best practices guide covers suitable scenes, common artifacts, and capture examples.
Describe the scene
prompt is optional. Prompt enhancement is on by default: it combines your
description with the input images, or captions the images when you send no
prompt. Set enhancePrompt to false with a prepared prompt to skip
enhancement and reduce latency.
Wait for the result
A run usually takes 10 to 20 minutes, longer than a ?wait=true request stays
open. Submit without ?wait=true, persist the operation ID, and poll or call
:wait until done is true, or pass a webhookUrl to be notified when it
finishes. See Operations and Webhooks.
Example completed output
When the operation reports done: true, check for operation.error before
reading a successful result from operation.response. refinedSplats maps
each published splat count to its SPZ file; the count in this example is illustrative.
Pass the asset to splats2Mesh as its
splatAsset to extract a mesh. Open the
posedImages2Splats reference for the
exact fields, constraints, and response shape.