Skip to main content
Glama

English Β· πŸ‡»πŸ‡³ TiαΊΏng Việt

Atelier πŸ“

CI npm

An AI architect that plugs into any MCP client β€” Claude Code, Codex CLI, Gemini CLI, Claude Desktop, Cursor… From a spoken description to standards-compliant floor plans and a furnished 3D model, with a live browser editor you can edit by hand while the AI works.

Multi-typology, multi-region by design. Atelier started with the Vietnamese tube house (nhΓ  α»‘ng) β€” TCVN drawing symbols, Vietnamese dimensional rules, Lα»— Ban feng-shui rulers β€” and now covers six house types on any lot: tube house, hip-roof villa on a sloping corner lot, single-storey house, garden house, apartment renovation, and a UK detached (validated against the UK Approved Documents pack). Building standards are pluggable rule packs (TCVN first, community packs welcome β€” see CONTRIBUTING); pitched roofs, per-edge frontages and sloping terrain are first-class schema. The editor UI is bilingual and auto-detects by country (the VI/EN button overrides).

Atelier /ˌætΙ™lˈjeΙͺ/ β€” "design workshop".

Standards-compliant plan, 3-chain dims

First-person walkthrough (WASD)

A/B design comparison

Floor plan

3D walkthrough

A/B comparison

50-second demo β€” empty lot to documented villa

β–Ά Watch the video (50s, webm) β€” one continuous take, no cuts: interview brief β†’ ground floor grows batch-by-batch on the 2D plan β†’ switch to 3D while the first floor and the 30Β° hip roof land on sloping terrain β†’ orbit β†’ furniture from the catalog β†’ first-person walkthrough β†’ sun study 8:00β†’17:00 β†’ validator clean, 6-sheet documentation set exported. Reproduce it yourself: npx tsx packages/server/scripts/demo-video.ts.

Plan grows live (split view)

Hip roof on sloping corner lot

Walking the living room

Sun study 17:00

2D build

Hip roof 3D

Walkthrough

Sun study

Related MCP server: BULC Building Designer

Core idea

One parametric model (JSON) is the single source of truth. Claude edits it through MCP tools; humans edit it directly in the web editor (drag, type exact numbers); both sync in real time over WebSocket. A deterministic renderer generates symbol-correct 2D drawings and the furnished 3D model from the same source β€” so 2D and 3D can never drift apart, and drawing symbols are always correct because the AI never draws them.

Claude Code ──MCP──► Server (model + validator + renderer) ◄──WebSocket──► Browser (live editor)

Install (30 seconds)

You don't clone anything β€” Atelier ships as an npm package (atelier-mcp), and it's a standard MCP server, so it is not tied to Claude: any MCP client can run it. The server is always the same one command β€” npx -y atelier-mcp β€” only the registration step differs per client.

Stand in your own house folder (one folder = one house) and run ONE command β€” it detects every MCP client on your machine and registers with each:

mkdir my-house && cd my-house
npx -y atelier-mcp setup          # finds Claude Code / Codex CLI / Gemini CLI /
                                  # Claude Desktop / Cursor and registers Atelier
npx playwright install chromium   # optional, once β€” PNG/PDF export
claude mcp add atelier -- npx -y atelier-mcp   # Claude Code
codex mcp add atelier -- npx -y atelier-mcp    # OpenAI Codex CLI
gemini mcp add atelier npx -y atelier-mcp      # Gemini CLI

GUI clients (Claude Desktop, Cursor, …) have no "current folder" β€” point ATELIER_DIR at your house folder in their MCP config JSON:

{ "mcpServers": { "atelier": {
    "command": "npx", "args": ["-y", "atelier-mcp"],
    "env": { "ATELIER_DIR": "C:\\path\\to\\my-house" } } } }

Then start your agent and say "design me a 4Γ—16m tube house". Works best with a model that reads Vietnamese well (tool descriptions and validator messages are Vietnamese-first) and a client that shows images from tool results β€” the agent inspects its own drawings.

From source (contributors)

