라떼군 이야기
"마우스 클릭은 이제 그만": Rust 코드로 3D 모델을 설계하는 'vcad' 이야기
TL;DR GUI CAD의 반복 작업과 버전 관리의 어려움을 해결하기 위해, Rust 코드로 3D 모델을 정의하는 라이브러리 ‘vcad’가 등장했습니다. CSG(Constructive Solid Geometry) 방식을 통해 직관적인 연산자 오버로딩으로 모델링하며, 타입 안정성과 유닛 테스트, 그리고 AI 에이전트와의 통합까지 고려한 ‘Code as CAD’ 접근법을 제시합니다.
3D 프린팅이나 하드웨어 설계를 할 때, GUI 기반 CAD 툴의 반복적인 클릭 작업과 ‘Ctrl+Z’의 굴레에 지친 적이 있나요? 소프트웨어 개발에서는 당연한 버전 관리와 자동화가 하드웨어 설계에서는 여전히 어려운 과제였습니다. 여기, 펌웨어를 짜듯이 부품을 설계하고, Rust의 강력한 타입 시스템과 성능을 활용해 하드웨어 설계를 ‘코드의 영역’으로 가져온 흥미로운 프로젝트 vcad를 소개합니다.
핵심 내용
저자는 부품 설계를 코드로 작성하여 버전 관리와 파라메트릭 수정(변수 하나만 바꾸면 전체 재생성)을 가능하게 만들었습니다. vcad는 기본 도형(Primitives)에 더하기(+), 빼기(-) 같은 연산자를 사용하여 직관적으로 형상을 결합하는 CSG 방식을 채택했습니다. 예를 들어 plate - bore 코드는 판에서 구멍을 뚫는 작업을 명확히 표현합니다. 또한 Rust의 타입 시스템을 통해 치수 오류를 컴파일 단계에서 방지하고, 유닛 테스트로 부품의 부피나 표면적을 검증할 수 있습니다. 단순 STL 뿐만 아니라 재질 정보가 포함된 GLB 내보내기도 지원합니다.
기술적 인사이트
기술적으로 vcad는 기존의 OpenSCAD와 유사해 보이지만, 내부적으로 C++ 라이브러리인 manifold를 Rust로 바인딩하여 성능과 메쉬의 무결성(watertight)을 보장한다는 점에서 차별화됩니다. 스크립트 언어의 느린 속도나 부동소수점 문제를 Rust의 제로 코스트 추상화로 해결했습니다. 가장 돋보이는 통찰은 ‘AI 에이전트 친화적 설계’입니다. 텍스트 기반의 명확한 API 덕분에 Claude 같은 AI가 문서를 읽고, 코드를 생성하고, 렌더링까지 수행하는 자동화 파이프라인(MCP)을 구축하기에 최적화되어 있습니다.
시사점
이 프로젝트는 하드웨어 설계 프로세스에 소프트웨어 엔지니어링의 핵심인 CI/CD, 코드 리뷰, 유닛 테스트를 도입할 수 있는 실질적인 방법을 제시합니다. 실무적으로는 복잡한 파라메트릭 모델을 팀원들과 Git으로 공유하며 협업할 수 있고, AI를 활용해 ‘말하는 대로 설계되는’ 워크플로우를 구축할 수 있습니다. 특히 3D 프린팅을 위한 반복적인 프로토타이핑 과정에서 설계 수정 비용을 획기적으로 낮출 수 있는 잠재력이 있습니다.
아직 초기 버전(v0.1)이라 필렛(Fillet) 등 고급 기능은 부족하지만, 핵심인 CSG 엔진은 견고합니다. “하드웨어 설계도 소프트웨어처럼 테스트하고 리팩토링할 수 있을까?“라는 질문에 vcad는 매우 강력한 긍정의 답을 던지고 있습니다. 앞으로 GUI 없는 CAD의 시대가 어떻게 열릴지 주목해볼 만합니다.