← WebMCP Directory

laydyne.com

laydyne.com

live Unverified (seed import) Productivity & Business 64 tools imperative implementation

Describe your space and workflow to AI. Build layouts, adapt process scenarios, and compare simulations through MCP or the built-in assistant.

First seen 2026-10-05 · Last seen 2026-10-05 · Source: webmcp.com

Answer 27 · Act 33 · Transact 4 · Score: Not yet scored

Tool inspector

set_underlay

act imperative

Put a picture of the existing site (a floor plan, a scan, a photo) under a floor area to build over, and place it: image sends the file (base64; over 200,000 characters in pieces with uploadId); rectify straightens a photo taken at an angle from four points and their floor points (the picture is drawn again from straight above and replaces it, placed; later points name its pixels); placement sets numbers (top-left corner in floor metres, width in metres, rotation); level straightens a skewed scan (a line of the picture, or "auto"); scale sets metres from a known length between two pixels (a dimension line, a scale bar); align puts one or two pixels on floor points (two set scale, turn and place at once). Applied in that order; opacity and visible for the display; remove takes it away. A new picture on a floor area that has one starts afresh (its placement belongs to the old picture); the same picture sent again keeps it. Pixels are the picture’s own (as given, even when the stored copy is made smaller). The picture is saved with the project (files and cloud carry it; the browser keeps it apart), never in the building: calculations, checks and building.spaceHash ignore it, and it is not an edit (no revision, no Undo step). Returns where it lies (corners, metres per pixel, calibrated). Free; no AI call.

Page: /studio

Input schema

