Laydyne

Build and check 2D/3D floor plans with your AI over MCP. Compare layout and operational options in Pro or Max.

Hosted MCP Server

npx add-mcp 'https://laydyne.com/api/mcp/oauth'

Installs into Claude Code, Codex, Cursor and more

Documentation

Build for free with your own AI

After free sign-up, connect ChatGPT, Claude, Codex, Claude Code or your own MCP agent to create and edit spaces for free in Laydyne; your AI provider charges separately. You can also explore and edit Studio without an account. Pro calculates new operational comparisons and keeps the evidence for decisions. Check Account for execution access, built-in AI and manual cloud-saving limits.

  1. Open a starting point. In Studio, choose New space. Try an office floor, office building, factory, mall, two-storey home, or a blank floor. Samples are illustrative, not measured sites.
  2. Describe the layout to AI. Follow the MCP connection steps, then tell your agent what to build or change. Review the floor, parts, and connections in 2D or 3D. You can also adjust them manually in Studio.
  3. Check before calculating. Use the free Route check in Studio or ask your agent to call check_space. It identifies overlaps and narrow passages, and can test reachability when you specify route targets. It does not run a simulation.
  4. Keep a copy. Choose Project → Project file to download a project JSON file. You can open that file in Studio later.

Importing a drawing? Studio accepts PNG, JPEG, WebP and PDF files up to 5 MB for AI-assisted drafting when that feature is available on your account. Treat dimensions read from an image as assumptions; check the scale and key measurements before using a result.

Model a space in 2D, 2.5D and 3D

Choose 2D plans to see all levels of a multi-storey project side by side at the same scale. Open a sheet or use the level buttons to navigate. Level layout arranges the areas on one level; Edit area opens its parts, dimensions and drawing tools. Level buttons keep you in area editing when you are already editing. All levels returns to the overview. In 3D model, choose Whole building or Edit area. Hologram, Line drawing and Solid are 3D visual styles, separate from which level or area you are viewing. View settings also sets the 3D background.

Agents can set {"dimension":"2d","scope":"building","planLayout":"all-levels"} with set_space_view. Set planLayout="level" to arrange the active level, or scope="floor" to edit and play a simulation in the active area. The overview shows layout sheets; playback appears inside an area.

The plan and perspective views show the same editable spatial model. A floor can have a polygon outline and holes; a part can be a box or a polygon prism, rotated and raised above the floor. This is efficient for layouts and routes, but it is not a free-form mesh or detailed CAD model.

2D Place and measure footprints on a plan.

2.5D Give floors and parts heights and elevations.

3D Inspect those same floors and parts in perspective.

A level is a storey. It can contain several separate floor areas. Areas that touch are not connected automatically: add a passage, stairs, elevator or escalator. Use one continuous floor with walls and doors for rooms linked by a corridor. Route checks can cross explicit connections.

A site can hold several buildings: apartment blocks, a warehouse and an office block, towers, a parking garage. Put each up under Buildings on the site with its storeys, and optionally a lift and stairs; the ground under it opens for its footprint. The ground and the bridges between buildings stay separate floor areas. Show one building alone, copy it, or drag it on the level plan with its entrances. People and robots still move only along connections, and a scenario can send them to places in one building.

With nothing selected, Areas & counts under the properties shows the floor area (the outline less its holes), the zoned and unzoned area, each zone's area, areas by tag and part counts by type. Levels & areas adds each level's floor area and the total. Overlapping zones count once in the totals. These are areas of the drawing, not a legal floor area. Zone and part names on the 2D plan move off shelving and turn to fit narrow aisles, so they never sit on each other.

Agent coordinates are in metres: x goes right, z goes toward the near edge, and y is the underside's elevation above its floor. A part's rotation is counter-clockwise degrees on the plan. Ask get_space for the current floor IDs, part IDs and revision before changing them.

Connect your AI app or agent

A connected agent uses the same open Studio workspace that you see. You supply your own agent; its provider's usage charges are separate from Laydyne. Space editing and scenario preparation through MCP are free.

AI apps: add one URL

