Generate views with Atlas
Prepare context frames, choose target cameras, and build a request for new views.
Atlas generates views from posed RGBD context frames. Each context frame brings together an image, its depth map, and the camera that captured it.
Prepare your inputs
Keep image, depth, and camera coordinates aligned. Supply at least one context frame and one target camera. Asset references in the example are placeholders; replace them with assets in your project before using the request.
/api/v2/tasks:atlasGenerateAuthentication WLT-Api-Key
Choose the output
Enable returnDepth when your next step needs depth alongside RGB. Pure rotation offers limited depth information; use translated camera views when your workflow depends on depth quality.
Request body
application/jsonRequired
Body of POST /api/v2/tasks:atlasGenerate.
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.
base64OutputsbooleanWhen a ?wait=true submission is answered inline, return each output file as base64 in that response rather than by assetId and url. This skips storing the files before the answer and the caller's download after it. Any other submission, and every later read of the operation, names the outputs by assetId and url.
falsecontextFramesarray<PosedRGBDAsset>requiredPosed RGBD context views: each an image, its depth buffer, and its camera, all required. All context cameras must declare the same width and height. Context depth is required, but does not guide generation in every request. Requests with 32 or more targets generate from the context images and cameras without using their depth. Smaller requests can do the same when their combined context and target counts exceed the depth-guided model's capacity.
targetCamerasarray<PinholeCamera>requiredPinhole cameras for the views to generate, in output order. Generated frames are returned in frames, one per camera.
promptstring | nullText prompt describing the scene, if any.
enhancePromptbooleanExpand the prompt into a scene description before generation. With no prompt, describe the context images. Set false to use your wording unchanged.
truereturnDepthbooleanReturn the generated frames as posed RGBD: they are reconstructed together with the context frames so the depth lands in the request's own camera frame and scale, and every entry in frames then carries a depth buffer. The scale is recovered from camera centres, so a request whose cameras all share one centre (a pure-rotation rig) is rejected. When generation uses only images and cameras (see contextFrames), or with more than 19 context frames, a context frame helps reconstruct depth only when its image has the same dimensions as the generated images and its camera's principal point is centered.
falsemodelParametersobjectModel-specific parameters for atlasGenerate.
Example request
Send the request with your API key and the asset IDs from your uploaded frames.
Request example
Completed operation
Follow the operation
Read generated frames after the operation completes successfully. The task may still be running when your first wait returns.
A 201 response accepts the task. Wait for
done: truebefore reading generated frames.
Keep the operation ID with your job. Follow the operations guide for polling and error handling.
Responses
201
Successful Response
application/json
Long-running operation whose successful terminal response has type AtlasGenerateResponse. 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.
responseAtlasGenerateResponse | nullAtlasGenerateResponse 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.
For waiting, polling, and retries, read Work with operations.