Product shots, captures and bakes

Part of the rendering skill: these tools appear once it is loaded — by blender_enable_skill with rendering, or by find_tool when a search returns one of them.

blender_render_object

Renders one object (or a few) alone: a temporary camera frames them from a chosen angle, everything else is hidden from the render, the background is transparent. A product shot in one call.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
path string yes — Absolute path of the image to write.
name string? — null Name of the object as shown in the outliner.
names array? — null Several objects to frame together instead of one.
azimuth number? — null Camera direction around the vertical axis in degrees; 0 looks from +X.
elevation number? — null Camera height angle in degrees; 0 is level, 90 is straight down.
lens number? — null Focal length in millimetres.
margin number? — null Space around the object; 1 fills the frame, 1.15 is the default.
transparent boolean — true Transparent background.
resolutionX integer? — null Pixels along this edge, 1 to 4096.
resolutionY integer? — null Pixels along this edge, 1 to 4096.
keepCamera boolean — false Keep the temporary camera (SnailShot) in the scene.
preview boolean — true Return a small JPEG of the result as image content, with exposure statistics; false for the path only.
timeoutSeconds integer — 300 Seconds to wait for Blender, 1 to 600.
JSON Schema
{
  "type": "object",
  "properties": {
    "path": {
      "description": "Absolute path of the image to write.",
      "type": "string"
    },
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "names": {
      "description": "Several objects to frame together instead of one.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    },
    "azimuth": {
      "description": "Camera direction around the vertical axis in degrees; 0 looks from \u002BX.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "elevation": {
      "description": "Camera height angle in degrees; 0 is level, 90 is straight down.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "lens": {
      "description": "Focal length in millimetres.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "margin": {
      "description": "Space around the object; 1 fills the frame, 1.15 is the default.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "transparent": {
      "description": "Transparent background.",
      "type": "boolean",
      "default": true
    },
    "resolutionX": {
      "description": "Pixels along this edge, 1 to 4096.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "resolutionY": {
      "description": "Pixels along this edge, 1 to 4096.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "keepCamera": {
      "description": "Keep the temporary camera (SnailShot) in the scene.",
      "type": "boolean",
      "default": false
    },
    "preview": {
      "description": "Return a small JPEG of the result as image content, with exposure statistics; false for the path only.",
      "type": "boolean",
      "default": true
    },
    "timeoutSeconds": {
      "description": "Seconds to wait for Blender, 1 to 600.",
      "type": "integer",
      "default": 300
    }
  },
  "required": [
    "path"
  ]
}

blender_viewport_capture

Grabs the 3D viewport as the user sees it, in its current shading, to a file; fast feedback without a render. Needs Blender's window.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
path string yes — Absolute path of the image to write.
preview boolean — true Return a small JPEG of the result as image content, with exposure statistics; false for the path only.
JSON Schema
{
  "type": "object",
  "properties": {
    "path": {
      "description": "Absolute path of the image to write.",
      "type": "string"
    },
    "preview": {
      "description": "Return a small JPEG of the result as image content, with exposure statistics; false for the path only.",
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "path"
  ]
}

blender_inspect_image

Looks at an image file: a preview the model can see, plus exposure statistics (mean luminance, clipped highlights and shadows, a histogram). For frames a background job wrote, textures, or any render on disk.

read-only · every call adds · stays inside Blender.

Parameter Type Required Default Description
path string yes — Absolute path of the image: PNG, JPEG, EXR, TIFF or anything Blender opens.
preview boolean — true Return a small JPEG of the result as image content, with exposure statistics; false for the path only.
previewSize integer? — null Longest edge of the preview in pixels; 512 by default, 1024 to read fine detail.
JSON Schema
{
  "type": "object",
  "properties": {
    "path": {
      "description": "Absolute path of the image: PNG, JPEG, EXR, TIFF or anything Blender opens.",
      "type": "string"
    },
    "preview": {
      "description": "Return a small JPEG of the result as image content, with exposure statistics; false for the path only.",
      "type": "boolean",
      "default": true
    },
    "previewSize": {
      "description": "Longest edge of the preview in pixels; 512 by default, 1024 to read fine detail.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "path"
  ]
}

blender_bake_texture

Bakes a material channel (colour, normal, AO, roughness, combined) into a PNG through the mesh's UVs with Cycles; the way to take procedural materials into game engines.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the mesh object.
path string yes — Absolute path of the PNG to write.
type string — DIFFUSE DIFFUSE, COMBINED, AO, NORMAL, ROUGHNESS, EMIT, SHADOW, POSITION, UV, GLOSSY, TRANSMISSION or ENVIRONMENT.
width integer — 1024 Texture width in pixels, up to 4096.
height integer? — null Texture height in pixels; the width otherwise.
samples integer? — null Cycles samples; low values are fine for colour bakes.
margin integer? — null Pixels of bleed around UV islands.
imageName string? — null Name for the image datablock.
keepNode boolean — false Leave the image texture node in the materials.
preview boolean — true Return a small JPEG of the result as image content, with exposure statistics; false for the path only.
timeoutSeconds integer — 600 Seconds to wait for Blender, 1 to 600.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the mesh object.",
      "type": "string"
    },
    "path": {
      "description": "Absolute path of the PNG to write.",
      "type": "string"
    },
    "type": {
      "description": "DIFFUSE, COMBINED, AO, NORMAL, ROUGHNESS, EMIT, SHADOW, POSITION, UV, GLOSSY, TRANSMISSION or ENVIRONMENT.",
      "type": "string",
      "default": "DIFFUSE"
    },
    "width": {
      "description": "Texture width in pixels, up to 4096.",
      "type": "integer",
      "default": 1024
    },
    "height": {
      "description": "Texture height in pixels; the width otherwise.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "samples": {
      "description": "Cycles samples; low values are fine for colour bakes.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "margin": {
      "description": "Pixels of bleed around UV islands.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "imageName": {
      "description": "Name for the image datablock.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "keepNode": {
      "description": "Leave the image texture node in the materials.",
      "type": "boolean",
      "default": false
    },
    "preview": {
      "description": "Return a small JPEG of the result as image content, with exposure statistics; false for the path only.",
      "type": "boolean",
      "default": true
    },
    "timeoutSeconds": {
      "description": "Seconds to wait for Blender, 1 to 600.",
      "type": "integer",
      "default": 600
    }
  },
  "required": [
    "name",
    "path"
  ]
}