CADAM: Open Source Text-to-CAD Web App
Generate parametric 3D CAD models from natural language and images, right in your browser.
Evidence: README lists environment variables for multiple API keys (Anthropic, OpenRouter, OpenAI, Google, FAL, Supabase service role key) but does not mention least privilege, user confirmation, or data flow transparency. No information on sensitive data handling, dependency security, external effects, rollback, or source attribution. Therefore all trust criteria scored 0.
Evidence: README provides installation and development steps but no information on self-consistency, dependency availability, or failure messages. No test results or error handling documentation. Therefore all reliability criteria scored 0.
Evidence: README describes target audience (3D printing and CAD community) and multiple use cases (natural language generation, image references) but does not specify capability boundaries, trigger precision, or environment fit details. Therefore these criteria scored 0.
Evidence: README provides information architecture (features list, benchmarks), installation notes, examples (benchmarks), and license (GPL-3.0), but lacks naming stability, known limitations, versioning/changelog, and maintenance responsibility. Therefore some criteria scored 0, some 1.
Evidence: README shows output formats (STL, SCAD, DXF) and benchmarks, but no quantitative or qualitative analysis of output usability, marginal value, or cost-benefit. Therefore all criteria scored 0.
Evidence: Claims in README (e.g., 'generate CAD models') lack traceable evidence, benchmark links exist but no independent verification, and no separation of facts and inferences. Therefore all criteria scored 0.
- The repository requires configuration of multiple third-party API keys, including service role keys, posing a risk of sensitive information leakage.
- No evidence of security audit or dependency vulnerability scanning.
- No rollback or data recovery mechanisms provided.
- No known limitations or troubleshooting guide.
- No versioning/changelog or maintenance responsibility statement.
What does this agent do, and when should you use it?
CADAM is an open-source, browser-based text-to-CAD application that leverages AI to convert natural language descriptions and images into fully parametric OpenSCAD models. Built with React 19, TypeScript, and TanStack Start, it runs OpenSCAD in the browser via WebAssembly, enabling real-time preview and export to STL, SCAD, and DXF formats. The app uses Supabase as its backend, supporting AI-powered generation, interactive parameter controls, and smart updates that adjust dimensions without re-generating the entire model. Its benchmark showcase includes complex models like a V8 engine and a radial aircraft engine, demonstrating its capability. CADAM targets 3D printing and CAD enthusiasts, with a live demo and a local development setup.
CADAM takes natural language prompts or reference images and uses AI models (e.g., Anthropic Claude) to generate fully parametric OpenSCAD code. It extracts key dimensions as adjustable parameters, previews the model in real-time using Three.js and React Three Fiber, and exports to .STL, .SCAD, or .DXF. The backend relies on Supabase for auth, storage, and billing, and the app is served via TanStack Start server routes. The workflow involves setting up with npm install, running a local Supabase instance, and configuring API keys for Anthropic, OpenRouter, OpenAI, Google, and FAL for AI generation.
- 3D printing hobbyists who want to turn a quick verbal idea into a printable model without learning CAD software.
- Mechanical engineers who need rapid prototyping of parts and export .STL files for fabrication.
- Educators who want to demonstrate CAD design principles to students using natural language and real-time previews.
- Makers who wish to generate parametric model libraries (e.g., a V8 engine or planetary gearbox) for further tweaking and printing.
- Software developers who want to integrate similar CAD generation capabilities into their own apps, given the open-source and self-hostable nature.
- Designers in workshop settings who need quick design iterations without installing heavy software.
What are this agent's strengths and limitations?
- Runs entirely in the browser via WebAssembly, no local CAD installation required.
- Produces truly parametric OpenSCAD code that is fully editable and exportable to STL, SCAD, and DXF.
- Supports both natural language and image inputs, covering a wide design scope.
- Includes a benchmark suite demonstrating complex machines like V8 engines and turbofans.
- Modern tech stack (React, TanStack Start, Supabase, Anthropic Claude) allows customization and extension.
- Relies on multiple external AI API providers (Anthropic, OpenRouter, OpenAI, Google) and FAL for image generation, incurring API costs and provider lock-in.
- Complex local development setup with Supabase, ngrok, and multiple API keys.
- Core AI generation is tightly coupled to specific providers; switching providers requires code changes.
- Documentation not fully covering all deployment scenarios, e.g., production-grade steps.
- GPL-3.0 license may restrict certain commercial use or proprietary integration.
- Browser-based WebAssembly OpenSCAD may not match desktop CAD performance and precision.
How do you install or deploy this agent?
First, clone the repository and install dependencies:
git clone https://github.com/Adam-CAD/CADAM.git
cd CADAM
npm installPrerequisites include Node.js (^20.19.0 or >=22.12.0), npm 10+, Supabase CLI, and ngrok for local webhook development. Start Supabase:
npx supabase startNext, copy .env.local.template to .env.local and fill in required keys: VITE_SUPABASE_ANON_KEY, VITE_SUPABASE_URL, plus server-side variables ANTHROPIC_API_KEY, OPENROUTER_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY, FAL_KEY, SUPABASE_SERVICE_ROLE_KEY, BILLING_SERVICE_URL, BILLING_SERVICE_KEY, ENVIRONMENT="local", ADAM_URL, and WEBHOOK_BASE_URL.
How do you use this agent?
After setup, start Supabase functions and the development server:
npx supabase functions serve --no-verify-jwt
npm run devFor production or local dev, configure a public URL (e.g., using ngrok) for webhooks, set WEBHOOK_BASE_URL to that URL, and ensure ENVIRONMENT="local". Then visit http://localhost:3000 to use the app. Input a description or upload an image; CADAM will generate a parametric model with sliders for adjustments, and you can export to .STL, .SCAD, or .DXF. A live demo is also available at https://adam.new/cadam.