CADAM 소개
기계 부품이나 시제품을 설계할 때 CAD 소프트웨어의 진입 장벽은 꽤 높습니다. 스케치, 구속 조건, 모델링 트리에 익숙해지기까지 시간이 걸리고, 치수 하나를 바꾸려면 어디를 수정해야 하는지 다시 찾아야 합니다. 머릿속에 만들고 싶은 형상이 분명해도 그것을 도구의 조작으로 옮기는 과정이 만만치 않습니다.
CADAM은 자연어 설명을 입력하면 브라우저에서 곧바로 3D CAD 모델을 만들어 주는 오픈소스 text-to-CAD 웹 애플리케이션 입니다. 만들고 싶은 것을 평범한 문장으로 적거나 참고 이미지를 올리면, CADAM이 이를 파라메트릭(parametric) OpenSCAD 모델로 변환합니다. 생성된 모델은 슬라이더로 치수를 즉시 조정할 수 있고, .STL·.SCAD·.DXF 형식으로 내보내 3D 프린팅이나 후속 작업에 바로 쓸 수 있습니다.
설치 없이 adam.new/cadam에서 바로 사용할 수 있으며, 모든 처리가 WebAssembly로 브라우저 안에서 이뤄집니다. 본 게시물에서는 CADAM의 동작 방식, 주요 기능, 어떤 모델까지 만들 수 있는지, 그리고 직접 실행하는 방법을 정리합니다.
CADAM의 동작 방식
CADAM의 처리 흐름은 입력에서 내보내기까지 네 단계로 이어집니다. 사용자가 자연어 설명과 참고 이미지를 입력하면, Anthropic Claude API가 이를 OpenSCAD 코드로 변환합니다. 생성된 코드는 OpenSCAD WebAssembly 엔진으로 실행되어 Three.js 기반의 실시간 3D 미리보기로 표시되고, 마지막으로 .STL·.SCAD·.DXF 형식으로 내보냅니다.
이 과정에서 CADAM은 모델의 조절 가능한 치수를 자동으로 식별해 슬라이더로 노출합니다. 덕분에 치수를 바꿀 때마다 AI를 다시 호출해 전체를 재생성하지 않고, 파라미터만 효율적으로 갱신할 수 있습니다.
CADAM의 주요 기능
CADAM은 자연어 기반 생성과 파라메트릭 편집을 하나의 브라우저 환경에 담았습니다.
- AI 기반 생성 : 자연어와 이미지를 입력으로 받아 3D 모델을 만듭니다. 부품을 평범한 문장으로 설명하거나 참고 이미지를 올려 생성 방향을 안내할 수 있습니다.
- 파라메트릭 제어 : 모델에서 조절 가능한 치수를 자동으로 식별하고, 인터랙티브 슬라이더로 즉시 조정합니다. 파라미터 변경은 AI 재생성 없이 효율적으로 반영됩니다.
- 다양한 내보내기 형식 : 완성된 모델을
.STL,.SCAD,.DXF파일로 내보냅니다. - 브라우저 기반 실행 : OpenSCAD를 WebAssembly로 포팅해 별도 설치 없이 브라우저 안에서 모든 처리를 수행합니다.
- 라이브러리 지원 : BOSL, BOSL2, MCAD 라이브러리를 내장해 나사산, 기어 같은 복잡한 형상에 활용합니다.
실시간 미리보기는 Three.js로 그려지며, 모델 안에 텍스트를 넣을 때 쓰는 Geist 폰트도 기본 제공됩니다.
CADAM이 만들어내는 모델
CADAM 저장소의 benchmarks/ 디렉토리에는 한 줄의 자연어 설명에서 출발해 완성된 파라메트릭 모델 예시가 정리되어 있습니다. 단순한 부품부터 여러 부품이 맞물리는 기계 어셈블리까지 범위가 넓습니다. 예를 들어 90도로 배치된 두 뱅크에 실린더 헤드와 흡기 매니폴드, 크랭크샤프트를 갖춘 V8 엔진, 모듈 1.5의 헤링본 유성기어 단(선기어 18톱니, 유성기어 3개, 링기어 54톱니), 그리고 단면이 120도 비틀리는 육각 화병 같은 모델이 각각의 프롬프트와 함께 제시됩니다.



각 예시는 완전한 파라메트릭 OpenSCAD로 출력되어 그대로 .STL, .SCAD, .DXF로 내보낼 수 있습니다. 위 미리보기는 저장소의 benchmarks/render.sh로 렌더링한 것입니다.
CADAM 설치 및 사용법
브라우저에서 바로 쓰려면 adam.new/cadam에 접속하면 됩니다. 로컬에서 직접 실행하려면 Node.js 20.19 이상 또는 22.12 이상(npm 10+)과 Supabase CLI가 필요합니다.
git clone https://github.com/Adam-CAD/CADAM.git
cd CADAM
npm install
# Supabase 시작
npx supabase start
npx supabase functions serve --no-verify-jwt
# 개발 서버 시작
npm run dev
프런트엔드와 서버 환경 변수는 .env.local 파일에 설정하며, 모델 생성을 위해 ANTHROPIC_API_KEY 가 필요합니다. 그 외에 OpenRouter, OpenAI, Google, FAL 등의 키와 Supabase 키를 용도에 맞게 추가할 수 있습니다. 프로바이더 콜백과 로컬 스토리지 서명 URL을 위해 ngrok 같은 터널을 함께 사용합니다.
CADAM은 프런트엔드에 React 19와 TanStack Start, Vite를 쓰고, 3D 렌더링에 Three.js와 React Three Fiber, CAD 엔진으로 OpenSCAD WebAssembly를 사용합니다. 백엔드는 TanStack Start 서버 라우트와 Supabase(PostgreSQL·인증·스토리지)로 구성되며, 모델 생성에는 Anthropic Claude API를 활용합니다.
CADAM의 라이선스
CADAM은 GNU General Public License v3.0(GPLv3)로 공개되어 있습니다. GPLv3는 카피레프트(copyleft) 라이선스로, CADAM을 기반으로 한 파생 저작물을 배포할 때 동일한 GPLv3로 소스 코드를 공개해야 합니다. 이 배포본은 GPLv3인 openscad-web-gui 의 일부 코드를 가져왔고, GPL v2 이상으로 배포되는 OpenSCAD WASM 바이너리를 결합 저작물의 일부로 포함하고 있습니다.
CADAM 웹 데모
CADAM 프로젝트 GitHub 저장소
더 읽어보기
-
CAD Skills: CAD와 로봇 설계를 자동화하는 Codex 및 Claude Code 등 AI 에이전트 스킬 모음
-
[GN⁺] SGS-1 - 구조화 CAD를 위한 최초의 생성형 모델 (The first generative model for structured CAD.)
-
Modly: 이미지 한 장으로 3D 모델을 생성하는 로컬 실행 데스크톱 앱 (feat. Lightning Pixel)
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()
