Cycles, EEVEE, motion blur and Freestyle

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_set_cycles

Switches to Cycles and sets its sampling in depth: samples, adaptive sampling with threshold and minimum, a time limit, the denoiser with prefilter, passes and quality, GPU denoising, device and compute backend (CUDA, OptiX, HIP, oneAPI, Metal) with the devices this machine has, light paths per bounce type, caustics, clamping, light tree, seed and persistent data; anything else by Python name.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
activate boolean — true Switch the scene to Cycles; false only changes the settings.
samples integer? — null Maximum samples per pixel; 64 to 256 for previews, 1024 to 4096 for finals with adaptive sampling.
adaptiveSampling boolean? — null Adaptive sampling on or off; it stops sampling pixels that converged.
adaptiveThreshold number? — null Noise threshold for adaptive sampling; 0.01 is the default, 0.001 cleaner and slower.
adaptiveMinSamples integer? — null Minimum samples before adaptive sampling may stop; 0 lets Blender choose.
timeLimit number? — null Seconds per frame after which sampling stops; 0 is no limit.
denoise boolean? — null Denoise the final render.
denoiser string? — null OPENIMAGEDENOISE (every platform) or OPTIX (NVIDIA only); the reply lists what this machine has.
denoisePrefilter string? — null Denoiser prefilter: ACCURATE (the default), FAST or NONE.
denoisePasses string? — null Passes the denoiser uses: RGB, RGB_ALBEDO or RGB_ALBEDO_NORMAL (the default, best).
denoiseQuality string? — null Denoiser quality: HIGH, BALANCED or FAST.
denoiseGpu boolean? — null Run the denoiser on the GPU.
device string? — null CPU or GPU; GPU needs a compute backend, which backend sets.
backend string? — null Compute backend for GPU rendering: OPTIX or CUDA (NVIDIA), HIP (AMD), ONEAPI (Intel), METAL (Apple), NONE for the CPU alone. Enables every device of that backend and sets the device to GPU; the reply lists the devices this machine has, and render jobs take the choice to their worker.
bounces object? — null Light path bounces per type.
caustics object? — null Caustics; off with glossy blur reduces fireflies.
clamp object? — null Clamp sample brightness; 0 is no clamp.
lightTree boolean? — null Light tree for many-light scenes.
seed integer? — null Noise seed; animatedSeed changes it per frame.
animatedSeed boolean? — null Change the seed every frame so noise does not stick in animations.
persistentData boolean? — null Keep scene data between frames; faster animations, more memory.
settings object? — null Any other scene.cycles setting by Python name, e.g. {"use_guiding": true, "volume_step_rate": 0.5, "texture_limit_render": "2048"}.
scene string? — null Scene to act on; the current scene otherwise.
JSON Schema
{
  "type": "object",
  "properties": {
    "activate": {
      "description": "Switch the scene to Cycles; false only changes the settings.",
      "type": "boolean",
      "default": true
    },
    "samples": {
      "description": "Maximum samples per pixel; 64 to 256 for previews, 1024 to 4096 for finals with adaptive sampling.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "adaptiveSampling": {
      "description": "Adaptive sampling on or off; it stops sampling pixels that converged.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "adaptiveThreshold": {
      "description": "Noise threshold for adaptive sampling; 0.01 is the default, 0.001 cleaner and slower.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "adaptiveMinSamples": {
      "description": "Minimum samples before adaptive sampling may stop; 0 lets Blender choose.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "timeLimit": {
      "description": "Seconds per frame after which sampling stops; 0 is no limit.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "denoise": {
      "description": "Denoise the final render.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "denoiser": {
      "description": "OPENIMAGEDENOISE (every platform) or OPTIX (NVIDIA only); the reply lists what this machine has.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "denoisePrefilter": {
      "description": "Denoiser prefilter: ACCURATE (the default), FAST or NONE.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "denoisePasses": {
      "description": "Passes the denoiser uses: RGB, RGB_ALBEDO or RGB_ALBEDO_NORMAL (the default, best).",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "denoiseQuality": {
      "description": "Denoiser quality: HIGH, BALANCED or FAST.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "denoiseGpu": {
      "description": "Run the denoiser on the GPU.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "device": {
      "description": "CPU or GPU; GPU needs a compute backend, which backend sets.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "backend": {
      "description": "Compute backend for GPU rendering: OPTIX or CUDA (NVIDIA), HIP (AMD), ONEAPI (Intel), METAL (Apple), NONE for the CPU alone. Enables every device of that backend and sets the device to GPU; the reply lists the devices this machine has, and render jobs take the choice to their worker.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "bounces": {
      "description": "Light path bounces per type.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "total": {
          "description": "Total bounces; 12 is the default.",
          "type": [
            "integer",
            "null"
          ]
        },
        "diffuse": {
          "type": [
            "integer",
            "null"
          ]
        },
        "glossy": {
          "type": [
            "integer",
            "null"
          ]
        },
        "transmission": {
          "type": [
            "integer",
            "null"
          ]
        },
        "volume": {
          "type": [
            "integer",
            "null"
          ]
        },
        "transparent": {
          "description": "Transparent bounces; raise for leaves and hair with alpha.",
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "default": null
    },
    "caustics": {
      "description": "Caustics; off with glossy blur reduces fireflies.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "reflective": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "refractive": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "blurGlossy": {
          "description": "Blur glossy reflections after blurry bounces to kill fireflies; 1 is the default.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "default": null
    },
    "clamp": {
      "description": "Clamp sample brightness; 0 is no clamp.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "direct": {
          "description": "Clamp direct light; 0 is none.",
          "type": [
            "number",
            "null"
          ]
        },
        "indirect": {
          "description": "Clamp indirect light; 10 removes fireflies with little energy loss.",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "default": null
    },
    "lightTree": {
      "description": "Light tree for many-light scenes.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "seed": {
      "description": "Noise seed; animatedSeed changes it per frame.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "animatedSeed": {
      "description": "Change the seed every frame so noise does not stick in animations.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "persistentData": {
      "description": "Keep scene data between frames; faster animations, more memory.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "settings": {
      "description": "Any other scene.cycles setting by Python name, e.g. {\u0022use_guiding\u0022: true, \u0022volume_step_rate\u0022: 0.5, \u0022texture_limit_render\u0022: \u00222048\u0022}.",
      "type": [
        "object",
        "null"
      ],
      "default": null
    },
    "scene": {
      "description": "Scene to act on; the current scene otherwise.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  }
}

blender_set_eevee

Switches to EEVEE and sets its quality: samples, shadows with rays, steps and resolution, ray tracing with its options, fast GI, volumetrics, clamping, depth-of-field bokeh, overscan and high quality normals; anything else by Python name.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
activate boolean — true Switch the scene to EEVEE; false only changes the settings.
samples integer? — null Render samples; 64 is the default, 16 for previews, 256 and up for clean soft shadows.
viewportSamples integer? — null Viewport samples.
shadows boolean? — null Shadows on or off.
shadowRays integer? — null Shadow rays per sample, 1 to 16; more is smoother.
shadowSteps integer? — null Shadow steps per ray, 1 to 16.
shadowResolution number? — null Shadow map resolution scale, 0.25 to 4.
raytracing boolean? — null Screen-space ray tracing for reflections and refractions.
raytracingOptions object? — null Ray tracing options.
fastGi boolean? — null Fast global illumination approximation for rough surfaces.
fastGiOptions object? — null Fast GI options.
volumetrics object? — null Volumetrics quality and range.
clamp object? — null Clamp light per surface and volume.
bokeh object? — null Depth of field bokeh.
overscan boolean? — null Render a margin outside the frame so screen-space effects do not fade at the edges.
overscanSize number? — null Overscan size in percent of the frame, 0 to 50.
highQualityNormals boolean? — null High quality normals for smooth shading.
settings object? — null Any other scene.eevee setting by Python name, e.g. {"use_taa_reprojection": true, "shadow_pool_size": "1024"}.
scene string? — null Scene to act on; the current scene otherwise.
JSON Schema
{
  "type": "object",
  "properties": {
    "activate": {
      "description": "Switch the scene to EEVEE; false only changes the settings.",
      "type": "boolean",
      "default": true
    },
    "samples": {
      "description": "Render samples; 64 is the default, 16 for previews, 256 and up for clean soft shadows.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "viewportSamples": {
      "description": "Viewport samples.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "shadows": {
      "description": "Shadows on or off.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "shadowRays": {
      "description": "Shadow rays per sample, 1 to 16; more is smoother.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "shadowSteps": {
      "description": "Shadow steps per ray, 1 to 16.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "shadowResolution": {
      "description": "Shadow map resolution scale, 0.25 to 4.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "raytracing": {
      "description": "Screen-space ray tracing for reflections and refractions.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "raytracingOptions": {
      "description": "Ray tracing options.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "resolution": {
          "description": "Trace resolution: \u00221\u0022, \u00222\u0022 or \u00224\u0022 (divisor).",
          "type": [
            "string",
            "null"
          ]
        },
        "maxRoughness": {
          "description": "Roughness above which reflections fall back to probes.",
          "type": [
            "number",
            "null"
          ]
        },
        "quality": {
          "description": "Trace precision 0 to 1.",
          "type": [
            "number",
            "null"
          ]
        },
        "thickness": {
          "description": "Surface thickness assumed by the screen trace.",
          "type": [
            "number",
            "null"
          ]
        },
        "denoise": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "denoiseSpatial": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "denoiseTemporal": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "denoiseBilateral": {
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "default": null
    },
    "fastGi": {
      "description": "Fast global illumination approximation for rough surfaces.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "fastGiOptions": {
      "description": "Fast GI options.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "method": {
          "description": "AMBIENT_OCCLUSION_ONLY or GLOBAL_ILLUMINATION.",
          "type": [
            "string",
            "null"
          ]
        },
        "quality": {
          "type": [
            "number",
            "null"
          ]
        },
        "rays": {
          "type": [
            "integer",
            "null"
          ]
        },
        "steps": {
          "type": [
            "integer",
            "null"
          ]
        },
        "distance": {
          "description": "Distance in metres; 0 is unlimited.",
          "type": [
            "number",
            "null"
          ]
        },
        "resolution": {
          "description": "\u00221\u0022, \u00222\u0022 or \u00224\u0022.",
          "type": [
            "string",
            "null"
          ]
        },
        "bias": {
          "type": [
            "number",
            "null"
          ]
        },
        "thickness": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "default": null
    },
    "volumetrics": {
      "description": "Volumetrics quality and range.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "tileSize": {
          "description": "\u00222\u0022, \u00224\u0022, \u00228\u0022 or \u002216\u0022; smaller is finer and slower.",
          "type": [
            "string",
            "null"
          ]
        },
        "samples": {
          "type": [
            "integer",
            "null"
          ]
        },
        "distribution": {
          "description": "Sample distribution 0 to 1; higher packs samples near the camera.",
          "type": [
            "number",
            "null"
          ]
        },
        "start": {
          "type": [
            "number",
            "null"
          ]
        },
        "end": {
          "type": [
            "number",
            "null"
          ]
        },
        "customRange": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "shadows": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "shadowSamples": {
          "type": [
            "integer",
            "null"
          ]
        },
        "rayDepth": {
          "type": [
            "integer",
            "null"
          ]
        },
        "lightClamp": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "default": null
    },
    "clamp": {
      "description": "Clamp light per surface and volume.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "surfaceDirect": {
          "type": [
            "number",
            "null"
          ]
        },
        "surfaceIndirect": {
          "type": [
            "number",
            "null"
          ]
        },
        "volumeDirect": {
          "type": [
            "number",
            "null"
          ]
        },
        "volumeIndirect": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "default": null
    },
    "bokeh": {
      "description": "Depth of field bokeh.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "maxSize": {
          "description": "Largest bokeh in pixels.",
          "type": [
            "number",
            "null"
          ]
        },
        "threshold": {
          "type": [
            "number",
            "null"
          ]
        },
        "neighborMax": {
          "type": [
            "number",
            "null"
          ]
        },
        "jittered": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "overblur": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "default": null
    },
    "overscan": {
      "description": "Render a margin outside the frame so screen-space effects do not fade at the edges.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "overscanSize": {
      "description": "Overscan size in percent of the frame, 0 to 50.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "highQualityNormals": {
      "description": "High quality normals for smooth shading.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "settings": {
      "description": "Any other scene.eevee setting by Python name, e.g. {\u0022use_taa_reprojection\u0022: true, \u0022shadow_pool_size\u0022: \u00221024\u0022}.",
      "type": [
        "object",
        "null"
      ],
      "default": null
    },
    "scene": {
      "description": "Scene to act on; the current scene otherwise.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  }
}

blender_set_motion_blur

Sets motion blur for renders: on or off, shutter time in frames, shutter position, Cycles rolling shutter, EEVEE steps and maximum blur, and whether the view layers use it.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
enabled boolean? — null Motion blur on or off.
shutter number? — null Shutter time in frames; 0.5 is a 180° shutter, the film look.
position string? — null Where the shutter opens relative to the frame: START, CENTER (the default) or END.
rollingShutter boolean? — null Cycles rolling shutter: true (TOP), false (NONE).
rollingShutterDuration number? — null Cycles rolling shutter duration as a fraction of the frame, 0 to 1.
steps integer? — null EEVEE motion steps, 1 and up; more steps blur curved motion correctly.
maxBlur integer? — null EEVEE maximum blur in pixels.
depthScale number? — null EEVEE depth scale that separates foreground from background blur.
viewLayerEnabled boolean? — null Apply motion blur on every view layer of the scene, or not.
shutterCurve array? — null Shutter opening over the exposure as [[t, open], ...] from t 0 to 1; [[0,0],[0.1,1],[0.9,1],[1,0]] imitates a mechanical shutter, a flat 1 is the default.
scene string? — null Scene to act on; the current scene otherwise.
JSON Schema
{
  "type": "object",
  "properties": {
    "enabled": {
      "description": "Motion blur on or off.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "shutter": {
      "description": "Shutter time in frames; 0.5 is a 180\u00B0 shutter, the film look.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "position": {
      "description": "Where the shutter opens relative to the frame: START, CENTER (the default) or END.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "rollingShutter": {
      "description": "Cycles rolling shutter: true (TOP), false (NONE).",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "rollingShutterDuration": {
      "description": "Cycles rolling shutter duration as a fraction of the frame, 0 to 1.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "steps": {
      "description": "EEVEE motion steps, 1 and up; more steps blur curved motion correctly.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "maxBlur": {
      "description": "EEVEE maximum blur in pixels.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "depthScale": {
      "description": "EEVEE depth scale that separates foreground from background blur.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "viewLayerEnabled": {
      "description": "Apply motion blur on every view layer of the scene, or not.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "shutterCurve": {
      "description": "Shutter opening over the exposure as [[t, open], ...] from t 0 to 1; [[0,0],[0.1,1],[0.9,1],[1,0]] imitates a mechanical shutter, a flat 1 is the default.",
      "type": [
        "array",
        "null"
      ],
      "default": null
    },
    "scene": {
      "description": "Scene to act on; the current scene otherwise.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  }
}

blender_set_freestyle

Freestyle line rendering: on or off, line thickness and mode, crease angle, and line sets with their edge types, visibility, colour and thickness; for toon, technical and ink looks.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
enabled boolean? — null Freestyle on or off for the scene and view layer.
lineThickness number? — null Base line thickness in pixels.
thicknessMode string? — null ABSOLUTE or RELATIVE to the resolution.
creaseAngle number? — null Angle in degrees above which an edge counts as a crease.
culling boolean? — null Cull lines outside the view.
linesets array? — null Line sets to create or update.
removeLinesets array? — null Line set names to remove.
viewLayer string? — null View layer; the active one otherwise.
scene string? — null Scene to act on; the current scene otherwise.
JSON Schema
{
  "type": "object",
  "properties": {
    "enabled": {
      "description": "Freestyle on or off for the scene and view layer.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "lineThickness": {
      "description": "Base line thickness in pixels.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "thicknessMode": {
      "description": "ABSOLUTE or RELATIVE to the resolution.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "creaseAngle": {
      "description": "Angle in degrees above which an edge counts as a crease.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "culling": {
      "description": "Cull lines outside the view.",
      "type": [
        "boolean",
        "null"
      ],
      "default": null
    },
    "linesets": {
      "description": "Line sets to create or update.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "name": {
            "description": "Line set name; LineSet is Blender\u0027s default one.",
            "type": [
              "string",
              "null"
            ]
          },
          "enabled": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "edges": {
            "description": "Edge types that draw: silhouette, border, crease, contour, external_contour, material_boundary, edge_mark, suggestive_contour, ridge_valley.",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "visibility": {
            "description": "VISIBLE, HIDDEN or RANGE.",
            "type": [
              "string",
              "null"
            ]
          },
          "color": {
            "description": "Line colour [r, g, b].",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "number"
            }
          },
          "thickness": {
            "description": "Line thickness in pixels.",
            "type": [
              "number",
              "null"
            ]
          },
          "alpha": {
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "default": null
    },
    "removeLinesets": {
      "description": "Line set names to remove.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    },
    "viewLayer": {
      "description": "View layer; the active one otherwise.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "scene": {
      "description": "Scene to act on; the current scene otherwise.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  }
}