👉 adam.new/cadam. Generate a CAD model in seconds, right in your browser. No install required.
- 🤖 AI-Powered Generation- Transform natural language and images into 3D models - 🎛️ Parametric Controls- Interactive sliders for instant dimension adjustments - 📦 Multiple Export Formats- Export as .STL, .SCAD, or .DXF files - 🌐 Browser-Based- Runs entirely in your browser using WebAssembly - 📚 Library Support- Includes BOSL, BOSL2, and MCAD libraries
| Feature | Description |
|---|---|
| Natural Language Input | |
| Describe your 3D model in plain English | |
| Image References | |
| Upload images to guide model generation | |
| Real-time Preview | |
| See your model update instantly with Three.js | |
| Parameter Extraction | |
| Automatically identifies adjustable dimensions | |
| Smart Updates | |
| Efficient parameter changes without AI re-generation | |
| Custom Fonts | |
| Built-in Geist font support for text in models |
A showcase of what CADAM builds from a single plain-language description — from full multi-part machines down to clean parametric parts. Each model below started from the prompt shown and came out as fully parametric OpenSCAD, ready to export as .STL
, .SCAD
, or .DXF
. The source and a short write-up for each live in benchmarks/; the orbiting previews are rendered with
benchmarks/render.sh
| Model | Prompt | Controls | Output |
|---|---|---|---|
| V8 engine |
8 colors
9-cylinder radial aircraft engine 6 colors
Turbofan jet engine 10 colors
Axial turbine blisk 1 color
| Model | Prompt | Controls | Output |
|---|---|---|---|
| Twisted hexagonal vase |
1 color
Knurled control knob 2 colors
Hex bolt & nut — real threads 2 colors
Honeycomb lightweight bracket 1 color
NACA 2412 tapered wing 1 color
Threaded jar & screw-on lid 2 colors
Right-angle bevel gear drive 3 colors
Centrifugal pump impeller 1 color
Herringbone planetary gear stage 4 colors
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
-
Node.js ^20.19.0 or >=22.12.0, with npm 10+
-
Supabase CLI
-
ngrok (for local webhook development)
-
Copy
.env.local.template
to.env.local
- Update all required keys in
.env.local
:
VITE_SUPABASE_ANON_KEY="<Test Anon Key>"
VITE_SUPABASE_URL='http://127.0.0.1:54321'
- Add server-side keys to
.env.local
, including:
ANTHROPIC_API_KEY="<Test Anthropic API Key>"
OPENROUTER_API_KEY="<Test OpenRouter API Key>"
OPENAI_API_KEY="<Test OpenAI API Key>"
GOOGLE_API_KEY="<Test Google API Key>"
FAL_KEY="<Test FAL API Key>"
SUPABASE_SERVICE_ROLE_KEY="<Test Service Role Key>"
BILLING_SERVICE_URL="<Test Billing Service URL>"
BILLING_SERVICE_KEY="<Test Billing Service Key>"
ENVIRONMENT="local"
ADAM_URL="<Adam URL or dev URL>" # Checkout and portal redirect target
WEBHOOK_BASE_URL="<Public TanStack App URL>" # Your app URL for /cadam/api callbacks
NGROK_URL="<NGROK URL>" # Optional local Supabase Storage tunnel for provider-readable signed URLs
CADAM uses public URLs for provider callbacks and local signed storage URLs:
Install ngrok if you haven't already:
npm install -g ngrok
brew install ngrok
Start an ngrok tunnel pointing to your TanStack Start dev server:
ngrok http 3000
Copy the generated ngrok URL (e.g.,
https://xxxx-xx-xx-xxx-xx.ngrok.io) and add it to your.env.local
file:
WEBHOOK_BASE_URL="https://xxxx-xx-xx-xxx-xx.ngrok.io"
If a provider must fetch local Supabase Storage signed URLs, run a second tunnel to Supabase and set
NGROK_URL
to that URL. - Ensure
ENVIRONMENT="local"
is set in the same file.
npm i
npx supabase start
npm run dev
Frontend: React 19 + TypeScript + TanStack Start + Vite3D Rendering: Three.js + React Three FiberCAD Engine: OpenSCAD WebAssemblyBackend: TanStack Start server routes + Supabase PostgreSQL/Auth/StorageAI: Anthropic Claude APIStyling: Tailwind CSS + shadcn/uiLibraries: BOSL, BOSL2, MCAD
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also open an issue.
See the CONTRIBUTING.md for instructions and code of conduct.
This app wouldn't be possible without the work of:
This distribution is licensed under the GNU General Public License v3.0 (GPLv3). See LICENSE
.
Components and attributions:
- Portions of this project are derived from
openscad-web-gui
(GPLv3). - This distribution includes unmodified binaries from OpenSCAD WASM under
GPL v2 or later; distributed here under GPLv3 as part of the combined work.
See
src/vendor/openscad-wasm/SOURCE-OFFER.txt
.
Live chart by RepoStars — click for the interactive version.