ChatGPT, Claude, GitHub Copilot and other apps that accept a custom MCP server (often called a connector or app) use one fixed URL. The app opens Laydyne sign-in, and you approve the open Studio tab it may edit. No API key, secret or agent link is needed.

https://laydyne.com/api/mcp/oauth

  1. Sign in to a free Laydyne account and leave Studio open in your browser.
  2. In your AI app, add a custom MCP server with the URL above. When asked, choose OAuth and automatic client registration (DCR). Enter the URL exactly as shown, without a trailing “/”.
  3. When the app opens Laydyne, sign in, choose the open Studio tab and approve it.
  4. Turn Laydyne on in a conversation and ask it to call get_space first. Ask it to save a named browser project or export JSON when you finish.

In the table, “this URL” means https://laydyne.com/api/mcp/oauth.

AppRequirementsWhere to add it
ChatGPTWeb: Plus, Pro, Business, Enterprise or Education with Developer mode access. ChatGPT Free is not eligible for this setup.Settings → Security and login → Developer mode. In Plugins, add a developer app with this URL and OAuth/DCR. Select it in the conversation’s Developer mode menu. Official setup and eligibility
ClaudeFree allows one custom connector; Pro and Max also support remote connectors. Organization plans need an administrator to add the connector.Customize → Connectors → Add custom connector. Name it Laydyne and enter this URL. Choose Sign in now and Register automatically (DCR), then connect. Enable it from + → Connectors in a chat. Official setup and eligibility
GeminiUS only, age 18+, a personal Google account, English and Keep Activity on. Custom apps are unavailable in Japan and on work/school accounts.On eligible accounts: Gemini web → Settings → Connected Apps (or Personal Intelligence → Connected Apps) → Custom apps. Add this URL, complete OAuth and select @Laydyne in your prompt. Official setup and eligibility
GitHub Copilot (VS Code)VS Code with GitHub Copilot. Business and Enterprise accounts need the organization’s “MCP servers in Copilot” policy, which is off by default. The Microsoft Copilot app cannot add custom MCP servers; Microsoft 365 Copilot and Copilot Studio are set up by administrators.Run MCP: Add Server from the Command Palette and add an HTTP server with this URL. Sign in to Laydyne and approve when VS Code asks, then use the tools in Copilot Chat. Official setup and eligibility
Other appsCopilot Studio, Cursor, Mistral Le Chat and other apps that accept a remote MCP server with OAuth can use this URL. Plans, administrator rights and menus differ by app.Add a remote MCP server (Streamable HTTP) with this URL and choose OAuth with automatic registration (DCR). If the app accepts only an API key or bearer token, use Create agent link in Studio instead.

Each app sets its own availability. Plans, regions and menus change, so check the official page linked above. Reading, editing and saving through each app are still being verified. Access ends when you disconnect or sign out, after two hours without use, or within 24 hours; then reconnect from the app. Always-on agents, such as ChatGPT dots, can use Laydyne only while your Studio tab stays open.

Codex, Claude Code and other MCP clients

Coding agents can use the same URL. After adding it, sign in with `codex mcp login` or `claude mcp login` (or `/mcp` inside Claude Code). Each sign-in opens Laydyne in your browser for approval.

codex mcp add laydyne-oauth --url https://laydyne.com/api/mcp/oauth
codex mcp login laydyne-oauth
claude mcp add --transport http laydyne-oauth https://laydyne.com/api/mcp/oauth
claude mcp login laydyne-oauth

# Optional, ~/.codex/config.toml: let Codex edit without asking each time
[mcp_servers.laydyne-oauth]
default_tools_approval_mode = "approve"

Guides for your agent

Give your coding agent Laydyne’s working rules and starting prompts once, so it does not rediscover them in every session: a Claude Code skill, a section for Codex’s AGENTS.md and a full guide for any agent. Connected apps also list the starting prompts as MCP prompts.

mkdir -p ~/.claude/skills/laydyne
curl -fsSL https://laydyne.com/agents/laydyne/SKILL.md -o ~/.claude/skills/laydyne/SKILL.md
curl -fsSL https://laydyne.com/agents/AGENTS.md >> AGENTS.md

