laydyne.com
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
check_space
Deterministic geometry check of the requested floor area (floor, else the active one): overlapping obstacles and passages narrower than minClearance (turned and polygonal parts exactly, by their outlines), doors lying across a wall instead of along it (door_not_in_wall, which opens nothing), parts in front of a door on either side (door_blocked), parts people are routed under lower than the headroom they need (low_headroom), connection ends inside a part in the way or off the floor (link_end_blocked, link_end_off_floor), parts off a shaped floor (outside_outline), zones the saved scenarios go to whose goto point parts close off from the rest of the zone (zone_center_enclosed, as a run warns anchor.enclosed; use a spot), and, on a floor with a gate, zones a pedestrian (radius 0.3 m, height 1.7 m, every connection) cannot reach from any gate (zone_unreachable, with the route failure reason), with object IDs and a bounding rectangle. Zones are ignored otherwise unless they block, but a zone tagged passage or egress holds every gap across it to passageClearance. Gaps inside one group or between parked vehicles are not walkways: counted in excludedGaps (gaps=all lists them). Parts hung above head height neither narrow nor block a walkway. With reach.agent.oneWayPassages, exact opening IDs select forward/backward against physical passageHeading (at most 64 unique floor/part pairs); real endpoints on their finite plane are refused and wall/body clearance still applies. The default pedestrian has no scenario direction rules. With reach, it also routes one agent (a pedestrian unless given) from one place to up to 20 others through every floor and connection, as run_process_scenario routes a goto, and returns reach[]: reachable, lengthMetres (null when not), reason (no-path, link-not-allowed, link-blocked, floor-too-large, too-many-route-nodes, anchor-blocked, anchor-missing, oneway-endpoint; null when reachable) and links (connections taken, or those concerned). For a door…
Page: /studio
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
floor |
string | no | Floor area to inspect; defaults to the active area. Does not switch the editor. |
floors |
— | no | Instead of floor: check several floor areas in one call, "all" or a list of floor IDs. Each floor is summarized: counts by issue type and its first issuesPerFloor issues. |
issuesPerFloor |
integer | no | With floors: the issues listed for each floor (20 when left out); the counts cover them all. Lists are shortened further when the whole answer would pass 1 MB. |
minClearance |
number | no | Report passages narrower than this many metres. |
gaps |
string | no | walkways (the default): narrow gaps inside one group of furniture or equipment, and between parked vehicles (cars, trucks, bicycles, forklifts, carts, trolleys, roll cages, robots, aircraft), are an assembly or parking, not walkways: counted in excludedGaps and not listed. all: list them too, each with its context. |
passageTags |
array | no | Tags that make a zone a passage people must be able to use (passage and egress when left out): every gap across it is held to passageClearance, in a group or not. |
passageClearance |
number | no | Width a passage zone keeps clear, metres: 1.2 when left out (a corridor with rooms on one side under Japan’s Building Standard Law; the IBC asks 1.12 m). |
doorClearance |
number | no | Depth kept clear on both sides of a door, metres: 0.9 when left out (a door leaf’s sweep); 1.22 to 1.52 for a wheelchair user’s approach (ADA §404.2.4.1). |
headroom |
number | no | Headroom people need under a raised part they are routed under, metres: 2.03 when left out (ADA §307.4, IBC §1003.3.1). |
reach |
object | no | Route check through the building (all floors and connections) as a process goto would take it: whether each place can be reached, the route length, and why not. |
Raw JSON schema
{
"type": "object",
"properties": {
"floor": {
"description": "Floor area to inspect; defaults to the active area. Does not switch the editor.",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"floors": {
"description": "Instead of floor: check several floor areas in one call, \"all\" or a list of floor IDs. Each floor is summarized: counts by issue type and its first issuesPerFloor issues.",
"anyOf": [
{
"type": "string",
"const": "all"
},
{
"minItems": 1,
"maxItems": 120,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
}
]
},
"issuesPerFloor": {
"description": "With floors: the issues listed for each floor (20 when left out); the counts cover them all. Lists are shortened further when the whole answer would pass 1 MB.",
"type": "integer",
"minimum": 0,
"maximum": 200
},
"minClearance": {
"default": 0.9,
"description": "Report passages narrower than this many metres.",
"type": "number",
"minimum": 0.3,
"maximum": 5
},
"gaps": {
"default": "walkways",
"description": "walkways (the default): narrow gaps inside one group of furniture or equipment, and between parked vehicles (cars, trucks, bicycles, forklifts, carts, trolleys, roll cages, robots, aircraft), are an assembly or parking, not walkways: counted in excludedGaps and not listed. all: list them too, each with its context.",
"type": "string",
"enum": [
"walkways",
"all"
]
},
"passageTags": {
"description": "Tags that make a zone a passage people must be able to use (passage and egress when left out): every gap across it is held to passageClearance, in a group or not.",
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"passageClearance": {
"description": "Width a passage zone keeps clear, metres: 1.2 when left out (a corridor with rooms on one side under Japan’s Building Standard Law; the IBC asks 1.12 m).",
"type": "number",
"minimum": 0.6,
"maximum": 5
},
"doorClearance": {
"description": "Depth kept clear on both sides of a door, metres: 0.9 when left out (a door leaf’s sweep); 1.22 to 1.52 for a wheelchair user’s approach (ADA §404.2.4.1).",
"type": "number",
"minimum": 0.3,
"maximum": 3
},
"headroom": {
"description": "Headroom people need under a raised part they are routed under, metres: 2.03 when left out (ADA §307.4, IBC §1003.3.1).",
"type": "number",
"minimum": 1.8,
"maximum": 4
},
"reach": {
"description": "Route check through the building (all floors and connections) as a process goto would take it: whether each place can be reached, the route length, and why not.",
"type": "object",
"properties": {
"agent": {
"description": "Who goes; a pedestrian (radius 0.3, height 1.7, every connection) when left out.",
"type": "object",
"properties": {
"oneWayPassages": {
"minItems": 1,
"maxItems": 64,
"type": "array",
"items": {
"type": "object",
"properties": {
"floor": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"object": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"direction": {
"type": "string",
"enum": [
"forward",
"backward"
]
}
},
"required": [
"floor",
"object",
"direction"
],
"additionalProperties": false
},
"description": "Building-graph goto/pool crossings of named wall openings (not straight-distance move or simulate_space): [{floor, object, direction: \"forward\" | \"backward\"}]. Forward follows the opening passageHeading; backward opposes it. Exact IDs, at most 64, no duplicates. Real endpoints on a governed opening plane are invalid; physical clearance still applies."
},
"radius": {
"default": 0.3,
"description": "Metres.",
"type": "number",
"minimum": 0.1,
"maximum": 1.5
},
"height": {
"default": 1.7,
"description": "Metres; parts raised at least this high are passed under.",
"type": "number",
"minimum": 0.1,
"maximum": 3
},
"links": {
"default": [
"passage",
"stairs",
"elevator",
"escalator"
],
"description": "Connection kinds the agent may use, and no others (a robot that cannot take stairs or escalators lists passage and elevator: passage is corridors and ramps).",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"passage",
"stairs",
"elevator",
"escalator"
]
}
}
},
"additionalProperties": false
},
"from": {
"type": "object",
"properties": {
"object": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"tag": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,24}$"
},
"point": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 500
},
"z": {
"type": "number",
"minimum": 0,
"maximum": 500
}
},
"required": [
"x",
"z"
],
"additionalProperties": false
},
"link": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"end": {
"type": "string",
"enum": [
"from",
"to"
]
},
"floor": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"structure": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,39}$"
},
"pick": {
"type": "string",
"enum": [
"nearest",
"random",
"least_occupied",
"free"
]
},
"recall": {
"description": "The place this job remembered under the name (goto only): a goto or an arrival with remember stored it.",
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"spot": {
"description": "Stand at one of the spots inside a zone part (0.8 m apart) instead of its centre: random, or free (one nobody else is at or on the way to).",
"type": "string",
"enum": [
"random",
"free"
]
},
"within": {
"description": "With a tag, in a goto: only its parts on the floor area the job is on (floor), on its level of the same building (level: the hall of the storey it is on), or in its building (structure; the ground when it is in none).",
"type": "string",
"enum": [
"floor",
"level",
"structure"
]
},
"side": {
"description": "Stand beside a part that is in the way on this side instead of the nearest free point: north (towards smaller z), south, east or west on the plan; or front (the side it faces: a counter’s customer side, a machine’s working side) or back, for parts with a front (get_part_catalog front: true), turning with the part.",
"type": "string",
"enum": [
"north",
"south",
"east",
"west",
"front",
"back"
]
},
"open": {
"description": "Only the first n parts with the tag (building order: floor, then part id) are candidates: the open tills.",
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 10000
},
{
"type": "object",
"properties": {
"parameter": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"parameter"
],
"additionalProperties": false
}
]
}
},
"additionalProperties": false,
"description": "Where from: {\"object\": id}, {\"tag\": t} (its first part), {\"point\": {x, z}} (on the checked floor area; add \"floor\": id for another) or {\"link\": id, \"end\": \"from\" | \"to\"}."
},
"to": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"object": {
"type": "string",
"minLength": 1,
"maxLength": 60
},
"tag": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,24}$"
},
"point": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 500
},
"z": {
"type": "number",
"minimum": 0,
"maximum": 500
}
},
"required": [
"x",
"z"
],
"additionalProperties": false
},
"link": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"end": {
"type": "string",
"enum": [
"from",
"to"
]
},
"floor": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"structure": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,39}$"
},
"pick": {
"type": "string",
"enum": [
"nearest",
"random",
"least_occupied",
"free"
]
},
"recall": {
"description": "The place this job remembered under the name (goto only): a goto or an arrival with remember stored it.",
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"spot": {
"description": "Stand at one of the spots inside a zone part (0.8 m apart) instead of its centre: random, or free (one nobody else is at or on the way to).",
"type": "string",
"enum": [
"random",
"free"
]
},
"within": {
"description": "With a tag, in a goto: only its parts on the floor area the job is on (floor), on its level of the same building (level: the hall of the storey it is on), or in its building (structure; the ground when it is in none).",
"type": "string",
"enum": [
"floor",
"level",
"structure"
]
},
"side": {
"description": "Stand beside a part that is in the way on this side instead of the nearest free point: north (towards smaller z), south, east or west on the plan; or front (the side it faces: a counter’s customer side, a machine’s working side) or back, for parts with a front (get_part_catalog front: true), turning with the part.",
"type": "string",
"enum": [
"north",
"south",
"east",
"west",
"front",
"back"
]
},
"open": {
"description": "Only the first n parts with the tag (building order: floor, then part id) are candidates: the open tills.",
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 10000
},
{
"type": "object",
"properties": {
"parameter": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"parameter"
],
"additionalProperties": false
}
]
}
},
"additionalProperties": false
},
"description": "Places to reach; a tag takes its nearest part, a point without floor is on the checked floor area."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
Similar websites
eworker.ca
E-Worker is business infrastructure powered by AI, with focused apps and connected business work.
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.
urban-planning-copilot.heisenbug.in
Urban Planning Copilot
vide.zerdalu.com
Vide