PropertyTypeRequiredDescription
floor string no Floor area (get_space.building.floors); the active one when left out.
image object no A new picture (PNG, JPEG or WebP, at most 12 MB) for the floor area, replacing its old one but keeping the placement. Over 200000 base64 characters, send it in pieces: the first with offset 0, totalCharacters and sha256, the rest with uploadId and offset; the call with the last piece sets the picture, and may carry the other fields. Pictures over 4096 px or 2 MB are stored smaller; points are still given in the picture's own pixels.
placement object no Numbers as they are: the unrotated picture’s top-left corner (floor metres), width in metres and turn, as a part is placed.
level — no Straighten a skewed scan: turn the picture so the line from one pixel to another runs along x (horizontal) or z (vertical), 'from' staying put; or 'auto', measured from the drawing's own lines (trace_underlay reports the same skewDegrees).
scale object no Set the scale from a known length: two pixels (the ends of a dimension line, a scale bar) and the metres between them; "from" stays where it is on the floor.
align object no Put pixels on floor points: one point moves the picture; two set its scale and turn as well (no stretching). The quickest way to place a plan whose corner points you know.
rectify object no Straighten a photo taken at an angle (a printed plan on a table, a map on a wall), which a scale and a turn cannot put right: the picture is drawn again as seen from straight above, from four of its points and their floor points, and replaces it, placed and scaled (scale "corners"). Points in later calls name the new picture’s pixels. Not with level, scale or align in the same call.
opacity number no —
visible boolean no —
remove boolean no Take the floor area’s underlay away (alone in the call).
operationId string no Your own unique name for this change, such as a UUID; optional. Sending the same call again with the same operationId returns the earlier result (replayed: true) instead of applying it twice, and get_operation tells whether it applied. Use a new one for each new change.
requestGroupId string no Attach this live edit to an open request group. Requires a fixed operationId and the current owned expectedRevision. Only the advertised five editing tools support groups.
Raw JSON schema
{
  "type": "object",
  "properties": {
    "floor": {
      "description": "Floor area (get_space.building.floors); the active one when left out.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "image": {
      "description": "A new picture (PNG, JPEG or WebP, at most 12 MB) for the floor area, replacing its old one but keeping the placement. Over 200000 base64 characters, send it in pieces: the first with offset 0, totalCharacters and sha256, the rest with uploadId and offset; the call with the last piece sets the picture, and may carry the other fields. Pictures over 4096 px or 2 MB are stored smaller; points are still given in the picture's own pixels.",
      "type": "object",
      "properties": {
        "data": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200000,
          "pattern": "^[A-Za-z0-9+/]*={0,2}$",
          "description": "Base64 of the picture file (no data: prefix), or of one piece of it: at most 200000 characters a call."
        },
        "mimeType": {
          "type": "string",
          "enum": [
            "image/png",
            "image/jpeg",
            "image/webp"
          ]
        },
        "name": {
          "description": "Its file name.",
          "type": "string",
          "maxLength": 180
        },
        "totalCharacters": {
          "description": "For a picture sent in pieces: the whole base64 length, with the first piece (offset 0).",
          "type": "integer",
          "minimum": 1,
          "maximum": 16777216
        },
        "offset": {
          "description": "For a piece: where it starts in the whole base64 text.",
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "uploadId": {
          "description": "For every piece after the first: the uploadId it returned.",
          "type": "string",
          "maxLength": 80
        },
        "sha256": {
          "description": "SHA-256 (hex) of the picture file’s bytes; checked when the last piece arrives.",
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        }
      },
      "required": [
        "data"
      ],
      "additionalProperties": false
    },
    "placement": {
      "description": "Numbers as they are: the unrotated picture’s top-left corner (floor metres), width in metres and turn, as a part is placed.",
      "type": "object",
      "properties": {
        "x": {
          "type": "number",
          "minimum": -10000,
          "maximum": 10000
        },
        "z": {
          "type": "number",
          "minimum": -10000,
          "maximum": 10000
        },
        "width": {
          "description": "Metres across the whole picture.",
          "type": "number",
          "minimum": 0.01,
          "maximum": 20000
        },
        "rotation": {
          "description": "Degrees counter-clockwise on the plan, about its centre.",
          "type": "number",
          "minimum": -360,
          "maximum": 360
        }
      },
      "additionalProperties": false
    },
    "level": {
      "description": "Straighten a skewed scan: turn the picture so the line from one pixel to another runs along x (horizontal) or z (vertical), 'from' staying put; or 'auto', measured from the drawing's own lines (trace_underlay reports the same skewDegrees).",
      "anyOf": [
        {
          "type": "string",
          "const": "auto"
        },
        {
          "type": "object",
          "properties": {
            "from": {
              "type": "object",
              "properties": {
                "x": {
                  "type": "number",
                  "minimum": -200000,
                  "maximum": 200000
                },
                "y": {
                  "type": "number",
                  "minimum": -200000,
                  "maximum": 200000
                }
              },
              "required": [
                "x",
                "y"
              ],
              "additionalProperties": false,
              "description": "A point of the picture in its own pixels, as given: (0, 0) is its top-left corner, x to the right, y down."
            },
            "to": {
              "type": "object",
              "properties": {
                "x": {
                  "type": "number",
                  "minimum": -200000,
                  "maximum": 200000
                },
                "y": {
                  "type": "number",
                  "minimum": -200000,
                  "maximum": 200000
                }
              },
              "required": [
                "x",
                "y"
              ],
              "additionalProperties": false,
              "description": "A point of the picture in its own pixels, as given: (0, 0) is its top-left corner, x to the right, y down."
            },
            "axis": {
              "default": "nearest",
              "type": "string",
              "enum": [
                "horizontal",
                "vertical",
                "nearest"
              ]
            }
          },
          "required": [
            "from",
            "to"
          ],
          "additionalProperties": false
        }
      ]
    },
    "scale": {
      "description": "Set the scale from a known length: two pixels (the ends of a dimension line, a scale bar) and the metres between them; \"from\" stays where it is on the floor.",
      "type": "object",
      "properties": {
        "from": {
          "type": "object",
          "properties": {
            "x": {
              "type": "number",
              "minimum": -200000,
              "maximum": 200000
            },
            "y": {
              "type": "number",
              "minimum": -200000,
              "maximum": 200000
            }
          },
          "required": [
            "x",
            "y"
          ],
          "additionalProperties": false,
          "description": "A point of the picture in its own pixels, as given: (0, 0) is its top-left corner, x to the right, y down."
        },
        "to": {
          "type": "object",
          "properties": {
            "x": {
              "type": "number",
              "minimum": -200000,
              "maximum": 200000
            },
            "y": {
              "type": "number",
              "minimum": -200000,
              "maximum": 200000
            }
          },
          "required": [
            "x",
            "y"
          ],
          "additionalProperties": false,
          "description": "A point of the picture in its own pixels, as given: (0, 0) is its top-left corner, x to the right, y down."
        },
        "metres": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 20000,
          "description": "The real distance between them."
        }
      },
      "required": [
        "from",
        "to",
        "metres"
      ],
      "additionalProperties": false
    },
    "align": {
      "description": "Put pixels on floor points: one point moves the picture; two set its scale and turn as well (no stretching). The quickest way to place a plan whose corner points you know.",
      "type": "object",
      "properties": {
        "points": {
          "minItems": 1,
          "maxItems": 2,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "pixel": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number",
                    "minimum": -200000,
                    "maximum": 200000
                  },
                  "y": {
                    "type": "number",
                    "minimum": -200000,
                    "maximum": 200000
                  }
                },
                "required": [
                  "x",
                  "y"
                ],
                "additionalProperties": false,
                "description": "A point of the picture in its own pixels, as given: (0, 0) is its top-left corner, x to the right, y down."
              },
              "floor": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number",
                    "minimum": -10000,
                    "maximum": 10000
                  },
                  "z": {
                    "type": "number",
                    "minimum": -10000,
                    "maximum": 10000
                  }
                },
                "required": [
                  "x",
                  "z"
                ],
                "additionalProperties": false,
                "description": "Floor metres of the floor area (x right, z down the plan)."
              }
            },
            "required": [
              "pixel",
              "floor"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "points"
      ],
      "additionalProperties": false
    },
    "rectify": {
      "description": "Straighten a photo taken at an angle (a printed plan on a table, a map on a wall), which a scale and a turn cannot put right: the picture is drawn again as seen from straight above, from four of its points and their floor points, and replaces it, placed and scaled (scale \"corners\"). Points in later calls name the new picture’s pixels. Not with level, scale or align in the same call.",
      "type": "object",
      "properties": {
        "points": {
          "minItems": 4,
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "pixel": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number",
                    "minimum": -200000,
                    "maximum": 200000
                  },
                  "y": {
                    "type": "number",
                    "minimum": -200000,
                    "maximum": 200000
                  }
                },
                "required": [
                  "x",
                  "y"
                ],
                "additionalProperties": false,
                "description": "A point of the picture in its own pixels, as given: (0, 0) is its top-left corner, x to the right, y down."
              },
              "floor": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number",
                    "minimum": -10000,
                    "maximum": 10000
                  },
                  "z": {
                    "type": "number",
                    "minimum": -10000,
                    "maximum": 10000
                  }
                },
                "required": [
                  "x",
                  "z"
                ],
                "additionalProperties": false,
                "description": "Floor metres of the floor area (x right, z down the plan)."
              }
            },
            "required": [
              "pixel",
              "floor"
            ],
            "additionalProperties": false
          },
          "description": "Four points of the picture and where they lie on the floor, in the same order round both: the corners of the outer walls or of a room, as far apart as the plan allows."
        },
        "marginMetres": {
          "description": "Floor metres kept round the points (dimension lines, a scale bar); 15% of their span, at least 1 m, when left out.",
          "type": "number",
          "minimum": 0,
          "maximum": 1000
        }
      },
      "required": [
        "points"
      ],
      "additionalProperties": false
    },
    "opacity": {
      "type": "number",
      "minimum": 0.05,
      "maximum": 1
    },
    "visible": {
      "type": "boolean"
    },
    "remove": {
      "description": "Take the floor area’s underlay away (alone in the call).",
      "type": "boolean"
    },
    "operationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,99}$",
      "description": "Your own unique name for this change, such as a UUID; optional. Sending the same call again with the same operationId returns the earlier result (replayed: true) instead of applying it twice, and get_operation tells whether it applied. Use a new one for each new change."
    },
    "requestGroupId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Attach this live edit to an open request group. Requires a fixed operationId and the current owned expectedRevision. Only the advertised five editing tools support groups."
    }
  },
  "additionalProperties": false
}

