ive found a process by which the llm gives me a picture, then i draw on it and hand it back works fairly well
- wrong pitch
- wrong pins position
- missing pins
An existing LLM could drive the generation while the MCP can render the final result?
Yeah, no, that's a lie. This isn't a CAD model. It's a fantasy 3d model that looks like it's straight out of Gearhead Garage (1999).
Any time I see these 'AI CAD' solutions it's always toys, toys, toys. Show me something functional that you've actually manufactured (shitty 3D prints don't count). Or at least show me something that can actually be assembled and isn't just a bunch of boxes with no fasteners to hold them together.
Why not? The 3D print market is pretty large and tools to generate some designs that can then be tweaked are pretty useful in that context. I don't think that type of AI CAD tool would replace professional CAD work, that's something that requires way too much context and human judgement. But being able to prototype something to be 3D printed via an AI thing is one of the few places where I see AI being genuinely useful.
I personally enjoy designing my own things with Plasticity, so wouldn't be the perfect target audience
This is improving greatly in recent model releases
Fable 5 in our Fusion Extension.
👉 adam.new/cadam. Generate a CAD model in seconds, right in your browser. No install required.
| 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 | A complete V8 internal combustion engine: two banks of four cylinders in a 90° V, cylinder heads with ribbed valve covers, an intake manifold in the valley, exhaust headers down each bank, a crankshaft with counterweights, pistons and connecting rods, a front pulley, and an oil pan. | 22 dims 8 colors |
![]() |
| 9-cylinder radial aircraft engine | Design a 9-cylinder radial aircraft engine: a central round crankcase with nine finned cylinders arranged evenly in a star pattern around it, each cylinder with stacked cooling fins and a domed cylinder head, and a central propeller shaft hub at the front. | 15 dims 6 colors |
![]() |
| Turbofan jet engine | A complete high-bypass turbofan: a front fan you can see into, a bypass cowl, an internal core with compressor/turbine stages, outlet guide vanes, and an exhaust plug. | 2 dims 10 colors |
![]() |
| Axial turbine blisk | Model an axial-flow turbine blisk (bladed disk) like a jet engine compressor stage: a central hub with a shaft bore and a single ring of about 28 thin aerofoil blades around the rim, each blade clearly twisted along its height from root to tip like a real turbine blade. | 14 dims 1 color |
![]() |
| Model | Prompt | Controls | Output |
|---|---|---|---|
| Twisted hexagonal vase | Design a twisted hexagonal vase: a hollow shell about 150 mm tall that tapers from a 70 mm base to a 50 mm mouth, with the hexagonal cross-section twisting 120 degrees from bottom to top, a 2 mm wall, and a closed bottom. | 6 dims 1 color |
![]() |
| Knurled control knob | Make a knurled control knob 40 mm in diameter and 22 mm tall with a diamond-knurled grip, a raised pointer mark on top, a 6 mm D-shaped shaft bore, and an M3 set-screw hole through the side. | 15 dims 2 colors |
![]() |
| Hex bolt & nut — real threads | Create an M12 hex bolt 45 mm long with a real threaded shaft and a standard hex head, plus its matching hex nut, placed side by side. | 3 dims 2 colors |
![]() |
| Honeycomb lightweight bracket | Design a 90-degree angle mounting bracket with 80x80 mm flanges that are 5 mm thick, lightened with a hexagonal honeycomb cutout pattern on both faces, four M5 mounting holes, and a filleted inside corner. | 13 dims 1 color |
![]() |
| NACA 2412 tapered wing | Model a tapered aircraft wing section using a real NACA 2412 airfoil: 120 mm root chord tapering to 80 mm tip over a 200 mm span, with two spanwise spar tubes and a few lightening holes. | 9 dims 1 color |
![]() |
| Threaded jar & screw-on lid | Create a small storage jar with external screw threads at the neck and a matching screw-on lid with internal threads. Jar body 60 mm diameter, 70 mm tall, 2.5 mm walls; show the lid unscrewed and sitting beside the jar. | 9 dims 2 colors |
![]() |
| Right-angle bevel gear drive | Build a right-angle bevel gear drive: a 24-tooth bevel gear on a vertical shaft meshing at 90 degrees with a 16-tooth bevel pinion on a horizontal shaft, each on a short stub shaft. | 9 dims 3 colors |
![]() |
| Centrifugal pump impeller | Design a centrifugal pump impeller: a 90 mm diameter back-plate with a central 12 mm bore and a raised hub, and seven backward-curved blades that sweep from the hub out to the rim, each blade curving smoothly along its path. | 10 dims 1 color |
![]() |
| Herringbone planetary gear stage | Model a herringbone planetary gear stage at module 1.5: a central sun gear with 18 teeth, three planet gears with 18 teeth each meshing around it, an internal ring gear with 54 teeth, and a carrier plate linking the three planet axles. Color the sun, planets, ring, and carrier differently. | 10 dims 4 colors |
![]() |
# Clone the repository
git clone https://github.com/Adam-CAD/CADAM.git
cd CADAM
# Install dependencies
npm install
# Start Supabase
npx supabase start
npx supabase functions serve --no-verify-jwt
# Start the development server
npm run dev
.env.local.template to .env.local.env.local:VITE_SUPABASE_ANON_KEY="<Test Anon Key>"
VITE_SUPABASE_URL='http://127.0.0.1:54321'
.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
# or
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
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:
openscad-web-gui (GPLv3).src/vendor/openscad-wasm/SOURCE-OFFER.txt.Live chart by RepoStars — click for the interactive version.
For anyone doing CAD at a professional level (ie not 3d printed trinkets), the important parts are the physical parameters and tolerances designed into the model. For example I suspect your crankshaft would rip itself apart at engine speeds, not to mention all the plumbing, oil and coolant delivery, and auxiliary pumps and belts are missing
I suspect that your VLM might do a bad job at transcribing sketches into CADs, and you wrongly interpreted the adoption data as a preference for text-based interaction
So basically you have a good enough code that’s “intuitive” for a model, screenshots, and that’s it?
Do you have a single person on your team that's actually a mechanical engineer with practical industry experience?
hobbyists and makers use CADAM
For the Fusion demo we intentionally didn't include the block or any accessories in the visualization as we wanted demonstrate Adam's ability to reason through the mechanical workings of an engine, like how the cams push the valves or the way the the crankshaft drives the connecting rods.
Fingers crossed it comes back!