opendots.thach.app
A picture-book canvas. Draw the scene, place words and shapes, then present the story.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 4 · Act 10 · Transact 0 · Score: Not yet scored
Tool inspector
paint_asset
Paint one declared asset pass: outline, fill, shadow, highlight, or cleanup. Mix rects, lines, fills, and pixels; mirror/repeat drafts or translate one painted region on a copied frame for animation. Color "" erases. Each call returns the new revision PNG; inspect it and submit review_asset before stamping.
Page: /
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Asset id to paint into |
pass |
string | yes | The visual construction pass being applied |
frameIndex |
integer | no | Frame to paint (default 0). Use the current frameCount to append one copied frame. |
frameDuration |
integer | no | Milliseconds per frame, shared by the asset (default 400) |
rects |
array | no | Filled rectangles: each {x,y,width,height,color} paints a solid block. One rect can cover any region; color "" erases the block. |
lines |
array | no | Straight lines: each {x0,y0,x1,y1,color} draws an edge or outline. Use for silhouettes, seams, and furniture edges. color "" erases. |
fills |
array | no | Flood fills: each {x,y,color} bucket-fills the contiguous region touching x,y. Outline first (lines/rects), then flood the enclosed area. color "" erases. |
pixels |
array | no | Fine-detail pixels (applied last). For blocks/bands prefer rects. |
mirror |
string | no | Duplicate supplied operations across the asset axes while keeping the originals |
repeat |
object | no | Repeat supplied operations as a grid, including the original at row 0, column 0 |
translateRegion |
object | no | Move painted pixels in one bounded region on this frame; useful after appending a copied frame for a 1–2px blink, breath, limb, or hair motion. |
offsetX |
integer | no | Added to every x (default 0) — use to tile regions |
offsetY |
integer | no | Added to every y (default 0) |
Raw JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Asset id to paint into"
},
"pass": {
"type": "string",
"enum": [
"outline",
"fill",
"shadow",
"highlight",
"cleanup"
],
"description": "The visual construction pass being applied"
},
"frameIndex": {
"type": "integer",
"minimum": 0,
"description": "Frame to paint (default 0). Use the current frameCount to append one copied frame."
},
"frameDuration": {
"type": "integer",
"minimum": 100,
"maximum": 2000,
"description": "Milliseconds per frame, shared by the asset (default 400)"
},
"rects": {
"type": "array",
"maxItems": 512,
"description": "Filled rectangles: each {x,y,width,height,color} paints a solid block. One rect can cover any region; color \"\" erases the block.",
"items": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"width": {
"type": "integer"
},
"height": {
"type": "integer"
},
"color": {
"type": "string",
"description": "#rrggbb or \"\" to erase"
}
},
"required": [
"x",
"y",
"width",
"height",
"color"
]
}
},
"lines": {
"type": "array",
"maxItems": 512,
"description": "Straight lines: each {x0,y0,x1,y1,color} draws an edge or outline. Use for silhouettes, seams, and furniture edges. color \"\" erases.",
"items": {
"type": "object",
"properties": {
"x0": {
"type": "integer"
},
"y0": {
"type": "integer"
},
"x1": {
"type": "integer"
},
"y1": {
"type": "integer"
},
"color": {
"type": "string",
"description": "#rrggbb or \"\" to erase"
}
},
"required": [
"x0",
"y0",
"x1",
"y1",
"color"
]
}
},
"fills": {
"type": "array",
"maxItems": 512,
"description": "Flood fills: each {x,y,color} bucket-fills the contiguous region touching x,y. Outline first (lines/rects), then flood the enclosed area. color \"\" erases.",
"items": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"color": {
"type": "string",
"description": "#rrggbb or \"\" to erase"
}
},
"required": [
"x",
"y",
"color"
]
}
},
"pixels": {
"type": "array",
"maxItems": 4096,
"description": "Fine-detail pixels (applied last). For blocks/bands prefer rects.",
"items": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"description": "Column within asset (0 = left)"
},
"y": {
"type": "integer",
"description": "Row within asset (0 = top)"
},
"color": {
"type": "string",
"description": "#rrggbb or \"\" to erase"
}
},
"required": [
"x",
"y",
"color"
]
}
},
"mirror": {
"type": "string",
"enum": [
"left-right",
"top-bottom",
"both"
],
"description": "Duplicate supplied operations across the asset axes while keeping the originals"
},
"repeat": {
"type": "object",
"description": "Repeat supplied operations as a grid, including the original at row 0, column 0",
"properties": {
"columns": {
"type": "integer",
"minimum": 1,
"maximum": 16
},
"rows": {
"type": "integer",
"minimum": 1,
"maximum": 16
},
"stepX": {
"type": "integer",
"description": "Horizontal pixels between copies"
},
"stepY": {
"type": "integer",
"description": "Vertical pixels between copies"
}
},
"required": [
"columns",
"rows",
"stepX",
"stepY"
]
},
"translateRegion": {
"type": "object",
"description": "Move painted pixels in one bounded region on this frame; useful after appending a copied frame for a 1–2px blink, breath, limb, or hair motion.",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"width": {
"type": "integer",
"minimum": 1
},
"height": {
"type": "integer",
"minimum": 1
},
"dx": {
"type": "integer",
"minimum": -16,
"maximum": 16
},
"dy": {
"type": "integer",
"minimum": -16,
"maximum": 16
}
},
"required": [
"x",
"y",
"width",
"height",
"dx",
"dy"
]
},
"offsetX": {
"type": "integer",
"description": "Added to every x (default 0) — use to tile regions"
},
"offsetY": {
"type": "integer",
"description": "Added to every y (default 0)"
}
},
"required": [
"id",
"pass"
]
}
Similar websites
wfsim.app
A Warframe calculator that simulates the fight instead of estimating it — builder, simulator, optimizer. Every formula cites its source, and the golden tests ar…
commonplace-webmcp.vercel.app
Commonplace is an editable social reading space built for people and their browser agents.
pixelforge-studio.appcaster.chatgpt.site
A professional browser pixel-art editor for drawing, frame animation, palettes, sprite sheets, GIF export, and WebMCP automation.
pixelite.taskcraft.site
Pixelite