pnpm install
npx playwright install chromium   # PNG/PDF rendering + demos
pnpm build:web
pnpm demo:p5                      # the 60-second demo: live build β†’ drag a wall,
                                  # type 4200 β†’ walk through the house in 3D

The repo ships a ready .mcp.json β€” open Claude Code in this folder and it registers the atelier server from source. pnpm build:cli builds the npm package (packages/cli, single-file bundle + web editor + fonts; verify with npx tsx packages/cli/smoke.mts <installed-pkg-path>).

What's the "60-second demo"?

The project's definition of success (doc 01), and it runs end-to-end (pnpm demo:p5):

Describe "4Γ—16m tube house, 2 floors, 3 bedrooms, parking for 2 motorbikes" β†’ a two-storey plan with correct symbols grows live in the browser β†’ the user grabs a wall, types 4200 ⏎ β†’ dims update, Claude notices the change and adapts the adjacent rooms β†’ switch to 3D and walk (WASD) through the furnished house.

Status β€” roadmap complete

All six phases (P0–P5) plus the first three backlog items shipped:

Phase

Delivered

Demo

P1 β€” Engine + static drawings

Parametric model, 22-rule validator with sources checked against TCVN 13967:2024, SVG/PNG plan renderer (symbols + 3-chain dims), 7 MCP tools, design-process skill

demo:p1

P2 β€” One-way live

editor_open launches the browser editor (Vite + Three.js) in the same process; every apply_ops appears instantly in 2D (server-rendered SVG) and 3D (incremental maquette); capture_view lets Claude see exactly what the user sees

demo:p2

P3 β€” Hand editing

Drag walls/doors/furniture with a type-a-number HUD (drag, type 4200 ⏎ β†’ exactly 4200mm), snapping, per-origin undo, soft-locks ("the user always wins" β€” agent writes on a user-held entity are rejected), editable properties panel, get_changes_since with old β†’ new summaries

demo:p3

P4 β€” Documentation set

Numbered sheet set KT-01…: floor plans (clear-dimension interior dims, section mark), front elevation, section A-A through the stair (pochΓ©, door voids, step profile), room & door schedules; export multi-page A3 PDF, DXF (pure TS, true mm β€” measurable in CAD), SVG

demo:p4

P5 β€” Furniture & experience

106-asset catalog (true mm sizes, clearances, CC0 parametric geometry + license manifest), per-category 3D builders, floor finishes, catalog panel in the editor, WASD walkthrough (pointer lock, 1600mm eye height), sun study (hour/month sliders, real shadows from latitude + site orientation), assets_search with a visual contact sheet

demo:p5