For a client that cannot sign in with OAuth, create an agent link instead:

  1. Sign in to a free Laydyne account and leave Studio open in your browser.
  2. Choose Connect AI → Create agent link. Select your client and copy the command or MCP configuration shown there. The link includes a private editing key.
  3. Add the connection to your client, then reopen its session so it loads the new tools. Ask it to call get_space first.
  4. Review edits in Studio. Ask for check_space before any paid calculation, and use Undo if an edit needs reversing.

Use the Laydyne tools in my open Studio. Read get_space first. Build a 12 × 9 m shop with a counter by the entrance, two rows of shelves with 1.2 m aisles, and a display table. Run check_space with 0.9 m minimum clearance and fix any narrow passage. Tell me which dimensions you assumed. Do not run a simulation yet.

The usual sequence is get_space → create_space, edit_space or edit_floors → check_space. Edits use the latest revision so an agent does not silently overwrite a newer change. get_process_catalog describes the scenario schema and samples; put_process_scenario saves a validated definition without running it.

Keep one MCP connection for a workflow. Store complete definitions, projects and standard results in variables or files; print only the fields needed for the current decision.

Read an unfamiliar space with get_space using detail=summary or detail=full. Once its inputs are known, detail=status reads only revision, busy, Undo/Redo, persistence, activeFloor, spaceHash and latest process result/playback status. Do not combine detail=status with floor or select. update_process_parameters merges existing parameter keys into a saved scenario; copyAs copies its complete definition to an unused ID and name first. Other conditions and archived studies stay intact.

When reevaluating a saved study, retain the entire standard study.specification and change only the relevant option IDs and user-requested input values. Use the standard engine, evaluator and reports. Keeping an old comparison does not reevaluate the changed case.

Your working project is saved in the browser. MCP links use a Laydyne server relay that temporarily stores tool requests and results for delivery; this is not cloud project saving. Experimental WebMCP lets a compatible browser agent call the free editing tools directly in the page without that relay or a Laydyne account. Neither path promises offline use: app loading, account and plan checks, and AI provider requests can still use the network. Your AI provider’s fees and data policies apply separately.

Protect the link. Anyone with its key can edit the linked tab. Keep Studio open; the link expires within 24 hours and ends when you disconnect or sign out in that browser. Browser agents may use experimental WebMCP directly from the page if their browser supports it.

Build large models with a program

When a layout follows rules (identical storeys, several blocks of flats, a corridor width changed in every building), ask your agent to write a program instead of making hundreds of tool calls. The program builds the site with the Laydyne kit, checks it on your machine with the same checks Studio uses, and sends the result through MCP. Checks, Undo and saving still happen in your open Studio.

  1. Read the format. get_project_schema returns the saved project format as JSON Schema, one part at a time, with its rules: floors sit on the site in site metres, and everything on a floor (parts, connection ends, scenario points) uses that floor's own metres.
  2. Use the kit. /sdk/laydyne-kit.mjs on this site is one JavaScript file for Node.js with no dependencies (types: /sdk/laydyne-kit.d.ts). It places parts, walls and doors, stacks a building's storeys with a lift and stairs, connects floors, assembles scenarios, and checks the result.
  3. Apply only what changed. apply_changes adds, replaces or removes whole floors, buildings, connections and scenarios by id. Everything else stays as it is, including your own edits in Studio. With dryRun it first shows what would be added, replaced or lost, and fingerprints stop it from overwriting a floor you have changed by hand since.

For code workflows, /sdk/laydyne-mcp.mjs provides a separate MCP client for Node.js 22+. It keeps one connection, reads complete paginated results, and checks project transfers. Keep keys outside your scripts. The same Studio permissions apply.

To reuse a saved comparison, the kit’s deriveStudySpecification changes specified option IDs and input values with their source notes. It preserves the question, objectives, constraints and evidence. Run the returned specification through run_simulation_study to evaluate the changed options.

Use room(x, z, w, d, { label: "Exam room", group: "exam-room" }) to name the generated walls and their group. Diagnostics retain part IDs and show group membership alongside clearance measurements.

Read get_project_schema. Download the Laydyne kit and write a Node.js script that builds four identical six-storey blocks of flats, each with a lift and stairs, around a shared yard. Check it with the kit, apply it with apply_changes (dry run first), and tell me what changed.

