Blockbench Texturing
Create and paint textures for 3D models using Blockbench MCP tools.
Available Tools
Texture Management
| Tool | Purpose |
|------|---------|
| create_texture | Create new texture with size and fill color |
| list_textures | List all project textures |
| get_texture | Get texture image data |
| apply_texture | Apply texture to element |
Paint Tools
| Tool | Purpose |
|------|---------|
| paint_with_brush | Paint with customizable brush |
| paint_fill_tool | Bucket fill areas |
| draw_shape_tool | Draw rectangles/ellipses |
| gradient_tool | Apply gradients |
| eraser_tool | Erase with brush settings |
| color_picker_tool | Pick colors from texture |
| copy_brush_tool | Clone/copy texture areas |
Brush Management
| Tool | Purpose |
|------|---------|
| create_brush_preset | Save brush settings |
| load_brush_preset | Load saved brush |
| paint_settings | Configure paint mode |
Layers & Selection
| Tool | Purpose |
|------|---------|
| texture_layer_management | Manage texture layers |
| texture_selection | Create/modify selections |
UV Tools
| Tool | Purpose |
|------|---------|
| set_mesh_uv | Set UV coordinates |
| auto_uv_mesh | Auto-generate UVs |
| rotate_mesh_uv | Rotate UV mapping |
Resources
| Resource | URI | Purpose |
|----------|-----|---------|
| textures | textures://{id} | List/read texture info |
Creating Textures
New Blank Texture
create_texture: name="skin", width=64, height=64, fill_color="#808080"
Texture with Transparency
create_texture: name="overlay", width=32, height=32, fill_color=[0, 0, 0, 0]
Apply to Element
apply_texture: id="body", texture="skin", applyTo="all"
Painting
Basic Brush Stroke
paint_with_brush: texture_id="skin", coordinates=[
{x: 10, y: 10},
{x: 15, y: 12},
{x: 20, y: 10}
], brush_settings={color: "#FF0000", size: 3, shape: "circle"}
Soft Brush
paint_with_brush: texture_id="skin", coordinates=[{x: 32, y: 32}],
brush_settings={color: "#FFFFFF", size: 10, softness: 50, opacity: 128}
Fill Area
paint_fill_tool: texture_id="skin", x=16, y=16, color="#3366FF",
fill_mode="color_connected", tolerance=10
Fill Entire Face
paint_fill_tool: texture_id="skin", x=0, y=0, color="#228B22",
fill_mode="face"
Shapes & Gradients
Draw Rectangle
draw_shape_tool: texture_id="skin", shape="rectangle",
start={x: 0, y: 0}, end={x: 16, y: 16}, color="#FFCC00"
Draw Hollow Ellipse
draw_shape_tool: texture_id="skin", shape="ellipse_h",
start={x: 8, y: 8}, end={x: 24, y: 24}, color="#000000", line_width=2
Apply Gradient
gradient_tool: texture_id="skin",
start={x: 0, y: 0}, end={x: 0, y: 32},
start_color="#87CEEB", end_color="#1E90FF"
Erasing
eraser_tool: texture_id="skin", coordinates=[{x: 10, y: 10}, {x: 12, y: 12}],
brush_size=5, shape="circle", opacity=255
Color Picking
color_picker_tool: texture_id="skin", x=16, y=16
# Returns picked color, sets as active
Clone/Copy Brush
copy_brush_tool: texture_id="skin",
source={x: 0, y: 0}, target={x: 32, y: 0},
brush_size=8, mode="copy"
Brush Presets
Create Preset
create_brush_preset: name="soft_round", size=8, shape="circle",
softness=30, opacity=200, color="#FFFFFF"
Load Preset
load_brush_preset: preset_name="soft_round"
Texture Layers
Create Layer
texture_layer_management: texture_id="skin", action="create_layer",
layer_name="details"
Set Layer Opacity
texture_layer_management: texture_id="skin", action="set_opacity",
layer_name="details", opacity=75
Merge Down
texture_layer_management: texture_id="skin", action="merge_down",
layer_name="details"
Selections
Rectangle Selection
texture_selection: texture_id="skin", action="select_rectangle",
coordinates={x1: 0, y1: 0, x2: 16, y2: 16}
Add to Selection
texture_selection: texture_id="skin", action="select_ellipse",
coordinates={x1: 8, y1: 8, x2: 24, y2: 24}, mode="add"
Invert Selection
texture_selection: texture_id="skin", action="invert_selection"
Feather Edges
texture_selection: texture_id="skin", action="feather_selection", radius=2
UV Mapping
Auto UV for Mesh
auto_uv_mesh: mesh_id="sphere", mode="project" # project, unwrap, cylinder, sphere
Set Custom UV
set_mesh_uv: mesh_id="cube", face_key="north",
uv_mapping={"v1": [0, 0], "v2": [16, 0], "v3": [16, 16], "v4": [0, 16]}
Rotate UV
rotate_mesh_uv: mesh_id="cube", angle="90"
Paint Settings
paint_settings: pixel_perfect=true, mirror_painting={enabled: true, axis: ["x"]},
lock_alpha=true
Common Workflows
Skin Texture
# Create texture
create_texture: name="player_skin", width=64, height=64, fill_color="#C4A484"
# Base colors
paint_fill_tool: x=8, y=8, color="#C4A484", fill_mode="face" # Face
paint_fill_tool: x=20, y=20, color="#3366CC", fill_mode="face" # Body
# Details with brush
paint_with_brush: coordinates=[{x: 10, y: 10}, {x: 12, y: 10}],
brush_settings={color: "#000000", size: 1} # Eyes
# Apply
apply_texture: id="head", texture="player_skin"
Procedural Pattern
# Create base
create_texture: name="pattern", width=32, height=32, fill_color="#FFFFFF"
# Draw grid
draw_shape_tool: shape="rectangle_h", start={x: 0, y: 0}, end={x: 32, y: 32},
color="#CCCCCC", line_width=1
draw_shape_tool: shape="rectangle_h", start={x: 8, y: 8}, end={x: 24, y: 24},
color="#999999", line_width=1
Tips
- Use
pixel_perfect=truein paint_settings for clean pixel art - Enable
mirror_paintingfor symmetrical textures - Use layers for non-destructive editing
lock_alphaprevents painting outside existing pixels- Use
fill_mode="color_connected"to fill only touching same-color pixels - Create brush presets for frequently used settings