Skip to content

Latest commit

 

History

1,782 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WEB-CAD

A free browser-based experimental CAD workbench: draw walls/slabs/levels, try an AI CREATE agent, inspect BIM-like metadata, import/export common 3D formats, and experiment with IFC—no install required.

Live: https://wordingone.github.io/WEB-CAD/ · License: Source-Available

Disclaimer: WEB-CAD is an experimental tool for exploration and learning. It is not a substitute for professional design software, licensed architects, licensed engineers, or any licensed design professional. Output generated by this application (geometry, IFC files, drawings, exports) is not verified for structural safety, building code compliance, or constructability. Do not use output from this application as construction documents or as a basis for construction without independent review by appropriately licensed professionals. AI-generated content may contain errors. Always consult a licensed architect or engineer for any real-world building project.


What it is

WEB-CAD is an experimental workbench — not a production replacement for Rhino, Revit, or ArchiCAD. It runs entirely in the browser: no server, no API key, no install. The goal is to make basic parametric architectural modelling accessible from any device with a modern browser.


Features

Feature Notes
Draw walls, slabs, columns, stairs, roofs, openings DSL console or AI agent
AI CREATE agent Type a natural-language prompt; Gemma 4 generates geometry
Levels / storeys Named elevation planes; objects attach to levels
NURBS geometry Revolve, sweep, loft — NURBS surfaces stored, IFC4 round-trip via IfcBSplineSurfaceWithKnots
Boolean ops Union, difference, intersection on any two objects
IFC import/export Load or save IFC4 files; round-trip via web-ifc; NURBS surfaces export as IFC4 B-spline entities
3D format I/O Import: IFC, STEP, GLB/GLTF, OBJ, STL · Export: IFC4, GLB, GLTF, OBJ, STL, STEP, 3DM, USDZ, SVG, DXF, PDF
BIM-like metadata Select any element; sidebar shows IFC class, storey, GUID, layer
Scene panel Hierarchy, format info, element counts
Cmd-K palette Search commands, demos, and tools
Layout mode 2D drawing sheets with linked section/plan viewports
Undo/redo Full history stack
Session restore IndexedDB auto-save; scene survives a page refresh

Quick start (browser)

Open the live URL above. No account required.

  1. Draw — pick a tool from the left palette (Wall, Slab, Column, …) and click in the viewport.
  2. AI agent — open the chat panel, type a description ("add a gabled roof over the house"), press Enter.
  3. Import — drag any .ifc, .glb, .step, .obj, or .stl file onto the page.
  4. Export — click Export in the toolbar and pick a format.

MCP server (Claude Code)

The webcad MCP server lets Claude Code agents dispatch geometry verbs, inspect the scene, and capture viewport screenshots.

# Add to your .mcp.json:
{
  "mcpServers": {
    "webcad": {
      "type": "stdio",
      "command": "node",
      "args": ["tools/mcp/webcad-mcp.mjs"]
    }
  }
}

Tools: dispatch · list_verbs · get_verb_schema · list_scene_objects · get_viewport_image · slot_create/list/close

Slash commands: /scene (list scene objects) · /snapshot (capture viewport)

See docs/webcad-agent.md for behavior rules and docs/sample-prompts.md for example prompts.


Quick start (dev)

git clone https://github.com/wordingone/WEB-CAD
cd WEB-CAD
bun install
bun run web:typecheck     # strict tsc, no emit
bun run web:dev           # http://localhost:5847 — hot reload

See SETUP.md for the full environment guide and CONTRIBUTING.md for PR conventions.


Supported formats

Format Import Export
IFC4 ✓ (web-ifc) ✓ (hand-emitted STEP-21, round-trip verified)
STEP / IGES / BREP ✓ (OpenCascade WASM) ✓ (STEP, when geometry originated from OCCT)
GLB / GLTF ✓ (three.js)
OBJ ✓ (three.js)
STL ✓ (three.js)
3DM (Rhino)
USDZ
SVG / DXF / PDF ✓ (layout mode)

Known limitations

  • Experimental. This is a research/prototyping tool. Geometry output is not structurally validated.
  • AI agent accuracy varies. The in-browser Gemma 4 model works well for common schematic shapes; novel or complex prompts may need refinement.
  • No collaboration. Single-user, single-tab. No server-side persistence.
  • WebGPU required for AI. Browsers without WebGPU fall back to CPU inference (slower). The geometry viewer works without WebGPU.
  • SharedArrayBuffer / multi-thread WASM requires COOP+COEP headers. GitHub Pages serves single-thread; any COOP+COEP-capable host (Vercel, self-hosted nginx) gets multi-thread.
  • IFC schema coverage. Import handles IFC2×3 and IFC4. Export targets IFC4; round-trip verified via IfcAPI.OpenModel.
  • English only. The AI agent prompt corpus is English.

Stack

  • AI: Gemma 4 E4B-it (onnx-community/gemma-4-E4B-it-ONNX), in-browser via Transformers.js v4 + WebGPU
  • Spatial SDK: web/src/commands/spatial-api.yaml — typed dispatch contract for all geometry verbs; handler modules under web/src/handlers/
  • NURBS kernel: custom pure-JS NURBS curves + surfaces (web/src/nurbs/) — no WASM dep, fully testable in Bun
  • Parametric geometry: replicad 0.20 (LGPL-2.1) + OpenCascade WASM
  • IFC: web-ifc 0.0.77 (MPL-2.0)
  • 3D viewer: three.js 0.162 (MIT) + OrbitControls
  • Build: Vite 8 + TypeScript 5.3

Directory layout

web/                    Browser app (Vite + TypeScript)
  src/
    main.ts             Orchestrator (~170 LOC)
    dom-events.ts       DOM wiring, worker, file I/O, export pipeline
    register-handlers.ts  Handler registration (all Sd* verbs)
    commands/           Dispatch, DSL, spatial-api.yaml SDK contract
    agent/              AI agent harness, goal system
    viewer/             3D viewport, tools, gizmos, selection
    handlers/           Per-domain handler modules (transforms, nurbs, structural, …)
    geometry/           Layers, levels, grids, clipping planes, drafting
    ifc/                IFC build + round-trip
    io/                 Loaders, exporters, scene store
    shell/              Workbench layout, palette, modes
    scene/              Scene panel
    tools/              Create-mode tools (wall, slab, roof, openings, sketch)
    nurbs/              NURBS kernel
scripts/                Bun scripts (audit, setup, CI helpers)
docs/
  user/                 End-user guides
  dev/                  Developer reference
  internal/             Internal design notes
submission/             Hackathon submission artifacts (historical)

Contributing

See CONTRIBUTING.md. Issues and PRs welcome.


License

Source-Available — see LICENSE for full terms.
Stack licenses: replicad LGPL-2.1, web-ifc MPL-2.0, three.js MIT.

About

WEB-CAD — browser-native CAD with embedded LLM agent. Forked from gemma-architect 2026-05-24 for proprietary forward work; original frozen for Kaggle submission.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages