Overview
CADAM is an open-source web application that turns a written description — or an image — into a 3D CAD model. The trick is that it does not generate a mesh directly: an LLM writes OpenSCAD code, which is compiled in the browser through OpenSCAD's WebAssembly build and rendered live with Three.js. Because the intermediate representation is parametric source, the result stays editable rather than being a frozen blob of triangles.
That parametric output is what the UI is built around. CADAM extracts the parameters out of the generated model and exposes them as sliders, so you can change a hole diameter or a wall thickness and watch the preview update instead of re-prompting. It also handles text geometry (with Geist font support) and can pull in the common OpenSCAD libraries — BOSL, BOSL2 and MCAD.
It is the open-source counterpart to Adam, a Y Combinator company, and runs as a React 19 / TypeScript app on TanStack Start and Vite with Supabase for the backend and edge functions. Models can be exported as STL for printing, SCAD to keep working in OpenSCAD, or DXF for 2D. The project is GPL-3.0.
What it does
- Generates parametric OpenSCAD source from a text prompt or a reference image
- Automatic parameter extraction into interactive sliders, so dimensions are edited rather than re-prompted
- In-browser OpenSCAD compilation via WebAssembly with a live Three.js preview
- Exports to STL, SCAD and DXF
- Text geometry with Geist font support and the BOSL, BOSL2 and MCAD libraries
Getting started
Try the hosted demo at adam.new/cadam, or run it locally — the local stack needs Node.js, the Supabase CLI and API keys for the model providers.
Clone and install
Standard npm install at the repository root.
git clone https://github.com/Adam-CAD/CADAM.git
cd CADAM
npm installStart Supabase and the edge functions
The backend runs locally through the Supabase CLI.
npx supabase start
npx supabase functions serve --no-verify-jwtConfigure keys and run the app
The frontend `.env.local` needs `VITE_SUPABASE_URL` and `VITE_SUPABASE_ANON_KEY`; the backend `.env.local` needs the provider keys (`ANTHROPIC_API_KEY` and the other model/service keys the functions use) plus `SUPABASE_SERVICE_ROLE_KEY`.
npm run devCommands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Draft a printable part from a description and tune its dimensions with sliders before exporting STL
- Keep AI-generated geometry parametric and editable in OpenSCAD instead of receiving a fixed mesh
- Turn a reference photo of a bracket or enclosure into a starting CAD file
- Self-host a text-to-CAD workflow when parts should not go through a hosted service
How CADAM compares
CADAM alongside other open-source 3d & cad generation tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| MCP for Blender | ★ 29.8k | MCP server and Blender addon that let an LLM drive Blender directly — creating, modifying and inspecting 3D objects, materials and scenes from a chat prompt. |
| Pascal Editor | ★ 24.5k | A local-first 3D building editor built on React Three Fiber and WebGPU, with a typed architectural node hierarchy and an authenticated MCP service so AI agents can inspect and edit the scene. |
| img2threejs | ★ 17.3k | An agent skill that rebuilds the object in a single reference image as procedural, animation-ready Three.js code, gating each sculpting pass on a vision review against the reference. |
| text-to-cad | ★ 16.5k | A library of agent skills for CAD, CAE and CAM: plain-language to STEP models, DXF drawings, URDF/SRDF/SDF robot files, printability checks and sliced G-code. |
| CADAM | ★ 5.2k | Text and images in, parametric CAD out |