Operation

Generate Cannon 3D Model

Generate a Cannon Studio 3D character or object model from hosted source images.

Operation: three_d.model.generate
Submit via POST /api/v1/requests
Credits: dynamic
Cannon 3D Model

Request fields

source_image_urlsasset_kindnametexture_base_colorcharacter_iduniverse_idobject_idworkspace_id

Example request

{
  "operation": "three_d.model.generate",
  "input": {
    "source_image_urls": [
      "https://example.com/front-reference.png",
      "https://example.com/back-reference.png"
    ],
    "asset_kind": "object",
    "name": "Hero prop",
    "texture_base_color": "#b8b8b8"
  }
}
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-model-generate-001" \
  -d @- <<'JSON'
{
  "operation": "three_d.model.generate",
  "input": {
    "source_image_urls": [
      "https://example.com/front-reference.png",
      "https://example.com/back-reference.png"
    ],
    "asset_kind": "object",
    "name": "Hero prop",
    "texture_base_color": "#b8b8b8"
  }
}
JSON

Notes

  • Generates a Cannon Studio 3D model as a hosted GLB from one or more public source image URLs.
  • Use `asset_kind: object` for props and products; omit IDs for a standalone image-to-3D request.
  • If you pass existing `character_id`/`universe_id` or `object_id` fields, Cannon Studio also links the artifact back to that saved asset.
  • The public request output is Cannon-branded and returns hosted model/preview URLs through the request lifecycle.

Success output

{
  "task_id": "model3d_123",
  "asset_type": "3d_model",
  "status": "succeeded",
  "model_url": "https://storage.googleapis.com/.../model.glb",
  "preview_image_urls": [
    "https://storage.googleapis.com/.../preview.png"
  ],
  "raw_artifact_urls": [
    "https://storage.googleapis.com/.../model.glb"
  ],
  "provider": "cannon3d",
  "model": "cannon-3d-model",
  "asset_kind": "object"
}