Backlog shipped: rough cost estimate (estimate_cost + a KT-06 sheet: converted areas Γ— an editable local price table, auto-checked against the interview budget) Β· view-only share links (/xem/<token>, server-enforced read-only β€” send it to your spouse) Β· A/B design comparison (variant_save/open/compare, two plans side by side with per-room mΒ² and per-variant cost deltas) Β· local zoning rule pack (PLN-01…06: setbacks for any lot shape, density, floors, height, canopy overhang β€” checks only what the interview brief declares) Β· IFC4 export (export ifc, pure-TS STEP writer: walls with proper opening voids/fills, slabs with real holes, stairs, rooms as IfcSpace β€” concept-level handover, not construction documents) Β· photoreal path (export gltf β†’ one GLB in true metres, one node per entity, plus scripts/render-photoreal.py for headless-Blender Cycles renders using the same sun model as the editor's sun study) Β· legacy plan import (underlay_import traces an old DXF or plan photo as a dim layer under the live plan β€” scale from DXF units or a 2-point calibration; underlay_trace proposes walls from parallel stroke pairs, always human-reviewed before applying).

Multi-typology & multi-region (P6–P9, doc 12) β€” shipped: rule packs as data (standards are pluggable JSON packs selected per project via config.region/typology; the geometry core always runs; write your own) Β· pitched roofs (gable/hip/shed entity, one geometry source feeding plan/elevation/section/3D/GLB/IfcRoof/estimate at true sloped mΒ²) Β· per-edge frontages (corner lots, per-edge setbacks β€” PLN-07) Β· sloping terrain (per-vertex ground elevations: sloped ground lines in elevations/sections, 3D terrain mesh, height measured from street level) Β· 6-template library (tube house, villa, single-storey, garden house, apartment, UK detached β€” each a golden-tested fixture) Β· region layer (units + default packs + currency; UK Approved Documents is the first non-VN pack, honestly flagged ⚠ until each number is verified against the source; estimates never leak another region's currency).

Bilingual: English README + full English design docs (docs/en/) + bilingual editor UI auto-detected by country (VN β†’ vi, elsewhere β†’ en; asset catalog included). Out of scope by design: structure & MEP (this is a concept tool, not construction documents).

Design docs

The full spec lives in docs/en/ (English) with the Vietnamese originals in docs/ β€” each file cross-links its counterpart; the Vietnamese original is authoritative if they differ:

#

Doc

Contents

01

Vision & positioning

Users, non-goals, competitive landscape, differentiators

02

Design process

Interview β†’ brief β†’ 5 phases with approval checkpoints

03

System architecture

Dual-client, single process, data flow

04

Data schema

Parametric model: walls, openings, rooms, stairs, furniture

05

MCP tools

19 tools + the ops vocabulary

06

Sync protocol

WebSocket, revisions, conflicts, undo

07

Validator & rules

TCVN rules + geometry + Lα»— Ban rulers

08

2D renderer

Layers, line weights, symbols, dims, title block

09

Web editor

Hand-editing UX: drag, type numbers, 3D, walkthrough

10

Roadmap

6 phases with Definitions of Done + backlog

11

Decisions

10 ADRs + 8 settled questions

12

Multi-typology expansion

P6–P9: rule packs, roofs/terrain, templates, regions + market research annex

13

Writing a rule pack

Contributor guide: pack schema, sourcing rules, regions

Stack

TypeScript monorepo β€” Node.js (MCP server + WebSocket), Three.js (3D), SVG (2D drawings), Vite (web editor), Vitest + Playwright (247 tests incl. real-browser e2e). Rationale in doc 03.

Dev environment

The repo integrates haido β€” a code-anchored memory layer that served as the project's own long-term memory while Atelier was being built:

  • .mcp.json β†’ haido serve MCP server (recall / remember / related / overview / stale / reanchor)

  • .claude/settings.json β†’ hooks that feed project knowledge into every Claude Code session

  • Local DB in .haido/ (gitignored); shared knowledge ships as a memory pack in docs/memory-pack/

License & disclaimer

  • Code: MIT. Font Be Vietnam Pro: SIL OFL 1.1 (OFL.txt next to the font files). Furniture catalog (parametric): CC0-1.0 (packages/core/assets/license-manifest.json).

  • Standards data in rules/*.json cites TCVN/QCVN sources per rule; the price table rules/don-gia.json is reference-only β€” edit it for your region.

  • ⚠ Atelier outputs are concept drawings β€” for thinking, discussing and working with an architect; they do not replace permit/construction documents signed by a licensed architect.

The 5 invariants

  1. Claude never draws directly β€” it only edits the parametric model; the renderer draws.

  2. Standard symbols live in the renderer β€” encoded once per TCVN, correct 100% of the time.

  3. Every mutation goes through one gate (apply_ops) β€” transaction, validation, broadcast.

  4. The user always wins β€” hand edits are never overwritten by the AI.

  5. Claude must look before inviting the user to look β€” validate + render + capture after every significant change.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude AI to directly interact with and control Blender for rapid, natural language-based 3D modeling. Supports parametric design and relational design through direct Blender integration.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude AI to AutoCAD for architectural design, enabling natural language to execute 684 commands. Automates drawing creation and editing through the Model Context Protocol.
    21 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to create and edit 3D floor plans conversationally, describing rooms and layouts or uploading DWG/PDF drawings, then view them in 2D/3D via a live link.
    3
    MIT