theater.needle.tools
A paper theatre driven by the AI agent in your browser: it decides the story with you, stages ready-cut props on three depth planes, directs camera and music — and you can rearrange the set while it…
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 0 · Act 31 · Transact 0 · Score: Not yet scored
Tool inspector
piece_add
Put an image on the canvas from an http(s), data:image/, or /api/sheets/ URL. The background is removed automatically by default: its pixels are passed to a FastCut iframe on a separate Needle-hosted origin. This changes the local canvas; it does not publish the play. FastCut is already embedded; do not open it in another tab first. An image that is already transparent is left alone. Pass removeBackground: false to keep a background on purpose. The result says what happened, and what to do if the cut could not run. A picture holding several distinct objects — a poster, a sheet of stickers, things laid out on a table — comes apart into one layer per object, each where it was, so what arrives is editable rather than flat. That is usually the point of handing one over: generate the picture, pass it here, and every part of it can then be moved, restyled or replaced. Objects are found by transparency, which only separates things that do not touch. When they DO touch — three figures standing together, anything posed as a group — pass "regions": you can see the picture and the page cannot, so say where each subject is and it will be cut out and cleaned up inside that box.
Page: /
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
url |
string | yes | Image URL: http(s), a small data:image/ URL, or /api/sheets/<id>. |
label |
string | no | A name you will recognise later, e.g. 'red sneaker'. |
removeBackground |
boolean | no | Default true. Set false only to keep the background deliberately. |
x |
number | no | Canvas x. Omit to place it automatically. |
y |
number | no | Canvas y. |
width |
number | no | Canvas width. Height follows the aspect ratio. |
slice |
boolean | no | Default true. Set false to keep a picture of several things as one layer. |
heal |
boolean | no | Default false. Also keep the scene behind the objects as a backdrop layer. Costs a second model download and a slow pass, so ask for it when the background is worth having, not by habit. |
regions |
array | no | Where each subject is, for a picture whose subjects touch. Fractions of the image, 0–1, from the top left — not pixels, because you are looking at a resized copy. One box per thing you want as its own layer. Draw them generously: a box that clips a subject loses whatever it clipped, while a box that catches some of the neighbour is cleaned up. |
Raw JSON schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Image URL: http(s), a small data:image/ URL, or /api/sheets/<id>."
},
"label": {
"type": "string",
"description": "A name you will recognise later, e.g. 'red sneaker'."
},
"removeBackground": {
"type": "boolean",
"description": "Default true. Set false only to keep the background deliberately."
},
"x": {
"type": "number",
"description": "Canvas x. Omit to place it automatically."
},
"y": {
"type": "number",
"description": "Canvas y."
},
"width": {
"type": "number",
"description": "Canvas width. Height follows the aspect ratio."
},
"slice": {
"type": "boolean",
"description": "Default true. Set false to keep a picture of several things as one layer."
},
"heal": {
"type": "boolean",
"description": "Default false. Also keep the scene behind the objects as a backdrop layer. Costs a second model download and a slow pass, so ask for it when the background is worth having, not by habit."
},
"regions": {
"type": "array",
"description": "Where each subject is, for a picture whose subjects touch. Fractions of the image, 0–1, from the top left — not pixels, because you are looking at a resized copy. One box per thing you want as its own layer. Draw them generously: a box that clips a subject loses whatever it clipped, while a box that catches some of the neighbour is cleaned up.",
"items": {
"type": "object",
"properties": {
"x": {
"type": "number",
"description": "Left edge, 0–1."
},
"y": {
"type": "number",
"description": "Top edge, 0–1."
},
"width": {
"type": "number",
"description": "Width, 0–1."
},
"height": {
"type": "number",
"description": "Height, 0–1."
},
"label": {
"type": "string",
"description": "What it is, e.g. 'woman with the star cape'."
}
},
"required": [
"x",
"y",
"width",
"height"
]
}
}
},
"required": [
"url"
]
}
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