A browser-based, open-source 3D modelling tool for OpenSCAD — with three integrated editing modes and an AI assistant that always stay in sync.
Status: Active development — core features working, AI assistant in progress.
Drag and drop primitives onto the workplane, position them with transform gizmos, snap to grid, and apply boolean operations — union, subtract, intersect. Supports 15+ primitive types including box, sphere, cylinder, cone, torus, pyramid, wedge, tube, rounded box, polygon, icosahedron, and more.
Connect nodes to wire together OpenSCAD operations visually — inspired by OpenSCAD Graph Editor, Blender's Geometry Nodes, and Grasshopper. Build parametric models without writing code: expose values as parameters by connecting number nodes to inputs. Supports all OpenSCAD built-ins, math nodes, and more.
A Monaco-powered code editor with OpenSCAD syntax highlighting, inline diagnostics, autocomplete with snippet insertion, and hover documentation for all built-in functions.
A toggleable side panel powered by your own Claude or OpenAI API key:
- Chat — ask questions about your model, get suggestions, request modifications
- Generate — describe a shape in plain language → get OpenSCAD code
- Node Graph Builder — describe a parametric model → auto-builds the node graph
- Explain — when OpenSCAD errors occur, AI explains what went wrong and offers a fix
All three editors and the AI share the same OpenSCAD source string as canonical state. Switch modes any time — the model comes with you. AI changes are fully undoable.
Visual edit ──►
Node edit ──► OpenSCAD source ──► WASM renderer ──► 3D viewport
Code edit ──►
AI generate ──►
No install. No account. No backend. Runs entirely in your browser.
| Feature | Status |
|---|---|
| 15+ primitive types | ✅ Done |
| Boolean ops (union / subtract / intersect / hole) | ✅ Done |
| Snap-to-grid workplane | ✅ Done |
| Transform gizmo (move / rotate / scale) | ✅ Done |
| Properties panel | ✅ Done |
| Object rename, delete | ✅ Done |
| Color picker per object | 🔄 In progress |
| Drag & drop from sidebar | 🔄 In progress |
| Mirror, align, duplicate tools | 🔄 In progress |
| Ruler / measurement tool | 🔄 In progress |
| Feature | Status |
|---|---|
| React Flow canvas with typed ports | ✅ Done |
| All primitive/boolean/transform nodes | ✅ Done |
| Math / value / utility nodes | ✅ Done |
| Node search palette (Spacebar / right-click) | ✅ Done |
| Auto-layout (dagre.js, undoable) | ✅ Done |
| Node deletion (keyboard + context menu) | ✅ Done |
| Code Block node (for unsupported constructs) | ✅ Done |
| Feature | Status |
|---|---|
| Monaco with OpenSCAD syntax highlighting | ✅ Done |
| WASM render on keystroke (debounced) | ✅ Done |
| Completions with snippet insertion | ✅ Done |
| Hover documentation | ✅ Done |
| Inline error markers | ✅ Done |
| Feature | Status |
|---|---|
| API key management (Claude + OpenAI) | 🔄 In progress |
| Chat tab with source context | 🔄 In progress |
| Text-to-3D generation | 🔄 In progress |
| Node graph builder | 🔄 In progress |
| Error explainer | 🔄 In progress |
| Feature | Status |
|---|---|
| Real WASM OpenSCAD renderer (CGAL) | ✅ Done |
| Shared 3D viewport (Three.js) | ✅ Done |
| Three-way sync (visual ↔ graph ↔ code) | ✅ Done |
| Undo / redo across all modes | ✅ Done |
| Export STL / OBJ / .scad | ✅ Done |
| Open / save project folders | ✅ Done |
| Dark / light theme | ✅ Done |
| PWA / offline support | 📋 Planned |
git clone https://github.com/your-org/openscad-studio.git
cd openscad-studio
pnpm install
pnpm dev
# open http://localhost:5173See docs/dev-setup.md for prerequisites and full setup.
- Click the ✦ button in the toolbar to open the AI panel
- Click the settings icon and enter your API key:
- Your key is stored locally in your browser — never sent anywhere else
- React + Tailwind CSS
- React Flow — node graph canvas
- Three.js — 3D WebGL rendering
- Monaco Editor — code editing
- openscad-wasm — real OpenSCAD CGAL renderer
- Manifold (WASM) — fast CSG booleans
- Zustand — state management
- Vite — build tooling
- Anthropic Claude API + OpenAI API — AI assistant (user provides key)
See CONTRIBUTING.md. High-value areas right now:
- New visual editor primitives and tools (Phase 6)
- AI panel implementation (Phase 7)
- Three.js / WebGL performance
- OpenSCAD language expertise (LSP, AST parsing)