# CAD Agent Studio CAD Agent Studio is a two-pane web app for agent-driven CAD work: - left pane: agent chat, uploads, provider/model selection, and Viewer context cards - right pane: embedded 3D preview and CAD edit toolbar ## Setup The app first reads the private shared configuration at `../llm.config.yaml`. The repository currently versions that configuration for the private deployment. It may use a direct `apiKey` or an environment name in `apiKeyEnv`, and falls back to the app-local example: ```bash cp config/llm.config.yaml.example ../llm.config.yaml ``` Neither direct keys nor environment-variable names are returned by the public configuration endpoint. Set `CAD_ENGINE_ROOT` only when the sibling CadSet engine is not at `..`. ## Run ```bash npm install npm run dev -- -H 127.0.0.1 -p 53821 ``` Open `http://127.0.0.1:53821`. ## CAD Flow Uploads and generated tasks are stored under `data/tasks/`. For new text/image models, the model authors semantic DesignIR 3.0 and CAD Router selects text-to-cad or SimpleCADAPI. The generated STEP is materialized as a non-authoritative SurfaceIR snapshot while the semantic layer remains the edit source. For uploaded STEP, chat calls the deterministic `reconstruct_uploaded_step` tool, which executes CAD Router's DesignIR 3.0 / SurfaceIR adapter, independently rebuilds STEP, runs geometry acceptance, and publishes only perturbation-validated editable parameters. Uploaded STEP is teacher and acceptance truth; it is never imported by the reconstruction compiler. Follow-up chat edits on a reconstructed task use `edit_designir3_parameter`. The tool accepts only a parameter and value already covered by the published validation range, reruns teacher-side semantic edit acceptance, and publishes a new DesignIR 3.0 plus STEP revision. CAD Agent Studio does not start the standalone CAD Viewer service. Generated models keep DesignIR as the editable contract and STEP as the geometry artifact. The right-pane toolbar mirrors the CAD Viewer edit tool set and interaction shape, but tool picks are attached to the next agent request as structured `cadViewer.editIntent` / `cadViewer.selection` context instead of being copied to the clipboard. The handoff is silent in the UI: no success modal, no copied text panel. Modification requests create revision folders with `edit-request.json` and apply changes to the DesignIR recorded in `cad-task.json`.