CADAM: Text-to-CAD in Your Browser, Powered by Claude and WebAssembly
The path from “I need a physical object” to “I have a 3D model” has always had a steep entry cost. CAD software has a learning curve measured in weeks. OpenSCAD is powerful but requires you to write code describing your geometry. Even with AI assistance, the workflow has involved multiple tools, file conversions, and context-switching.
CADAM collapses that to: describe what you want → adjust sliders → export STL → print.
The live demo is at adam.new/cadam. No account required to try it.
How It Actually Works
The architecture is elegant. CADAM uses Claude (Anthropic’s API) to generate OpenSCAD code from your natural language description. OpenSCAD is a programming language for 3D solid modeling — highly parametric, precise, and well-suited to machine generation. The generated SCAD code is then executed by OpenSCAD compiled to WebAssembly, running entirely inside your browser.
The pipeline:
- You type “a phone stand with a 15-degree angle and cable management slot” (or upload a reference image)
- Claude generates the OpenSCAD code, and also extracts the adjustable dimensions as named parameters
- OpenSCAD WASM renders the 3D model in real-time via Three.js
- The extracted parameters appear as interactive sliders
- Slider adjustments trigger parameter-only updates — no re-generation, just re-render
That last point matters: changing the angle from 15° to 20° doesn’t call Claude again. It modifies the parameter in the existing SCAD code and re-renders locally. Fast, cheap, and the model stays coherent.
The Parametric Sliders
This is the feature that makes CADAM more than a novelty. Most text-to-3D tools give you a static mesh — you describe, it generates, and if you want changes you describe again (and hope for consistency).
CADAM generates parametric models where the dimensions are variables. Claude’s parameter extraction step identifies which values in the generated code correspond to meaningful dimensions (height, width, wall thickness, angle, slot width, etc.) and surfaces them as sliders. You get a model you can actually tune.
For 3D printing specifically, this is critical. You’ll almost always need to adjust tolerances, fit dimensions to your specific object, or tweak proportions after seeing the first render.
Library Support
CADAM bundles BOSL, BOSL2, and MCAD — three major OpenSCAD libraries. This gives Claude access to a large vocabulary of pre-built shapes, threads, connectors, and mechanical components when generating code. A request for “an M4 bolt with a hex head” can use BOSL2’s thread library rather than hand-generating the geometry.
Export and Workflow
- STL export — straight to slicer (Cura, PrusaSlicer, Bambu Studio, etc.), ready to print
- SCAD export — the raw OpenSCAD code, editable in OpenSCAD desktop for further refinement
The SCAD export is the escape hatch for power users. You get the AI-generated starting point, tune it with sliders, then take the code into OpenSCAD proper if you need anything beyond what the parametric interface exposes.
Self-Hosting
The hosted version at adam.new/cadam is the easiest path. If you want to run your own instance:
git clone https://github.com/Adam-CAD/CADAM.git
cd CADAM
npm install
npx supabase start
npx supabase functions serve --no-verify-jwt
npm run dev
Requirements: Node.js, Supabase CLI, ngrok (for local webhook development), and your own Anthropic API key. The Supabase + ngrok setup is for routing image uploads to Claude — images need a publicly accessible URL since they’re sent to Anthropic’s API, and ngrok creates the tunnel from your local Supabase instance.
It’s not quite “zero infrastructure” for self-hosting, but the hosted version handles all of that transparently.
The Stack
- Frontend: React 18 + TypeScript + Vite
- 3D Rendering: Three.js + React Three Fiber
- CAD Engine: OpenSCAD compiled to WebAssembly
- Backend: Supabase (PostgreSQL + Edge Functions)
- AI: Anthropic Claude API
- Libraries: BOSL, BOSL2, MCAD
The OpenSCAD WASM compilation is the technical achievement that makes browser-based CAD feasible. OpenSCAD’s computational geometry engine (CGAL-based) is non-trivial to compile to WASM, and the openscad-wasm project made this possible. CADAM builds on that foundation with the AI generation layer and the React interface.
What It’s Good For
CADAM is genuinely useful for: enclosures and brackets, custom mounts and holders, parametric containers, replacement parts where you can measure the dimensions, and any geometry that’s fundamentally geometric rather than organic (human faces, terrain, soft curves — those need different tools).
It’s not a replacement for professional CAD. It’s a tool that gets a maker from “I need this thing” to “I have an STL to print” in minutes rather than hours, without needing to know OpenSCAD syntax.
GPL-3.0. GitHub → | Live demo →