One apply is one Undo step. Large change sets are sent in ordered chunks with a checksum. The format, the kit and applying changes are free. Check Account before running; calculating new operational comparisons requires Pro.

Choose what to change before spending money on it

A store manager may need to choose where to add staff. A factory engineer may need to choose which workstation to move. A robot integrator may need to narrow a fleet proposal before an on-site trial. Compare those choices against the same demand, a deadline or a service target.

  1. Name the decision. Can a shorter replenishment route handle the expected work before adding a second stock assistant?
  2. Record the current operation. Measure arrivals, routes and processing times. Check that the baseline resembles the site before trusting a different layout.
  3. Compare achievable options. Keep demand fixed. Compare the current layout, a moved drop zone and an extra assistant. Change one factor at a time to see which one helps.
  4. Read the result against a target. Check completion, waits, blocked routes and workload together. A fast average can hide jobs that never finish.
  5. Connect the difference to a real cost. Include paid hours, equipment, installation, supervision and the cost of the change. Validate the promising option on site.

A shorter replenishment route: an illustrative calculation

Suppose an option saves 30 seconds per round trip and there are 60 trips per day over 22 working days. That is 30 × 60 × 22 ÷ 3,600 = 11 staff-hours per month. At an assumed $20 per hour, that represents $220 of staff time.

These are invented inputs to explain the arithmetic, not results from the published apparel example. If staffing and paid hours stay the same, the cash saving is $0; the benefit is time for other work. Actual cost savings require a change such as lower overtime, after subtracting the cost of rearranging the site.

When does this affect sales?

Lower waits could help serve customers who previously left, but the current apparel example sends every shopper through the same journey and does not model lost sales. An estimate of additional gross profit would need measured recovered purchases and gross profit per purchase, with additional operating costs deducted. Do not turn simulated wait reduction into a sales percentage.

General workflow examples calculate operational measures, not a complete financial forecast. The separate cleaning/transport robot comparison can use supplied labour and robot cost inputs; it still needs site validation. Layout drafting also has value: measure the time needed to prepare, revise and explain a proposal with your existing workflow and with Laydyne.

Separate the changes before pricing them. The apparel project includes the current setup, checkout-only, fitting-room-only and combined changes. Supply their costs and verify demand before choosing an investment.

Compare a robot investment with a layout change

Open the AMR line supply study to compare the current layout, a second robot and a closer pickup. Play in 3D, follow AMR 1, or switch to the same plan in 2D. Loading, loaded travel, unloading and empty return follow the recorded schedule. The live counters describe the displayed time; the table always covers the full hour. Switch options without changing the time to inspect the same moment.

Choose an option and open its project in Studio. Editing and saving a JSON file are free; check Account before recalculating changed inputs. The moved pickup assumes material is already at line-side staging. Include the upstream replenishment work and setup cost in an investment decision. Human and robot appearance can be selected in the process conditions without changing physical parameters.

WALKTHROUGH / FREE TO PREPARE

Open an apparel store, make three changes and keep the project

Start with Apparel fitting & checkout. The public page shows an actual 3D render, the same model in 2D and recorded engine output. Select Open this example, then confirm the replacement in Studio. Export your existing project first if you need a file copy.

  1. Edit in 2D. Switch to 2D. Move the feature table 1 m toward the shopfront, widen one clothing rail from 2.2 m to 2.6 m, then rotate the new-collection display from 12° to 0°. Check each change and undo it if needed. Example dimensions are assumptions.
  2. Inspect the same model in 3D. The objects, floors and scenarios stay together; changing the view does not create another project. Use Route check between the arrival, browsing, fitting and checkout zones.
  3. Save and restore for free. Choose Project → Project file. Reopen it from Project → New space → Open file. Both the geometry and the chosen 2D/3D view are saved, along with scenarios and frozen comparisons. Saving geometry changes does not update an old result.
  4. Run a fair comparison with Pro. Return to the original geometry before reproducing the published result. The project includes four scenarios and four frozen options: 2 fitting rooms / 1 checkout, 2 / 2, 4 / 1 and 4 / 2. Run or compare those inputs under the same 36 arrivals. Compare completed jobs and waiting together.

