Content
# Atriana
AI-native architectural design. Atriana replaces traditional CAD workflows with an AI-first approach: instead of drawing lines and shapes, you describe what you want to an agent, which builds and modifies the design through Atriana's MCP server. The browser UI is a view onto canonical state held by a local Node server, kept in sync over WebSocket.
Designs are represented as semantic objects (walls, shelves, panels, flue pipes, granite supports) rather than raw geometric primitives, so the agent reasons about _what_ it's building, not _where lines go_.
## Example: modeling a wood-burning stove
I gave Claude a photo of an existing wood stove and asked it to recreate the design through the MCP. A few seconds later the model was sitting in Atriana, ready to inspect, edit, and export.
<p align="center">
<img src="./docs/images/wood-stove-reference.jpg" alt="Reference photo of a wood-burning stove" width="420">
</p>
_The reference photo passed to the agent._

_The full prompt. No CAD vocabulary, no coordinates, just the photo and an instruction._

_The 3D result. The MCP log on the left captures every design call the agent made; the components panel on the right lists the semantic objects._

_Same canonical state in 2D drafting mode. Top, front, and right projections are generated automatically and can be exported as PDF, SVG, or DXF._
## How it works
```text
┌─────────────┐ ┌─────────────────┐
│ AI Agent │◄─────────────────►│ Atriana App │
│ (any LLM) │ Tool calls │ (Browser) │
└─────────────┘ └─────────────────┘
▲ ▲
│ natural language │ real-time view
▼ ▼
┌─────────────┐ ┌─────────────────┐
│ User │ │ Design Canvas │
│ (prompts) │ │ (2D/3D viewer) │
└─────────────┘ └─────────────────┘
```
1. **User** describes a design to their agent (e.g. "Build a 2m x 1m modular TV rack with three shelves").
2. **Agent** uses Atriana's MCP tools to create and manipulate semantic design objects.
3. **Atriana** renders the design in real time in the browser.
4. **Atriana** can capture screenshots back to the agent for visual feedback loops.
5. **User** views, navigates, and exports the final design.
## Features
- **Semantic object model**: walls, panels, shelves, pipes, supports, dimensions, labels, fills, polylines. Optimized for agent reasoning, not line-by-line drafting.
- **2D and 3D views**: 3D render for inspection, 2D drafting mode with automatic top/front/right projections.
- **Export**: PDF, SVG, and DXF output from the 2D views.
- **Screenshot capture**: programmatic canvas capture, including off-screen, so the agent can see its own output.
- **Real-time sync**: every server-side state change streams to the browser over WebSocket.
- **Local persistence**: projects are stored as JSON files under `.atriana/` by the local server, one file per project.
## Getting started
### Prerequisites
- Node.js 20+
- pnpm
### Install
```bash
pnpm install
```
### Run in development
```bash
pnpm dev
```
Runs the Node server (port 3001) and the Vite dev server (port 5173) in parallel. Open `http://localhost:5173/`. The Vite dev server proxies `/api`, `/mcp`, and `/ws` to the Node server. MCP is available at `http://localhost:3001/mcp`.
### Run in production
```bash
pnpm build
pnpm start
```
`pnpm build` produces the browser bundle in `dist/`. `pnpm start` launches the Node server, which serves the app, the MCP endpoint, and the WebSocket on a single port (3001 by default; override with `PORT`).
## Connect an agent
Atriana exposes a streamable HTTP MCP endpoint at `http://localhost:3001/mcp`. Any agent that supports MCP over HTTP can drive it, including Claude Code, Cursor, and Claude Desktop.
Example entry for an MCP client config:
```json
{
"mcpServers": {
"atriana": {
"type": "http",
"url": "http://localhost:3001/mcp"
}
}
}
```
Start Atriana first (`pnpm dev` or `pnpm start`), then connect the agent. Open the browser UI at `http://localhost:5173/` (dev) or `http://localhost:3001/` (production) to watch the design update as the agent works.
## Agent instruction sync
`AGENTS.md` and `.agents/skills/` are the canonical source for shared repo instructions and skills. `CLAUDE.md` and `.claude/skills/` are generated from them; Claude settings under `.claude/` remain manually editable.
After changing `AGENTS.md` or `.agents/skills/`, run:
```bash
pnpm agents:sync
```
## License
MIT. See [LICENSE](./LICENSE).
Connection Info
You Might Also Like
Train-in-Silence
The first Task-Aware MCP server and automated VRAM calculator for LLM...
stacklit
108,000 lines of code. 4,000 tokens of index. One command makes any repo...
AppClaw
AI-powered mobile automation agent — describe what you want in plain...
pdf-mcp
Production-ready MCP server for PDF processing with intelligent caching....
kotadb
Local-only code intelligence API for AI developer workflows (Bun +...
gemini-api-docs-mcp
A remote HTTP MCP server for searching Google Gemini API documentation.