MOONLAKE_API_BASE_URL to the API base URL for your account, including /api/v1. See the scene API reference for request and response schemas.
Choose a budget
Setconfig.budget_credits for appearance and geometry reconstruction. This budget does not cover physics or articulation. Optional item lifts are quoted and purchased separately.
Use these ranges as starting points for the region you want modeled:
Choose within each range based on the number of distinct objects, their geometric detail, and the area you want reconstructed. A long video of one object may need less work than a short video of a densely furnished room. Video inputs must still fit the media limits.
These ranges are starting points, not quality guarantees. Choose a budget that reflects the scope and detail you need. Include additional references when important surfaces or measurements are missing.
Define the region to model
When the scope is ambiguous, state exactly which region or area belongs in the reconstruction. Identify its physical boundaries and the distant, background, or non-focal areas to exclude. Do not rely on camera framing alone to communicate which visible objects matter. Include the intended use, the most important items, and any known dimensions with units. Call out features that must be preserved, such as a box cavity, shelf spacing, or a curved profile. Distinguish measured dimensions from estimates. Describe appearance and geometry requirements separately from any later physics or articulation work. For example, setinput.prompt to:
Prepare useful references
Use one image, overlapping views of the same scene, or one video. Do not combine images and video in a request. For multiple views, include angles that reveal object placement, important profiles, and occluded features. Avoid unrelated images that describe different environments. A single image leaves hidden surfaces and absolute scale uncertain. Provide additional views and known dimensions when those details matter to your task.Submit the reconstruction
Send multipart form data for local files. Each attached reference names its matching file field. This shell example uses a local image and a new idempotency key:202 with a project_id and reserves the scene credits. Save that ID for polling, downloads, cancellation, and optional lifts. Scene creation creates its own project; do not create or pass a separate project ID.
If a request times out, retry the same payload with the same idempotency key. If an error response includes a project ID, poll that project before submitting anything new.
Track and download the scene
Poll the project, for example every 30–60 seconds:status to determine the outcome and phase for progress display. A downloadable scene result is partially_completed: the scene is available, and optional item lifts remain possible. You do not need to request a lift to download the scene.
Read result.artifacts for the scene and item downloads. The published formats are Blender, GLB, USDZ, and ZIP bundles. The initial result represents appearance and geometry reconstruction; it does not certify physics or articulation. Review the output against your intended use and references.
Quote and lift selected items
Retrieve the catalog withGET /api/v1/scenes/PROJECT_ID/items. Select the returned item_id values and give each item its own enhancement prompt. The default lift mode returns an itemized quote without starting generation:
POST /api/v1/scenes/PROJECT_ID/lift. Replace the example item ID with one from your catalog. To proceed, send mode: "generate" and a new Idempotency-Key. Generation evaluates the price again; a quote is not a price lock. Accepted lift prices appear in the project’s pricing field.
Continue polling the same project. You can request lifts for different items while other lifts are in progress. Wait until an active item finishes before requesting another lift for that item. Completed lifts become available in a new scene version. Earlier versions remain downloadable through the version endpoints.