Render budget

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

blender_render_budget

What the frame will cost before rendering it: texture memory by size and depth, geometry after modifiers, instances, particles and hair, the Cycles devices and system memory, and a probe that renders the frame twice at low resolution — the pair separates the fixed cost of a frame from the cost that grows with its pixels, and the estimate is their sum for the whole frame. The memory estimate says where it came from: the probe's own peak plus the frame buffer it did not fill, or the textures and geometry when no probe ran. Verdict fits, tight or exceeds against a memory limit, with recommendations that can be applied in the same call: texture limit, simplify, tile size, device. Optionally packs external files and saves a copy for a farm.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
probe object? — null Probe render at low resolution to time the frame and measure peak memory; omit to skip.
apply object? — null Limits to apply now.
packForFarm object? — null Prepare the file for a farm.
memoryLimitMb integer? — null Memory the render may use in MB; 80 percent of what this machine, or the container Blender runs in, allows it otherwise.
scene string? — null Scene to act on; the current scene otherwise.
timeoutSeconds integer — 300 Seconds to wait for Blender, 1 to 600.
JSON Schema
{
  "type": "object",
  "properties": {
    "probe": {
      "description": "Probe render at low resolution to time the frame and measure peak memory; omit to skip.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "enabled": {
          "description": "Off skips the probe; on when any other field is given.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "percentage": {
          "description": "Resolution percentage of the probe, 1 to 50; 10 by default.",
          "type": [
            "integer",
            "null"
          ]
        },
        "samples": {
          "description": "Samples for the probe; the scene\u0027s otherwise.",
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "default": null
    },
    "apply": {
      "description": "Limits to apply now.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "textureLimit": {
          "description": "Largest texture edge at render time: OFF, 128, 256, 512, 1024, 2048, 4096 or 8192.",
          "type": [
            "string",
            "null"
          ]
        },
        "simplify": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "enabled": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "subdivision": {
              "description": "Maximum subdivision level at render time.",
              "type": [
                "integer",
                "null"
              ]
            },
            "childParticles": {
              "description": "Fraction of child particles rendered, 0 to 1.",
              "type": [
                "number",
                "null"
              ]
            },
            "volumes": {
              "description": "Volume resolution fraction, 0 to 1.",
              "type": [
                "number",
                "null"
              ]
            }
          }
        },
        "tileSize": {
          "description": "Cycles tile size in pixels; smaller lowers peak memory.",
          "type": [
            "integer",
            "null"
          ]
        },
        "device": {
          "description": "CPU, or a device name or type from the reply\u0027s devices list.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "default": null
    },
    "packForFarm": {
      "description": "Prepare the file for a farm.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "enabled": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "packExternal": {
          "description": "Pack external images and files into the .blend.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "relativePaths": {
          "description": "Make every path relative to the file; needs a saved file.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "copyTo": {
          "description": "Absolute path for a self-contained copy.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "default": null
    },
    "memoryLimitMb": {
      "description": "Memory the render may use in MB; 80 percent of what this machine, or the container Blender runs in, allows it otherwise.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "scene": {
      "description": "Scene to act on; the current scene otherwise.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "timeoutSeconds": {
      "description": "Seconds to wait for Blender, 1 to 600.",
      "type": "integer",
      "default": 300
    }
  }
}