{"ok":true,"site":{"host":"archmorph-studio.musfk.chatgpt.site","url":"https://archmorph-studio.musfk.chatgpt.site/","type":"live","desc":"A browser-based architectural design studio where people and WebMCP agents shape, validate, and explore the same live building model.","tools":[{"name":"inspect_landing_page","kind":"act","impl":"imperative","description":"Inspect ArchMorph's landing page: what the product is, the claims on the page, how its live architectural model is currently presented, and which tools can change it. Use this before changing the landing model or opening the studio.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"set_landing_model_view","kind":"act","impl":"imperative","description":"Set the landing page's live architectural model to the complete-building view or the exploded section view. This updates the same presentation visible to the user.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"view":{"type":"string","enum":["complete","section"],"description":"The complete view shows the assembled building; the section view separates its levels."}},"required":["view"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"set_landing_model_layer","kind":"act","impl":"imperative","description":"Show or hide one layer in the landing page's live architectural model. Available layers are plan, structure, envelope, and dimensions.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"layer":{"type":"string","enum":["plan","structure","envelope","dimensions"],"description":"The architectural drawing or building layer to change."},"visible":{"type":"boolean","description":"Whether the selected layer should be visible."}},"required":["layer","visible"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"open_studio","kind":"act","impl":"imperative","description":"Open the ArchMorph design studio, where 57 WebMCP tools can inspect, edit, measure, validate, navigate, and present the user's live architectural project. The landing tools are replaced by that catalog once the studio loads.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"inspect_project","kind":"act","impl":"imperative","description":"Inspect the complete live ArchMorph project: plot, floors, element counts, current metrics, view state, and validation summary. Call this before planning edits.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"inspect_plot","kind":"act","impl":"imperative","description":"Inspect the live plot dimensions, setbacks, buildable envelope, available area, orientation, and current ground-floor coverage.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"configure_plot","kind":"act","impl":"imperative","description":"Configure this project's editable land width, length, setbacks, and front-edge orientation in one canonical transaction. Omitted fields remain unchanged.","inputSchema":{"type":"object","properties":{"width":{"type":"number","minimum":15},"length":{"type":"number","minimum":15},"orientation":{"type":"string","enum":["North","East","South","West"]},"frontSetback":{"type":"number","minimum":0},"rearSetback":{"type":"number","minimum":0},"leftSetback":{"type":"number","minimum":0},"rightSetback":{"type":"number","minimum":0}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"rename_project","kind":"act","impl":"imperative","description":"Rename the live project. The new name appears in the product header and in every subsequent export filename.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120,"description":"Visible project name."}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"inspect_exterior","kind":"act","impl":"imperative","description":"Inspect the flat roof, parapet, site boundary, gate, balconies, terraces, façade features, and per-wall material overrides in the live project.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"inspect_floor","kind":"answer","impl":"imperative","description":"Inspect the rooms, walls, doors, windows, stairs, areas, and findings on one floor. Returns a compact summary by default; ask for full detail only when you need wall connectivity or stair layout geometry.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Stable floor identifier returned by inspect_project."},"detail":{"type":"string","enum":["summary","full"],"default":"summary","description":"summary keeps every stable ID and dimension; full adds derived geometry."}},"required":["floorId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_plot_orientation","kind":"act","impl":"imperative","description":"Set the cardinal direction faced by the plot's front/access edge. The site plan and north arrow update immediately without changing plot dimensions or setbacks.","inputSchema":{"type":"object","properties":{"orientation":{"type":"string","enum":["North","East","South","West"],"description":"Cardinal direction faced by the front/access edge of the plot."}},"required":["orientation"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"inspect_room","kind":"answer","impl":"imperative","description":"Inspect one room's exact geometry, area, perimeter, boundary walls, openings, and directly adjacent rooms.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"roomId":{"type":"string","description":"Stable room identifier returned by inspect_floor or create_room."}},"required":["roomId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"inspect_wall","kind":"answer","impl":"imperative","description":"Inspect one canonical physical wall, its endpoints, length, exterior/interior status, adjacent rooms, connected wall segments, and hosted openings.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."}},"required":["wallId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"inspect_opening","kind":"answer","impl":"imperative","description":"Inspect one door or window together with its full architectural configuration and canonical host wall.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"openingId":{"type":"string","description":"Stable door or window identifier returned by inspect_floor."}},"required":["openingId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"inspect_circulation","kind":"act","impl":"imperative","description":"Inspect the traversable room graph, main entrance, room-to-room door edges, stair edges, unreachable rooms, and invalid circulation elements.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"create_room","kind":"act","impl":"imperative","description":"Create one rectangular, L-, T-, or U-shaped residential room on a floor using real dimensions in feet. Its canonical boundary walls appear immediately in the shared editor.","inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Stable floor identifier returned by inspect_project."},"name":{"type":"string","description":"Visible room name, such as Bedroom 2."},"roomType":{"type":"string","enum":["Living Room","Kitchen","Bedroom","Bathroom","Garage","Office","Dining Room","Storage","Courtyard","Custom"]},"x":{"type":"number","description":"Horizontal position in feet from the plot's left edge."},"y":{"type":"number","description":"Position in feet from the front plot boundary."},"width":{"type":"number","minimum":3,"description":"Room width in feet."},"length":{"type":"number","minimum":3,"description":"Room length in feet."},"shape":{"type":"string","enum":["rectangle","l-shape","t-shape","u-shape"],"default":"rectangle","description":"Lightweight orthogonal footprint preset."}},"required":["floorId","name","roomType","x","y","width","length"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"create_polygon_room","kind":"act","impl":"imperative","description":"Create a custom orthogonal room from 4–12 ordered plan vertices. Edges must be horizontal or vertical and cannot cross.","inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Stable floor identifier returned by inspect_project."},"name":{"type":"string"},"roomType":{"type":"string","enum":["Living Room","Kitchen","Bedroom","Bathroom","Garage","Office","Dining Room","Storage","Courtyard","Custom"]},"vertices":{"type":"array","minItems":4,"maxItems":12,"items":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}}},"required":["floorId","name","roomType","vertices"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"move_room","kind":"act","impl":"imperative","description":"Move one existing room to an exact x/y position in feet. Its walls, openings, metrics, 2D plan, and 3D model update from the same transaction.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","description":"Stable room identifier returned by inspect_floor or create_room."},"x":{"type":"number","description":"New left-edge position in feet."},"y":{"type":"number","description":"New front-edge position in feet."}},"required":["roomId","x","y"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"resize_room","kind":"act","impl":"imperative","description":"Resize one room to an exact width and length in feet while preserving its current position.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","description":"Stable room identifier returned by inspect_floor or create_room."},"width":{"type":"number","minimum":3},"length":{"type":"number","minimum":3}},"required":["roomId","width","length"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"update_room_vertices","kind":"act","impl":"imperative","description":"Replace a room boundary with 4–12 ordered orthogonal vertices. Use this for precise irregular-plan edits; invalid or crossing boundaries are rejected atomically.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","description":"Stable room identifier returned by inspect_floor or create_room."},"vertices":{"type":"array","minItems":4,"maxItems":12,"items":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}}},"required":["roomId","vertices"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"update_room","kind":"act","impl":"imperative","description":"Rename a room or change its programmatic type. Room type drives plan colour and the habitability checks, so keep it accurate.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","description":"Stable room identifier returned by inspect_floor or create_room."},"name":{"type":"string","description":"New visible room name."},"roomType":{"type":"string","enum":["Living Room","Kitchen","Bedroom","Bathroom","Garage","Office","Dining Room","Storage","Courtyard","Custom"]}},"required":["roomId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"delete_room","kind":"transact","impl":"imperative","description":"Delete one room and its derived boundary walls and openings. The transaction is recorded and can be undone in the editor.","inputSchema":{"type":"object","properties":{"roomId":{"type":"string","description":"Stable room identifier returned by inspect_floor or create_room."}},"required":["roomId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"add_wall","kind":"act","impl":"imperative","description":"Add one straight independent wall segment using start and end coordinates in feet.","inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Stable floor identifier returned by inspect_project."},"x1":{"type":"number"},"y1":{"type":"number"},"x2":{"type":"number"},"y2":{"type":"number"},"thickness":{"type":"number","minimum":0.2,"maximum":2,"default":0.5}},"required":["floorId","x1","y1","x2","y2"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"move_wall","kind":"act","impl":"imperative","description":"Move an independent wall by a horizontal and vertical delta in feet. Room-controlled walls must be changed by moving or resizing their room.","inputSchema":{"type":"object","properties":{"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."},"dx":{"type":"number","default":0},"dy":{"type":"number","default":0}},"required":["wallId","dx","dy"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"delete_wall","kind":"transact","impl":"imperative","description":"Delete an independent wall and any openings it hosts. Canonical room-boundary walls cannot be deleted directly; change the room instead.","inputSchema":{"type":"object","properties":{"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."}},"required":["wallId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"add_door","kind":"act","impl":"imperative","description":"Place a configured door on a canonical wall. Offset is the door center's distance in feet from the wall start point; the same handing, swing, and state drive 2D and 3D.","inputSchema":{"type":"object","properties":{"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."},"offset":{"type":"number"},"width":{"type":"number","minimum":2,"maximum":8,"default":3},"height":{"type":"number","minimum":6,"maximum":9,"default":7},"hingeSide":{"type":"string","enum":["start","end"],"default":"start"},"handing":{"type":"string","enum":["left","right"],"default":"left"},"swingDirection":{"type":"string","enum":["inward","outward"],"default":"inward"},"state":{"type":"string","enum":["open","closed"],"default":"open"}},"required":["wallId","offset"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"add_window","kind":"act","impl":"imperative","description":"Place a configured window on a canonical wall. Width, height, sill, type, operation, and glazing are shared by the 2D and 3D representations.","inputSchema":{"type":"object","properties":{"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."},"offset":{"type":"number"},"width":{"type":"number","minimum":2,"maximum":12,"default":4},"height":{"type":"number","minimum":1,"maximum":8,"default":4},"sillHeight":{"type":"number","minimum":0,"maximum":8,"default":3},"windowType":{"type":"string","enum":["fixed","casement","sliding","awning"],"default":"fixed"},"operable":{"type":"boolean","default":false},"glazing":{"type":"string","enum":["clear","low-e","privacy"],"default":"clear"},"solarHeatGainCoefficient":{"type":"number","minimum":0,"maximum":1,"description":"Concept SHGC input; verify against a rated product."},"visibleTransmittance":{"type":"number","minimum":0,"maximum":1,"description":"Concept visible-transmittance input; verify against a rated product."},"uFactor":{"type":"number","minimum":0.1,"maximum":2,"description":"Concept U-factor in Btu/(h·ft²·°F); verify against a rated product."}},"required":["wallId","offset"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"update_opening","kind":"act","impl":"imperative","description":"Move or resize a door or window using the same opening state consumed by both the 2D plan and exact 3D wall geometry. Omitted properties remain unchanged.","inputSchema":{"type":"object","properties":{"openingId":{"type":"string","description":"Stable door or window identifier returned by inspect_floor."},"offset":{"type":"number","description":"Opening center distance from the wall start, in feet."},"width":{"type":"number","minimum":0.5,"maximum":16},"height":{"type":"number","minimum":0.5,"maximum":12},"sillHeight":{"type":"number","minimum":0,"maximum":10},"hingeSide":{"type":"string","enum":["start","end"]},"handing":{"type":"string","enum":["left","right"]},"swingDirection":{"type":"string","enum":["inward","outward"]},"state":{"type":"string","enum":["open","closed"]},"windowType":{"type":"string","enum":["fixed","casement","sliding","awning"]},"operable":{"type":"boolean"},"glazing":{"type":"string","enum":["clear","low-e","privacy"]},"solarHeatGainCoefficient":{"type":"number","minimum":0,"maximum":1},"visibleTransmittance":{"type":"number","minimum":0,"maximum":1},"uFactor":{"type":"number","minimum":0.1,"maximum":2}},"required":["openingId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_door_properties","kind":"act","impl":"imperative","description":"Set architectural door width, height, hinge, handing, swing direction, and open/closed state without creating a separate rendering model.","inputSchema":{"type":"object","properties":{"openingId":{"type":"string","description":"Stable door or window identifier returned by inspect_floor."},"width":{"type":"number","minimum":2,"maximum":8},"height":{"type":"number","minimum":6,"maximum":9},"hingeSide":{"type":"string","enum":["start","end"]},"handing":{"type":"string","enum":["left","right"]},"swingDirection":{"type":"string","enum":["inward","outward"]},"state":{"type":"string","enum":["open","closed"]}},"required":["openingId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"rehost_door","kind":"act","impl":"imperative","description":"Move an existing door onto another compatible canonical wall at an exact center offset.","inputSchema":{"type":"object","properties":{"openingId":{"type":"string","description":"Stable door or window identifier returned by inspect_floor."},"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."},"offset":{"type":"number"}},"required":["openingId","wallId","offset"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_window_properties","kind":"act","impl":"imperative","description":"Set window size, sill height, type, operability, and concept-stage NFRC-style glazing inputs in the shared architectural model.","inputSchema":{"type":"object","properties":{"openingId":{"type":"string","description":"Stable door or window identifier returned by inspect_floor."},"width":{"type":"number","minimum":1,"maximum":16},"height":{"type":"number","minimum":1,"maximum":8},"sillHeight":{"type":"number","minimum":0,"maximum":8},"windowType":{"type":"string","enum":["fixed","casement","sliding","awning"]},"operable":{"type":"boolean"},"glazing":{"type":"string","enum":["clear","low-e","privacy"]},"solarHeatGainCoefficient":{"type":"number","minimum":0,"maximum":1},"visibleTransmittance":{"type":"number","minimum":0,"maximum":1},"uFactor":{"type":"number","minimum":0.1,"maximum":2}},"required":["openingId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"rehost_window","kind":"act","impl":"imperative","description":"Move an existing window onto another compatible canonical wall at an exact center offset.","inputSchema":{"type":"object","properties":{"openingId":{"type":"string","description":"Stable door or window identifier returned by inspect_floor."},"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."},"offset":{"type":"number"}},"required":["openingId","wallId","offset"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_exact_dimension","kind":"act","impl":"imperative","description":"Set one exact dimension or position on a room, opening, or the plot. The change uses the same operation pipeline as manual inspector input.","inputSchema":{"type":"object","properties":{"elementId":{"type":"string","description":"Room/opening ID, or the literal 'plot'."},"property":{"type":"string","enum":["width","length","x","y","offset","height","sillHeight"]},"value":{"type":"number","description":"Exact value in feet."}},"required":["elementId","property","value"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"delete_opening","kind":"transact","impl":"imperative","description":"Delete a door or window from the shared plan. Its 2D symbol, real 3D wall cutout, frame or panel, and navigable opening update together.","inputSchema":{"type":"object","properties":{"openingId":{"type":"string","description":"Stable door or window identifier returned by inspect_floor."}},"required":["openingId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"add_stairs","kind":"act","impl":"imperative","description":"Add one straight, quarter-turn L-shaped, or half-turn U-shaped stair between adjacent floors. One semantic stair drives plan, 3D, validation, stairwell opening, circulation, and Walk Mode.","inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Stable floor identifier returned by inspect_project."},"x":{"type":"number"},"y":{"type":"number"},"stairType":{"type":"string","enum":["straight","l-shaped","u-shaped"],"default":"straight","description":"Straight uses one flight; l-shaped uses perpendicular flights and a quarter landing; u-shaped uses parallel return flights and a half landing."},"width":{"type":"number","minimum":3,"description":"Clear width of one stair flight in feet."},"length":{"type":"number","minimum":3,"description":"Horizontal run of one flight in feet. Straight stairs require at least 6 ft."},"upperFlightLength":{"type":"number","minimum":3,"description":"Upper-flight run for an L-shaped stair. Omit to match the lower flight."},"landingDepth":{"type":"number","minimum":3,"description":"Clear quarter- or half-landing depth in feet; it must be at least the clear flight width."},"wellWidth":{"type":"number","minimum":0,"maximum":8,"default":0.5,"description":"Clear gap between parallel U-shaped flights. Use 0 for a compact dog-leg stair."},"turnSide":{"type":"string","enum":["left","right"],"default":"left","description":"Direction of the 90- or 180-degree turn while ascending the lower flight."},"direction":{"type":"string","enum":["up","down"],"default":"up"},"rotation":{"type":"number","enum":[0,90,180,270],"default":0,"description":"Quarter-turn plan rotation in degrees."}},"required":["floorId","x","y","width","length"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"update_stairs","kind":"act","impl":"imperative","description":"Move, resize, rotate, reverse, or convert a stair between straight, quarter-turn L-shaped, and half-turn U-shaped configurations while retaining its stable identity.","inputSchema":{"type":"object","properties":{"stairId":{"type":"string","description":"Stable staircase ID."},"x":{"type":"number"},"y":{"type":"number"},"stairType":{"type":"string","enum":["straight","l-shaped","u-shaped"]},"width":{"type":"number","minimum":3,"description":"Clear width of one flight."},"length":{"type":"number","minimum":3,"description":"Horizontal run of one flight; straight stairs require at least 6 ft."},"upperFlightLength":{"type":"number","minimum":3,"description":"Upper-flight run for an L-shaped stair."},"landingDepth":{"type":"number","minimum":3},"wellWidth":{"type":"number","minimum":0,"maximum":8},"turnSide":{"type":"string","enum":["left","right"]},"direction":{"type":"string","enum":["up","down"]},"rotation":{"type":"number","enum":[0,90,180,270],"description":"Plan rotation in 90-degree increments."}},"required":["stairId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"delete_stairs","kind":"transact","impl":"imperative","description":"Delete a staircase. Its plan symbol, 3D flights, stairwell void, circulation edge, and Walk Mode route are removed together.","inputSchema":{"type":"object","properties":{"stairId":{"type":"string","description":"Stable stair identifier returned by inspect_floor or add_stairs."}},"required":["stairId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_exterior_finish","kind":"act","impl":"imperative","description":"Set one lightweight, project-wide exterior facade finish. This changes 3D exterior wall appearance without adding heavy assembly simulation.","inputSchema":{"type":"object","properties":{"finish":{"type":"string","enum":["stucco","brick","concrete","timber","metal"]}},"required":["finish"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_wall_finish","kind":"act","impl":"imperative","description":"Set or reset a material override on one exterior canonical wall. Omit finish to return the wall to the project façade default.","inputSchema":{"type":"object","properties":{"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."},"finish":{"type":"string","enum":["stucco","brick","concrete","timber","metal"]}},"required":["wallId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_roof","kind":"act","impl":"imperative","description":"Configure the lightweight flat roof parapet and its visual finish. Omitted values remain unchanged.","inputSchema":{"type":"object","properties":{"parapetEnabled":{"type":"boolean"},"parapetHeight":{"type":"number","minimum":0.5,"maximum":6},"parapetThickness":{"type":"number","minimum":0.2,"maximum":2},"finish":{"type":"string","enum":["stucco","brick","concrete","timber","metal"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"configure_site_boundary","kind":"act","impl":"imperative","description":"Configure the plot boundary wall and adjustable front gate, including height, size, position, style, and lightweight finish.","inputSchema":{"type":"object","properties":{"enabled":{"type":"boolean"},"height":{"type":"number","minimum":2,"maximum":10},"thickness":{"type":"number","minimum":0.2,"maximum":2},"finish":{"type":"string","enum":["stucco","brick","concrete","timber","metal"]},"gateEnabled":{"type":"boolean"},"gateOffset":{"type":"number","minimum":0},"gateWidth":{"type":"number","minimum":3},"gateHeight":{"type":"number","minimum":3,"maximum":10},"gateStyle":{"type":"string","enum":["slatted","solid"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"add_balcony","kind":"act","impl":"imperative","description":"Add a rectangular balcony or terrace slab with a bounded lightweight railing system on a floor.","inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Stable floor identifier returned by inspect_project."},"name":{"type":"string"},"kind":{"type":"string","enum":["balcony","terrace"],"default":"balcony"},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","minimum":3},"length":{"type":"number","minimum":3},"slabThickness":{"type":"number","minimum":0.25,"maximum":2},"finish":{"type":"string","enum":["stucco","brick","concrete","timber","metal"]},"railingEnabled":{"type":"boolean"},"railingHeight":{"type":"number","minimum":2,"maximum":6},"railingStyle":{"type":"string","enum":["horizontal","vertical","solid"]},"railingSides":{"type":"array","items":{"type":"string","enum":["north","east","south","west"]},"minItems":1,"maxItems":4}},"required":["floorId","x","y","width","length"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"update_balcony","kind":"act","impl":"imperative","description":"Update balcony or terrace geometry, type, finish, and railing without replacing its stable project identity.","inputSchema":{"type":"object","properties":{"balconyId":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["balcony","terrace"]},"x":{"type":"number"},"y":{"type":"number"},"width":{"type":"number","minimum":3},"length":{"type":"number","minimum":3},"slabThickness":{"type":"number","minimum":0.25,"maximum":2},"finish":{"type":"string","enum":["stucco","brick","concrete","timber","metal"]},"railingEnabled":{"type":"boolean"},"railingHeight":{"type":"number","minimum":2,"maximum":6},"railingStyle":{"type":"string","enum":["horizontal","vertical","solid"]},"railingSides":{"type":"array","items":{"type":"string","enum":["north","east","south","west"]},"minItems":1,"maxItems":4}},"required":["balconyId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"delete_balcony","kind":"transact","impl":"imperative","description":"Delete one balcony or terrace and its derived slab and railing representations.","inputSchema":{"type":"object","properties":{"balconyId":{"type":"string"}},"required":["balconyId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"add_facade_feature","kind":"act","impl":"imperative","description":"Add a frame, canopy, or sunshade hosted by an exterior wall with exact lightweight geometry.","inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["frame","canopy","sunshade"]},"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."},"offset":{"type":"number"},"width":{"type":"number","minimum":1},"elevation":{"type":"number","minimum":0},"height":{"type":"number","minimum":0.1},"projection":{"type":"number","minimum":0.1,"maximum":8},"thickness":{"type":"number","minimum":0.1,"maximum":2},"finish":{"type":"string","enum":["stucco","brick","concrete","timber","metal"]}},"required":["kind","wallId","offset","width"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"update_facade_feature","kind":"act","impl":"imperative","description":"Update or rehost a frame, canopy, or sunshade while retaining its stable project identity.","inputSchema":{"type":"object","properties":{"featureId":{"type":"string"},"kind":{"type":"string","enum":["frame","canopy","sunshade"]},"wallId":{"type":"string","description":"Stable wall identifier returned by inspect_floor, inspect_room, or add_wall."},"offset":{"type":"number"},"width":{"type":"number","minimum":1},"elevation":{"type":"number","minimum":0},"height":{"type":"number","minimum":0.1},"projection":{"type":"number","minimum":0.1,"maximum":8},"thickness":{"type":"number","minimum":0.1,"maximum":2},"finish":{"type":"string","enum":["stucco","brick","concrete","timber","metal"]}},"required":["featureId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"delete_facade_feature","kind":"transact","impl":"imperative","description":"Delete one hosted façade frame, canopy, or sunshade from the shared model.","inputSchema":{"type":"object","properties":{"featureId":{"type":"string"}},"required":["featureId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"create_floor","kind":"act","impl":"imperative","description":"Create the next building storey and make it active. Use only after the ground-floor layout is established.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"height":{"type":"number","minimum":7,"maximum":16,"default":9}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_floor_height","kind":"act","impl":"imperative","description":"Change one storey's floor-to-floor height. Every storey above is re-levelled and each connected stair's rise, riser count, and tread depth are recomputed from the new elevations.","inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Stable floor identifier returned by inspect_project."},"height":{"type":"number","minimum":7,"maximum":16,"description":"Floor-to-floor height in feet."}},"required":["floorId","height"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"calculate_room_area","kind":"act","impl":"imperative","description":"Calculate the exact polygon area and bounding dimensions of one room from the live project model.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"roomId":{"type":"string","description":"Stable room identifier returned by inspect_floor or create_room."}},"required":["roomId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"calculate_total_area","kind":"act","impl":"imperative","description":"Return explicitly named net and gross architectural areas for the active floor and whole building, with definitions that avoid ambiguous coverage values.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"calculate_open_area","kind":"act","impl":"imperative","description":"Calculate open site area outside the gross ground-floor building footprint and the gross site coverage percentage.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"measure_distance","kind":"act","impl":"imperative","description":"Measure exact straight, horizontal, and vertical distances between two coordinates or element centers/endpoints.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"from":{"type":"object","description":"Either {x,y} or {elementId, anchor}. All coordinates are feet.","properties":{"x":{"type":"number"},"y":{"type":"number"},"elementId":{"type":"string"},"anchor":{"type":"string","enum":["center","start","end"]}},"additionalProperties":false},"to":{"type":"object","description":"Either {x,y} or {elementId, anchor}. All coordinates are feet.","properties":{"x":{"type":"number"},"y":{"type":"number"},"elementId":{"type":"string"},"anchor":{"type":"string","enum":["center","start","end"]}},"additionalProperties":false}},"required":["from","to"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"validate_layout","kind":"act","impl":"imperative","description":"Analyze geometry, canonical openings, exterior access, main-entrance reachability, disconnected room groups, and stair connections. Returns structured, correctable findings—not final code certification.","inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Optional floor to validate; omit to validate the entire project."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"switch_view","kind":"act","impl":"imperative","description":"Visibly switch the shared ArchMorph canvas between 2D floor-plan and 3D building modes.","inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["2d","3d"]}},"required":["mode"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_active_floor","kind":"act","impl":"imperative","description":"Make one storey the active floor. The plan, inspector, 3D level presentation, and Walk Mode all follow it, so call this before inspecting or editing another floor visually.","inputSchema":{"type":"object","properties":{"floorId":{"type":"string","description":"Stable floor identifier returned by inspect_project."}},"required":["floorId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_camera","kind":"act","impl":"imperative","description":"Switch to 3D and visibly move the camera to a standard architectural view.","inputSchema":{"type":"object","properties":{"preset":{"type":"string","enum":["front","rear","left","right","top","front-left","front-right"]}},"required":["preset"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"set_navigation_mode","kind":"act","impl":"imperative","description":"Switch the live 3D canvas between exterior orbit controls and first-person walkthrough controls. Optionally enter a specific room by stable ID.","inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["orbit","walk"]},"roomId":{"type":"string","description":"Optional room to start inside when entering walk mode."}},"required":["mode"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"focus_element","kind":"act","impl":"imperative","description":"Visibly focus the current 2D or 3D view on a room, wall, door, window, or stair by stable ID. Omit the ID to fit the whole project.","inputSchema":{"type":"object","properties":{"elementId":{"type":"string"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"take_snapshot","kind":"act","impl":"imperative","description":"Capture the current live 2D plan or 3D canvas after any requested view and camera changes. Returns image metadata and a PNG data URL.","inputSchema":{"type":"object","properties":{"download":{"type":"boolean","default":false,"description":"Also download the PNG in the human's browser."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]},{"name":"export_plan","kind":"act","impl":"imperative","description":"Export the current shared design as structured ArchMorph JSON or a clean SVG floor plan. The export identifies the exact project version.","inputSchema":{"type":"object","properties":{"format":{"type":"string","enum":["json","svg"],"default":"json"},"download":{"type":"boolean","default":false}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/studio","pages":["/studio"]}],"favicon":"/favicons/archmorph-studio.musfk.chatgpt.site.png","apiSurface":"spec","category":"Productivity & Business","toolCount":61}}