Ask your MCP agent

After free sign-in, use Connect AI to link ChatGPT, Claude, Codex or Claude Code to this open Studio tab. A useful request is:

Inspect the current apparel project and its revision. Move the feature table 1 m toward the shopfront, widen the first clothing rail to 2.6 m, and set the new-collection display rotation to 0°. Apply the changes one at a time, checking the current revision. Check overlaps and a shopper route from arrival through browsing, fitting and checkout. Switch to 2D, then export the complete project for me to restore later. Keep the workflow demand unchanged.

get_space, edit_space, check_space and set_space_view are Free. export_project and import_project transfer the whole project in validated chunks. The agent should follow the current tool schema, keep the export manifest and finish the import transaction. Do not save only the smaller space summary returned by get_space.

Ask your agent to look at what it built before it reports back. get_view_image returns your current view as a picture, or a chosen one: a floor area, a level, every level or the whole building, in 2D or 3D, from a named camera such as top or north-east, or focused on one part. Pictures stay within the link's 1 MB limit (a large PNG comes back as JPEG, and the result says so). Taking one does not change your view or your undo history. get_space_quantities returns floor, zone, tag, level and building areas and part counts. Both are Free.

To compare alternatives kept as floor areas of one level (the present, plan A, plan B), compare_areas lists what was added, removed and moved between two of them and the difference in area, seats and fixtures, get_view_set draws the same views of every alternative, and get_proposal_packet collects pictures, drawings, quantities, changes and assumptions into one HTML page that prints to PDF. All three are Free and state no cost or sales forecast.

When a spatial workflow has a saved run, ask your agent to replay it with set_space_view using playbackTarget: "process". It can play, pause, change speed and seek to a recorded time in 2D or 3D. Inspect get_space.processResult.playback for the end time, stale results and trace limits. Playback does not run a new calculation. Use playbackTarget: "robot" to return to cleaning or transport playback.

For another store workflow, try Apparel replenishment. It includes a mezzanine stockroom, explicit lift connection and one-versus-two-staff comparison. It models transfer jobs and the return journey, not inventory or sales.

Recorded replay versus a new run. Public playback uses saved traces, not a new calculation of edited inputs. Review changed-input warnings on old results. Pro calculates new operational comparisons. Browser saving, project files and viewing saved results remain free; cloud saving is a separate manual action subject to your plan limits.

Choose the calculation that matches the question

Define the workload and check your execution access in Account before running. The calculation engine runs in the browser; results are computed from the model and scenario, not guessed by a language model.

Tool / workflowUse it forSpatial scope
simulate_spaceCleaning coverage or two-station transportOne active floor, at most 60 × 60 m
compare_cleaning_deploymentCompare 1–8 cleaning robots and entered costsCurrent cleaning scene
run_process_scenarioArrivals, services, waits, shared resources and routesAcross connected floors, on floors of any size

Open Project → New space → Simulation examples from the header. The gallery has 32 examples: Service queue, Transport, Warehouse picking, Venue registration, Mall visitors, Factory flow, Home chores, Building deliveries, Café service, Inspection & rework, Apparel fitting & checkout, and Apparel replenishment. The public example library includes project downloads, recorded results and direct links to open each example. Each explains the flow, what to change and which results to watch. Spatial examples can open their layout and scenario together. Opening an example does not run it.

In the simulation panel, choose Run simulation, then Play agents on the plan to see the calculated routes in 2D or 3D. Both controls appear above the scenario inputs. Layouts and inputs remain editable for free; check Account for execution access. For a custom process, ask your agent to inspect get_process_catalog and list_process_scenarios, then save a full definition with put_process_scenario. Use goto for paths through modeled floors and links; the simpler move step travels between coordinates and ignores obstacles.

Model selection matters. The Service queue and Transport samples do not use the visible layout. Use a spatial sample or goto when doors, obstacles or inter-floor connections should affect routes.

See the worked questions for multi-level warehouse transport, venue entry flow, and office cleaning coverage. Each example lists the inputs and the boundary of its model.

