{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/suzanne3d/main/json-schema/suzanne3d-text-to3d-request-schema.json",
  "title": "TextTo3dRequest",
  "x-generated": "2026-10-07",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/suzanne3d-openapi-generated.yml#/components/schemas/TextTo3dRequest",
  "type": "object",
  "required": [
    "model",
    "prompt"
  ],
  "properties": {
    "model": {
      "type": "string",
      "enum": [
        "sculptor",
        "atelier",
        "capture"
      ],
      "description": "Stable named model; all three run on the Atelier2 engine."
    },
    "prompt": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "1-4000 characters describing the mesh you want."
    },
    "params": {
      "type": "object",
      "description": "Generation Parameters (apply to text-to-3D and photo-to-3D).",
      "properties": {
        "faces": {
          "type": "integer",
          "enum": [
            200000,
            500000,
            1000000,
            2000000
          ],
          "default": 500000,
          "description": "Target polygon count, chosen from a discrete menu. Values that do not apply to a given path are clamped to the closest supported value."
        },
        "pbr": {
          "type": "boolean",
          "default": true,
          "description": "Generate PBR textures (base color + metallic-roughness + normal). Disable for flat-shaded output."
        },
        "quad": {
          "type": "boolean",
          "default": false,
          "description": "When true, produces a quad-topology mesh (capped at 150000 faces, delivered as FBX)."
        },
        "texture_quality": {
          "type": "string",
          "enum": [
            "standard",
            "detailed"
          ],
          "description": "\"detailed\" for atelier, \"standard\" otherwise."
        }
      }
    },
    "outputs": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "glb",
          "obj",
          "stl",
          "fbx"
        ]
      },
      "default": [
        "glb"
      ],
      "description": "Any subset of [\"glb\", \"obj\", \"stl\", \"fbx\"] (default [\"glb\"])."
    }
  }
}