Similar websites

eworker.ca

eworker.ca

E-Worker is business infrastructure powered by AI, with focused apps and connected business work.

live Unverified Productivity & Business
73 tools A10 / Act63 / T0 Not yet scored Seen 2026-10-05
eworker_site_status eworker_list_apps eworker_resolve_app eworker_open_app ewdoc_status
Inspect tools
takemeup.cv

takemeup.cv

Free CV builder: make a polished, ATS-friendly CV in minutes. No watermarks, no sign-up. Import from LinkedIn, tailor to any job, export PDF.

live Unverified Productivity & Business Transact tools
41 tools A15 / Act25 / T1 Not yet scored Seen 2026-10-05
list_takemeup_guides search_takemeup_guides get_takemeup_guide list_takemeup_cv_templates get_takemeup_locale_cv_rules
Inspect tools
urban-planning-copilot.heisenbug.in

urban-planning-copilot.heisenbug.in

Urban Planning Copilot

demo Unverified Productivity & Business
37 tools A10 / Act27 / T0 Not yet scored Seen 2026-10-05
get_workspace get_analysis_plan list_candidates inspect_candidate list_shortlist
Inspect tools
vide.zerdalu.com

vide.zerdalu.com

Vide

live Unverified Productivity & Business Transact tools
28 tools A13 / Act14 / T1 Not yet scored Seen 2026-10-05
list_project_files read_project_file write_project_file delete_project_file get_active_script
Inspect tools

Related on Influzer