atlasChisel
Submit the atlasChisel task
/api/v2/tasks:atlasChiselAuthentication WLT-Api-Key
Generate one RGB view per 1280 x 720 target camera from optional depth-only context, optional posed source photographs, a required prompt, and voxel or sampling controls. Read the guide.
Query parameters
waitbooleanBlock for the operation to finish before returning, up to the server wait cap. Returns the Operation either way — done with a response if it finished in time, otherwise still running.
falseHeaders
Idempotency-Keystring | nullOptional idempotency key.
length <= 128Request body
application/jsonRequired
Body of POST /api/v2/tasks:atlasChisel.
webhookUrlstring | nullWhere Marble POSTs one signed task.succeeded or task.failed event when this operation finishes; retried for 24 hours. Verify the signature with the public keys at /.well-known/webhooks/jwks.json. Cannot be combined with ?wait=true. https on port 443 only, no IP literals. Developer API only.
length <= 2048purgeContentOnOperationCompletionboolean | nullPurge this operation's outputs and the transient uploads it consumed one hour after it finishes. Omitted, the account's setting applies; true raises it for this operation; false is refused when the account already purges. Uploads in the library are never purged by an operation.
contextFramesarray<AtlasChiselContextFrameAsset>Posed frames, one per target camera and posed at it, in target order; each camera is 1280x720. Each frame carries a depth, an imageAsset (the view's known pixels), or both, and may carry a maskAsset (8-bit grayscale, white where the frame's image and depth are known). Send each of depth, imageAsset and maskAsset on every frame or on none: the model keeps the image where the mask is set and generates the rest, takes frames without masks as fully known, conditions on the depth alone for frames without an image, and for frames without depth keeps the image inside the mask and generates the geometry (the frames atlasMasked takes). A depth.maskAsset (8-bit grayscale on the depth grid, white where the depth is known), on every frame or on none, masks the depth apart from the image: the maskAsset then marks only the image and needs an imageAsset beside it. Both masks read as known above half intensity. Frames carry no depth confidenceAsset. Leave empty to generate from the prompt alone.
sourceFramesarray<PosedRGBAsset>Posed RGB photographs of the scene, each an image and its camera in the targets' coordinate convention and scale. The generated views use them as visual references for materials, colors, and lighting. Any cameras and any resolution; each image is scaled to cover the output dimensions, then center-cropped onto 1280x720. Frames carry no maskAsset or depth. Request sizes must satisfy 3 * contextFrames.length + sourceFrames.length + targetCameras.length <= 128.
styleReferenceImageAssetTaskAsset | nullOptional style-reference image that guides appearance; it supplies no camera or geometry. Not applied yet: the current model does not support style references, so frames generate without it.
targetCamerasarray<PinholeCamera>requiredPinhole cameras at 1280x720 for the views to generate, in output order, returned in frames. At most 32.
promptstringrequiredText prompt describing the scene.
1 <= lengthenhancePromptbooleanExpand the prompt into a detailed scene description before generation. Set false to use your wording unchanged.
truevoxelSizenumber | nullSide length of the cubes used to simplify depth geometry. Uses normalized scene units, not input distance units: the scene is rescaled so the 90th percentile of inverse depth is approximately 1. The recommended range is 0 to 0.4. Omit or set to 0 to keep the original geometry.
0 <= valuevoxelGridOrientationstring | nullGrid orientation for simplifying depth geometry. 'world' (the default) aligns the grid with the request's world axes so walls aligned with those axes stay flat. 'gauge' aligns the grid with the average camera pose after recentering the scene. Ignored unless voxelSize is set.
"world", "gauge"modelParametersobjectModel-specific parameters for atlasChisel.
returnDepthbooleanReturn the generated frames as posed RGBD: they are reconstructed together so the depth lands in the request's own camera frame and scale, and every entry in frames then carries a depth buffer. The contextFrames' own depth is not reconstructed or returned. A source photograph joins the reconstruction as an anchor, and gets no depth back, only when its image is at the generated resolution and its camera's principal point is centered. Needs at least two target cameras. Limitation: the depth scale is recovered from the camera centers that joined, so targets that share one center (a pure-rotation rig) and no anchor come back with a 0.0 or NaN scale and a success status.
falseResponses
201
Successful Response
application/json
Long-running operation whose successful terminal response has type AtlasChiselResponse. This is the common Operation envelope with a task-specific response type, not a separate operation resource.
idstringrequiredShort operation id used in /operations/{operation} paths.
ownerIdstringrequiredAccount that owns the operation.
metadataobject | nullTask information and optional progress details. Use metadata.task to interpret a generic operation response, and use done to determine completion.
donebooleanrequiredWhether the operation is terminal. When true, a non-null error indicates failure; otherwise the operation succeeded.
errorOperationError | nullFailure details when done is true and the task failed; null while running and after success.
expiresAtSecsinteger | nullTask execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
createdAtSecsinteger | nullUnix seconds when the operation was accepted.
responseAtlasChiselResponse | nullAtlasChiselResponse result when done is true and the task succeeded; null while running and after failure.
namestringrequiredFull resource name for the operation.
For project operations:
accounts/{account}/projects/{project}/operations/{operation}.
Operation paths accept the short id.
422
Validation Error
application/json
detailarray<ValidationError>Request example
Completed operation