Try a repeatable multi-floor experiment

  1. Open New space → Mall. It includes three levels, shaped floors and explicit escalator connections.
  2. Open Simulation → Browse simulation examples and choose Mall visitors → Add to current layout. Inspect its starting parameters, then choose Run simulation if your plan includes access.
  3. Change only the walking-visitor arrival rate, keep the same seed, and run again. Compare completed visits, waits and blocked jobs rather than relying on the animation alone.
  4. Move a blocking part or disconnect a floor connection, run Route check, and rerun the scenario. Record the new layout and assumptions with each result.

Read and compare results

Compare variants with the same geometry, workload, time horizon and random seed unless that input is the variable you are testing. Change one assumption at a time and record its source. Process scenarios can report completed and blocked jobs, wait times, resource use and movement traces. When a layout changes, its previous process result is marked stale; rerun it before citing its numbers.

Repeating a scenario with the same seed reproduces its result. Multiple runs show spread when a scenario contains random arrivals, durations or branches. Reproducibility does not prove that a site behaves the same way. Enter real measurements and compare with observed operations before using a result to make a deployment decision.

Save and export your work

Studio keeps the working project in this browser. Use Project → Project file to download a portable JSON copy, and Project → New space → Open file to open it later. An MCP link edits the open tab; it is not a headless project repository. Keep your JSON files if you manage data with Codex or Claude Code.

Project → 2D drawing… saves a scaled sheet of this floor area, this level or every level as SVG or PNG: a standard scale chosen to fit the paper (A4 to A1), a scale bar, outline dimensions, zone names with their areas, an area table and a title block with the project, the date and the space version. Zones too small for their name are numbered in the table. Add a north arrow at the angle you set; the model does not store true north. Project → 3D image saves the 3D view you see as a PNG, captioned with what it shows and the same space version, so a drawing and an image can be matched to one model. Your agent gets the same sheet with get_view_image in 2D (format: "svg" returns the SVG to save).

Your MCP agent can use export_project to save the whole project as JSON and import_project to restore it. Both are free, including all floor areas, saved layout comparisons and view settings. Restoring a project does not run a simulation. Undo returns to the project you had before the import. Keep Studio open while your agent transfers the file, and ask it to verify the completed download before replacing your backup.

If Cloud projects is enabled on your plan, saving there is a separate action. Opening a cloud project loads it into the browser workspace; later changes remain local until you choose to save them to cloud again. The original drawing or photo is not included in the saved project; keep the source file separately.

What the result can and cannot tell you

Results come from a simplified, deterministic model: robots are circles moving at constant speed, and the same input always gives the same result. It does not model collisions or avoidance between robots or people (only capacities and queues), crowd physics, optimised lift group control (lift cars follow simple fixed rules), turning, or cleaning quality. Batteries, when a scenario gives them, drain in a straight line and charge at a constant rate. Dimensions read from photos and drawings are assumptions to check against measurements. It is for exploring options, not a calibrated prediction of a real site.

  • Process scenarios count capacities and FIFO waits, but do not model collision avoidance, passing, crowd pressure or density-dependent walking speed.
  • Elevator travel uses speed and capacity; dispatch and stop selection are not modeled. Waits may therefore be too low.
  • Door opening time, acceleration, turning, charging, breakdowns, evacuation and safety-code compliance are outside the model.
  • A route check verifies the simplified geometry and declared clearances. It cannot verify that your drawing, object sizes or operational assumptions match a real site.

Use Laydyne to narrow options and expose assumptions. Confirm critical clearances, throughput and costs against measurements and specialist tools where required.

Troubleshooting

My MCP agent cannot reach Studio.

Keep the linked Studio tab open, reopen your AI client after adding its MCP configuration, and create a new link if the old one ended. Do not publish the link key.

An edit says the revision is stale or times out.

Ask the agent to call get_space before retrying. A timed-out edit might already have applied, so inspect the current model first.

A route cannot reach another floor.

Check that the two floor areas have an explicit connection, the agent type may use that connection, and no anchor or passage is blocked. check_space can return a route-failure reason.

A simulation says subscription required.

Editing, route checks and scenario definitions remain available. The execution tools require active simulation access; check the plan shown in your account.

Try it in Studio