Textures and UVs¶
Part of the materials skill: these tools appear once it is loaded — by blender_enable_skill with materials, or by find_tool when a search returns one of them.
blender_load_image_texture ¶
Loads an image file into an Image Texture node and wires it into the Principled BSDF. The mesh needs UVs: blender_unwrap_uv makes them.
only adds · every call adds · stays inside Blender.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
material |
string |
yes | — | Material name as blender_list_materials shows it. |
path |
string |
yes | — | Absolute path of the image file. |
name |
string? |
— | null |
Name for the image node. |
connectTo |
string? |
— | Base Color |
Principled BSDF input to wire the texture into: Base Color, Roughness, Metallic, Alpha, Normal (adds a bump node) or Emission Color; empty leaves it unconnected. |
colorspace |
string? |
— | null |
Colour space: sRGB for colour images, Non-Color for roughness, normal and height maps. |
projection |
string? |
— | null |
FLAT (UV), BOX, SPHERE or TUBE projection. |
JSON Schema
{
"type": "object",
"properties": {
"material": {
"description": "Material name as blender_list_materials shows it.",
"type": "string"
},
"path": {
"description": "Absolute path of the image file.",
"type": "string"
},
"name": {
"description": "Name for the image node.",
"type": [
"string",
"null"
],
"default": null
},
"connectTo": {
"description": "Principled BSDF input to wire the texture into: Base Color, Roughness, Metallic, Alpha, Normal (adds a bump node) or Emission Color; empty leaves it unconnected.",
"type": [
"string",
"null"
],
"default": "Base Color"
},
"colorspace": {
"description": "Colour space: sRGB for colour images, Non-Color for roughness, normal and height maps.",
"type": [
"string",
"null"
],
"default": null
},
"projection": {
"description": "FLAT (UV), BOX, SPHERE or TUBE projection.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"material",
"path"
]
}
blender_procedural_texture ¶
Adds a procedural texture (noise, voronoi, brick and the rest), optionally through a colour ramp, and wires it into a Principled BSDF input; Normal goes through a bump node.
only adds · every call adds · stays inside Blender.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
material |
string |
yes | — | Material name as blender_list_materials shows it. |
kind |
string |
— | noise |
noise, voronoi, musgrave, magic, wave, brick, checker or gradient. |
name |
string? |
— | null |
Name for the texture node. |
inputs |
object? |
— | null |
Texture inputs by socket name, e.g. {"Scale": 5, "Detail": 8, "Roughness": 0.6}. |
properties |
object? |
— | null |
Non-socket settings by Python name, e.g. {"noise_dimensions": "4D"}, {"blend_type": "MULTIPLY"}, {"operation": "ADD"}. |
connectTo |
string? |
— | Base Color |
Principled BSDF input to wire the texture into: Base Color, Roughness, Metallic, Alpha, Normal (adds a bump node) or Emission Color; empty leaves it unconnected. |
colorRamp |
array? |
— | null |
Insert a colour ramp: [{"position": 0, "color": [r, g, b]}, ...] with stops, or [] for a default black-to-white ramp. |
bumpStrength |
number? |
— | null |
Bump strength when connecting to Normal. |
JSON Schema
{
"type": "object",
"properties": {
"material": {
"description": "Material name as blender_list_materials shows it.",
"type": "string"
},
"kind": {
"description": "noise, voronoi, musgrave, magic, wave, brick, checker or gradient.",
"type": "string",
"default": "noise"
},
"name": {
"description": "Name for the texture node.",
"type": [
"string",
"null"
],
"default": null
},
"inputs": {
"description": "Texture inputs by socket name, e.g. {\u0022Scale\u0022: 5, \u0022Detail\u0022: 8, \u0022Roughness\u0022: 0.6}.",
"type": [
"object",
"null"
],
"default": null
},
"properties": {
"description": "Non-socket settings by Python name, e.g. {\u0022noise_dimensions\u0022: \u00224D\u0022}, {\u0022blend_type\u0022: \u0022MULTIPLY\u0022}, {\u0022operation\u0022: \u0022ADD\u0022}.",
"type": [
"object",
"null"
],
"default": null
},
"connectTo": {
"description": "Principled BSDF input to wire the texture into: Base Color, Roughness, Metallic, Alpha, Normal (adds a bump node) or Emission Color; empty leaves it unconnected.",
"type": [
"string",
"null"
],
"default": "Base Color"
},
"colorRamp": {
"description": "Insert a colour ramp: [{\u0022position\u0022: 0, \u0022color\u0022: [r, g, b]}, ...] with stops, or [] for a default black-to-white ramp.",
"type": [
"array",
"null"
],
"default": null
},
"bumpStrength": {
"description": "Bump strength when connecting to Normal.",
"type": [
"number",
"null"
],
"default": null
}
},
"required": [
"material"
]
}
blender_unwrap_uv ¶
Unwraps a mesh's UVs by Smart UV Project, seams, cube, sphere or cylinder projection.
only adds · every call adds · stays inside Blender.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
name |
string |
yes | — | Name of the mesh object. |
method |
string |
— | smart |
smart (Smart UV Project, the default), unwrap (needs seams), cube, sphere or cylinder. |
margin |
number |
— | 0.02 |
Space between UV islands, 0 to 1. |
angleLimit |
number? |
— | null |
smart: faces meeting at a sharper angle in degrees start a new island. |
JSON Schema
{
"type": "object",
"properties": {
"name": {
"description": "Name of the mesh object.",
"type": "string"
},
"method": {
"description": "smart (Smart UV Project, the default), unwrap (needs seams), cube, sphere or cylinder.",
"type": "string",
"default": "smart"
},
"margin": {
"description": "Space between UV islands, 0 to 1.",
"type": "number",
"default": 0.02
},
"angleLimit": {
"description": "smart: faces meeting at a sharper angle in degrees start a new island.",
"type": [
"number",
"null"
],
"default": null
}
},
"required": [
"name"
]
}