Y컴비네이터(W25) 지원 스타트업이 텍스트나 이미지만으로 3D CAD 모델을 생성하는 오픈소스 웹 앱 '아담(Adam)'을 공개했습니다. 설치 없이 브라우저(WebAssembly)에서 즉시 실행되며, 슬라이더를 통한 파라미터 제어와 다양한 포맷(STL, SCAD 등) 내보내기를 지원합니다. V8 엔진 등 매우 복잡한 기계 장치까지 단 몇 초 만에 완전한 파라미터 모델로 구현할 수 있어 제조 및 3D 모델링 실무자들에게 큰 반향을 일으키고 있습니다.
번역된 본문
[런치 알림: Adam (Y컴비네이터 W25) - 오픈소스 AI CAD]
⛸️ 오픈소스 텍스트-투-CAD(Text to CAD) 웹 앱 ⛮
🌐 라이브 체험하기 👉 adam.new/cadam
설치 없이 웹 브라우저에서 바로 CAD 모델을 단 몇 초 만에 생성하세요.
✨ 주요 기능
🤖 AI 기반 생성: 자연어나 이미지를 3D 모델로 변환합니다.
🎛️ 파라미터 제어: 인터랙티브 슬라이더로 치수를 즉시 조절할 수 있습니다.
📦 다양한 내보내기 포맷: .STL, .SCAD 또는 .DXF 파일로 내보낼 수 있습니다.
🌐 웹 브라우저 기반: WebAssembly를 사용하여 브라우저 내에서 완벽하게 실행됩니다.
📚 라이브러리 지원: BOSL, BOSL2 및 MCAD 라이브러리를 포함하고 있습니다.
🎯 핵심 기능
[자연어 입력] 일상적인 언어로 3D 모델을 설명합니다.
[이미지 참조] 이미지를 업로드하여 모델 생성을 유도할 수 있습니다.
[실시간 미리보기] Three.js를 사용하여 모델의 변경 사항을 즉시 확인할 수 있습니다.
[파라미터 추출] 조정 가능한 치수를 자동으로 식별합니다.
[스마트 업데이트] AI 재생성 없이도 파라미터를 효율적으로 변경할 수 있습니다.
[커스텀 폰트] 모델 내 텍스트를 위해 기본 Geist 폰트를 지원합니다.
📺 스크린샷
🧪 벤치마크
단순한 텍스트 설명 한 줄만으로 CADAM이 어떤 결과물을 만들어내는지를 보여주는 쇼케이스입니다. 여러 부품으로 이루어진 복잡한 기계 장치부터 깔끔한 파라미터 부품까지 모두 구현 가능합니다. 아래의 각 모델은 표시된 프롬프트를 기반으로 시작되었으며, .STL, .SCAD 또는 .DXF로 내보낼 준비가 된 완전한 파라미터형 OpenSCAD 코드로 생성되었습니다. 각 소스 코드와 간단한 설명은 benchmarks/ 폴더에 있으며, 회전 미리보기는 benchmarks/render.sh로 렌더링되었습니다.
복잡한 기계 및 어셈블리
V8 엔진: 완전한 V8 내연기관 (90도 V자형으로 된 4기통 뱅크 2개, 리브가 있는 밸브 커버가 있는 실린더 헤드, 중앙부의 흡기 매니폴드, 각 뱅크를 따라 내려가는 배기 헤더, 밸런스 웨이트가 있는 크랭크축, 피스톤 및 커넥팅 로드, 전면 풀리 및 오일 팬 포함). (파라미터: 22개 치수, 8가지 색상)
9기통 성형 항공기 엔진: 중앙의 둥근 크랭크케이스 주위에 9개의 핀이 있는 실린더가 별 모양으로 균일하게 배치된 9기통 성형 항공기 엔진을 설계합니다. 각 실린더에는 겹겹이 쌓인 냉각 핀과 돔형 실린더 헤드가 있으며, 전방에는 중앙 프로펠러 샤프트 허브가 있습니다. (파라미터: 15개 치수, 6가지 색상)
터보팬 제트 엔진: 내부를 들여다볼 수 있는 전방 팬, 바이패스 카울, 압축기/터빈 단계가 있는 내부 코어, 출구 안내 날개 및 배기 플러그를 갖춘 완전한 고바이패스 터보팬입니다. (파라미터: 2개 치수, 10가지 색상)
축류 터빈 블리스크(Blisk): 제트 엔진 압축기 단계와 같은 축류 터빈 블리스크(블레이드가 있는 디스크)를 모델링합니다. 샤프트 구멍이 있는 중앙 허브와 외곽 둘레에 약 28개의 얇은 에어포일 블레이드가 한 줄로 있으며, 각 블레이드는 실제 터빈 블레이드처럼 뿌리에서 끝으로 갈수록 비틀려 있습니다. (파라미터: 14개 치수, 1가지 색상)
파라미터 기본 부품
비틀린 육각형 화병: 밑면 70mm에서 입구 50mm로 가늘어지는 약 150mm 높이의 빈 껍질인 비틀린 육각형 화병을 설계합니다. 바닥에서 입구까지 120도 비틀린 육각형 단면, 2mm 두께의 벽 및 막힌 바닥을 가집니다. (파라미터: 6개 치수, 1가지 색상)
널링된 컨트롤 노브: 다이아몬드 널링 그립, 상단의 돌출된 포인터 표시, 6mm D자형 샤프트 구멍 및 측면을 관통하는 M3 세트 스크루 구멍이 있는 직경 40mm, 높이 22mm의 널링된 컨트롤 노브를 만듭니다. (파라미터: 15개 치수, 2가지 색상)
육각 볼트 및 너트 - 실제 나사: 실제 나사가 있는 길이 45mm의 M12 육각 볼트와 표준 육각 머리, 그리고 일치하는 육각 너트를 나란히 배치하여 만듭니다. (파라미터: 3개 치수, 2가지 색상)
허니콤 경량화 브래킷: 두께 5mm의 80x80mm 플랜지를 가진 90도 각도 마운팅 브래킷을 설계합니다. 양면에 육각형 허니콤 절단 패턴으로 가벼워졌으며, 4개의 M5 마운팅 홀과 둥근 모서리(필렛) 안쪽 구석을 가집니다. (파라미터: 13개 치수, 1가지 색상)
NACA 2412 테이퍼 날개: 실제 NACA 2412 에어포일을 사용하여 테이퍼형 항공기 날개 섹션을 모델링합니다. 200mm 스팬에 걸쳐 120mm 루트 코드가 80mm 끝 코드로 가늘어지며, 날개 길이 방향의 스파 튜브 두 개와 몇 개의 경량화 구멍이 있습니다. (파라미터: 9개 치수, 1가지 색상)
나사가 있는 병 및 돌려여는 뚜껑: 목 부분에 외측 나사가 있는 작은 보관 병과 내측 나사가 있는 일치하는 뚜껑을 만듭니다. 병 몸체는 직경 60mm, 높이 70mm, 벽 두께 2.5mm이며, 뚜껑이 풀린 상태로 병 옆에 놓여있는 모습을 보여줍니다.
⛮ The Open Source Text to CAD Web App ⛮ 🌐 Try it live 👉 adam.new/cadam . Generate a CAD model in seconds, right in your browser. No install required. ✨ Features 🤖 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 🎯 Key Capabilities 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 📺 Screenshots 🧪 Benchmarks 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 . Complex machines & assemblies 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 Parametric fundamentals 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 🚀 Quick Start # 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 📋 Prerequisites Node.js ^20.19.0 or >=22.12.0, with npm 10+ Supabase CLI ngrok (for local webhook development) 🔧 Setting Up Environment Variables 1. Frontend Environment: 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' 2. Server Environment: 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 🌐 Setting Up ngrok for Local Development 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. 💻 Development Workflow Install Dependencies npm i Start Supabase Services npx supabase start npm run dev 🛠️ Built With Frontend: React 19 + TypeScript + TanStack Start + Vite 3D Rendering: Three.js + React Three Fiber CAD Engine: OpenSCAD WebAssembly Backend: TanStack Start server routes + Supabase PostgreSQL/Auth/Storage AI: Anthropic Claude API Styling: Tailwind CSS + shadcn/ui Libraries: BOSL, BOSL2, MCAD 🤝 Contributing 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 . 🙏 Credits This app wouldn't be possible without the work of: OpenSCAD openscad-wasm openscad-playground openscad-web-gui dingcad 📄 License 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 . 🌟 Star History Live chart by RepoStars — click for the interactive version. ⭐ If you f