ClawSCAD
OpenSCAD is the programmer's 3D modeler — precise, parametric, reproducible. ClawSCAD makes it AI-native: describe what you want, get a model, iterate in natural language.
It's an Electron app that wraps OpenSCAD with a Three.js PBR viewport, a Monaco code editor, an embedded Claude Code terminal, and a custom MCP server that gives Claude real tools — not just code generation, but the ability to render, validate, and inspect the model it's building.
Also available as SmartSCAD — a fork that replaces the Claude Code CLI with direct Anthropic and OpenAI SDK calls, supporting multiple models via a unified providers.js interface.
Windows / macOS / Linux · Node 18+ · OpenSCAD in PATH · Claude Code CLI (ClawSCAD) or Anthropic API key (SmartSCAD)
The Problem it Solves
OpenSCAD is extremely powerful for parametric 3D design, but the iteration loop is slow: write code, hit F5, wait for render, look at model, go back to code. For complex shapes, you end up spending more time managing that cycle than actually designing.
ClawSCAD collapses the loop. Claude generates or modifies the .scad code via the embedded terminal, the MCP server validates and renders it, and the Three.js viewport updates — all without leaving the app. The immutable checkpoint system means you can explore freely without fear of losing a good state.
ClawSCAD — Quick Start
git clone https://github.com/toyuvalo/ClawSCADnpm installnpm startPrerequisites: Node 18+, OpenSCAD in PATH, Claude Code CLI installed globally.
ClawSCAD Features
Live PBR Viewport
PBR rendering with Three.js, embedded directly in the Electron window. Every checkpoint renders the moment it's written — no switching to a separate OpenSCAD window, no manual re-rendering. Split viewport mode shows two designs side by side.
Immutable Checkpoints
Every .scad file Claude writes is a permanent, numbered checkpoint. Claude never overwrites previous work — it always creates a new file. This means you can freely branch from any point in design history without losing anything.
Checkpoint Branching
See a version from 12 iterations ago that had better proportions? Click it in the timeline and continue from there. Every branch is independent — no merge conflicts, no lost work.
Monaco Editor
Full OpenSCAD syntax highlighting using a custom Monarch grammar, built on Monaco — the same engine as VS Code. Edit the generated code directly when you need fine control over parameters, then let Claude continue from your changes.
Embedded AI Terminal
Claude Code runs inside an xterm.js terminal embedded directly in the app. Dual terminal support runs two Claude instances simultaneously. Describe what you want in plain language, Claude generates or modifies the .scad file, and the viewport updates — all within one window.
OpenSCAD MCP Server
A custom MCP server exposes render, validate, and analyze tools directly to Claude. Claude can programmatically check if the model is valid, trigger a render, and read back dimensions — not just generate code blindly. Auto-iteration on render failure writes errors to RENDER_ERRORS.md.
Multi-window Support
Open up to 4 independent project windows at once. Each has its own viewport, checkpoint tree, and terminal. Switch between projects without closing anything.
STL / 3MF / PNG Export
Export to STL for 3D printing, 3MF (which preserves colours), or PNG renders. Print cost estimation is built in for quick sanity-checking before sending to a slicer.
Keyboard Shortcuts
Architecture
main.jsElectron main process — render queue, MCP server, window management.renderer.jsThree.js PBR viewport, xterm.js terminal, Monaco editor, checkpoint tree UI.preload.jsIPC bridge between renderer and main processes.SmartSCAD — What's Different
- –Uses node-pty/xterm terminal (same as ClawSCAD) with a provider dropdown — switch between Claude Code CLI, Codex CLI, and Gemini CLI without restarting.
- –Each provider switch creates a fresh isolated workspace folder so parallel sessions with different CLIs never interfere.
- –Requires the chosen CLI on PATH (Claude Code, Codex, or Gemini CLI) — no API keys in config, credentials stay in each CLI's own auth.
- –providers.js keeps the interaction model consistent regardless of which AI backend is active.
- –Same Electron app, same Three.js PBR viewport, same immutable checkpoint system as ClawSCAD.
SmartSCAD Quick Start
git clone https://github.com/toyuvalo/SmartSCAD && npm install# Requires Claude Code, Codex CLI, or Gemini CLI installed and on PATHnpm start