Operation
Generate Cannon 3D Location
Generate Cannon Studio 3D location/world artifacts from hosted location reference images.
Operation: three_d.location.generate
Submit via POST /api/v1/requests
Credits: dynamic
Cannon 3D Location
Request fields
namedescriptionsource_image_urlsangle_contextqualitylocation_iduniverse_idzone_idworkspace_idproject_id
Example request
{
"operation": "three_d.location.generate",
"input": {
"name": "Neon street market",
"description": "A rainy night market with layered signage, food stalls, and wet asphalt.",
"source_image_urls": [
"https://example.com/front.jpg",
"https://example.com/right.jpg",
"https://example.com/back.jpg",
"https://example.com/left.jpg"
],
"angle_context": [
{
"image_url": "https://example.com/front.jpg",
"label": "Front",
"azimuth": 0
},
{
"image_url": "https://example.com/right.jpg",
"label": "Right",
"azimuth": 90
},
{
"image_url": "https://example.com/back.jpg",
"label": "Back",
"azimuth": 180
},
{
"image_url": "https://example.com/left.jpg",
"label": "Left",
"azimuth": 270
}
],
"quality": "standard"
}
}curl -X POST https://www.cannonstudio.app/api/v1/requests \
-H "Content-Type: application/json" \
-H "x-api-key: $CANNON_API_KEY" \
-H "x-idempotency-key: three-d-location-generate-001" \
-d @- <<'JSON'
{
"operation": "three_d.location.generate",
"input": {
"name": "Neon street market",
"description": "A rainy night market with layered signage, food stalls, and wet asphalt.",
"source_image_urls": [
"https://example.com/front.jpg",
"https://example.com/right.jpg",
"https://example.com/back.jpg",
"https://example.com/left.jpg"
],
"angle_context": [
{
"image_url": "https://example.com/front.jpg",
"label": "Front",
"azimuth": 0
},
{
"image_url": "https://example.com/right.jpg",
"label": "Right",
"azimuth": 90
},
{
"image_url": "https://example.com/back.jpg",
"label": "Back",
"azimuth": 180
},
{
"image_url": "https://example.com/left.jpg",
"label": "Left",
"azimuth": 270
}
],
"quality": "standard"
}
}
JSONNotes
- Generates Cannon Studio 3D location/world artifacts from hosted location reference images.
- Standalone requests should provide at least three source images; four directional images with `angle_context` produce more reliable spatial continuity.
- The final request output can include splat, SPZ, panorama, mesh, collider, preview, camera path, and blocking overlay URLs.
- Use `quality: standard` for the default world generation path; expanded world sizing should stay off until its separate cost cap is approved.
Success output
{
"task_id": "loc3d_123",
"asset_type": "3d_location",
"status": "succeeded",
"splat_url": "https://storage.googleapis.com/.../world.splat",
"spz_url": "https://storage.googleapis.com/.../world.spz",
"pano_url": "https://storage.googleapis.com/.../pano.jpg",
"collider_glb_url": "https://storage.googleapis.com/.../collider.glb",
"preview_image_urls": [
"https://storage.googleapis.com/.../preview.jpg"
],
"provider": "cannon3d",
"model": "cannon-3d-location"
}