TECH 으로 돌아가기
TECH HACKER NEWS 2026.11.04 15:48 8분 읽기 25 READS

CAD가 도면이 아니라 프로그래밍에서 출발했다면? Antimony가 보여주는 평행우주

3D 프린터로 뭔가 뽑아보려고 CAD 프로그램을 열었다가, 버튼이 수백 개 달린 화면 앞에서 얼어붙은 적 있으신가요? 오늘 소개할 Antimony는 그런 프로그램과 출발점이 아예 다른 CAD 도구예요. 만든 사람은 Matt Keeter인데요, 이 프로젝트를 '드로잉 테이블이 아니라 Lisp 머신에서 진화한 평행우주의 CAD'라고 소개해요. 2015년에 소개된 프로젝트지만, 요즘 코드로 모델링하는 CAD가 다시 늘고 있어서 지금 봐도 낡은 느낌이 없거든요.

먼저 저 표현부터 풀어볼게요. 드로잉 테이블은 제도사가 자와 연필로 도면을 그리던 책상이에요. 지금 쓰는 CAD 대부분은 이 작업을 컴퓨터로 옮겨온 데서 시작했어요. 선을 긋고, 치수를 넣고, 돌출시키는 흐름이 그 흔적이죠. 반면 Lisp 머신은 1970~80년대에 Lisp 언어를 돌리려고 만든 전용 컴퓨터인데요, 시스템 전체가 살아 있는 코드라서 사용자가 실행 중에 뭐든 들여다보고 고칠 수 있었어요. 그러니까 Antimony의 질문은 이거예요. CAD가 '그리는 도구'가 아니라 '프로그래밍 환경'으로 자랐다면 어떤 모습이었을까?

도형을 수식으로 표현한다는 것

Antimony의 핵심은 f-rep(functional representation, 함수 표현)이에요. 이게 뭐냐면, 도형을 점이나 면의 목록으로 저장하지 않고 '좌표를 넣으면 그 점이 안쪽인지 바깥쪽인지 알려주는 함수'로 표현하는 방식이에요.

예를 들어 반지름 1인 원은 f(x, y) = x² + y² - 1로 쓸 수 있어요. 값이 음수면 안쪽, 양수면 바깥쪽, 0이면 딱 경계죠. 이렇게 해두면 불리언 연산이 놀랄 만큼 단순해져요. 두 도형의 합집합은 min(f, g), 교집합은 max(f, g), 빼기는 max(f, -g)면 끝이거든요. 메시(삼각형 조각 모음) 기반 도구에서는 두 표면이 만나는 지점을 계산하다가 구멍이 나거나 면이 꼬이는 문제가 흔한데요, 함수 표현에서는 수식을 한 겹 더 감싸는 걸로 해결돼요. 도형을 비틀거나 늘리는 것도 입력 좌표를 먼저 변형하면 되니까, 일반 CAD에서 까다로운 작업이 오히려 쉬워져요.

대신 화면에 그리거나 3D 프린터로 보내려면 이 함수를 계산해서 이미지나 메시로 바꿔야 해요. 공간을 잘게 나눠 값을 구해야 하는데, 여기서 구간 연산(interval arithmetic)이 쓰여요. 점 하나가 아니라 구간 전체를 넣어서 '이 영역은 전부 바깥쪽이네' 하고 확인되면 통째로 건너뛰는 거죠. 책을 다 읽는 대신 목차를 보고 상관없는 장을 넘기는 것과 비슷해요.

노드 그래프와 파이썬

두 번째 특징은 인터페이스예요. Antimony에서 모델은 노드 그래프로 표현돼요. 원 노드의 출력을 빼기 노드에 연결하고, 그 결과를 다시 다른 노드로 넘기는 식이죠. 값 하나를 바꾸면 연결된 노드들이 다시 계산돼서 결과가 바로 갱신돼요. 스프레드시트에서 셀 하나를 고치면 수식이 따라 바뀌는 것과 같은 원리예요.

재미있는 건 노드 하나하나가 파이썬 스크립트라는 점이에요. 어떤 입력을 받고 무엇을 출력할지를 스크립트가 선언하고, 앱 안에서 바로 고칠 수 있어요. 기본 도형조차 고정된 기능이 아니라 열어볼 수 있는 코드라서, 필요한 도구가 없으면 직접 만들면 되는 거죠. Lisp 머신의 '뭐든 고칠 수 있다'는 정신이 여기서 드러나요. 3D 화면에서 핸들을 끌어 값을 바꿀 수도 있어서 코드와 직접 조작을 오갈 수 있고요.

다른 CAD 도구와 비교하면

주류 CAD인 SolidWorks나 Fusion 360은 B-rep(경계 표현)을 써요. 도형을 면과 모서리의 정확한 수학적 정의로 저장하는 방식이라 제조 현장에서 치수를 다루기 좋고, 수십 년간 쌓인 생태계도 탄탄하죠. 코드로 모델링한다는 점에서 닮은 OpenSCAD는 스크립트를 쓰고 결과를 확인하는 흐름이고 내부적으로는 메시를 다뤄요. CadQuery는 파이썬으로 B-rep 커널을 조작하고요. 노드 방식으로는 Rhino의 Grasshopper나 Blender의 지오메트리 노드가 가까워요.

Antimony는 '함수 표현 + 노드 그래프 + 파이썬'이라는 조합이 독특해요. 다만 f-rep에도 약점이 있어요. 날카로운 모서리를 메시로 정확히 옮기기 어렵고, 기존 CAD 파일과 주고받기 불편하고, 복잡해질수록 계산 비용이 커지거든요. 그래서 범용 CAD를 대체했다기보다 아이디어를 보여준 프로젝트로 보는 게 맞아요.

그 아이디어는 계속 이어지고 있어요. Keeter는 이후 libfive로 이 방향을 더 파고들었고, 복잡한 함수 표현 도형을 GPU로 렌더링하는 연구도 발표했어요. 산업 쪽에서는 nTop 같은 도구가 격자 구조처럼 메시로 다루기 버거운 형상에 이런 암시적 모델링을 쓰고 있고요. 셰이더 아트에서 많이 쓰는 SDF(거리 함수)도 같은 계열이라, Shadertoy를 구경해 본 분이라면 이미 이 세계를 본 셈이에요.

한국 개발자에게 주는 시사점

당장 회사 제품 설계를 Antimony로 바꿀 일은 없을 거예요. 오래된 프로젝트라서 지금 쓰려면 빌드가 되는지부터 확인해 봐야 하고요. 그래도 가져갈 만한 게 세 가지 있어요.

첫째, 3D 프린터 부품이나 키보드 케이스처럼 치수를 바꿔가며 여러 버전을 뽑는 작업이라면 코드 기반 CAD가 정말 편해요. git으로 버전 관리까지 되니까요. 둘째, 그래픽스나 게임 쪽을 공부한다면 SDF는 꼭 익혀둘 만해요. min과 max로 도형을 합쳐보는 경험을 한 번 하면 렌더링을 보는 눈이 달라지거든요. 셋째, CAD를 넘어서는 교훈인데요, 표현 방식을 바꾸면 어려운 문제가 쉬워진다는 거예요. 메시에서 골치 아팠던 불리언 연산이 함수 표현에서는 min 한 줄이 되는 것처럼, 내 프로젝트의 복잡한 로직도 데이터 모델을 바꾸면 훨씬 단순해질 수 있어요.

마무리

Antimony는 '도구가 왜 지금 모습이 됐을까'를 되묻게 만드는 프로젝트예요. 우리가 당연하게 쓰는 소프트웨어도 사실은 역사적 우연의 결과일 수 있다는 거죠.

여러분이 매일 쓰는 도구 중에, 출발점이 달랐다면 완전히 다른 모습이었을 것 같은 게 있나요? 코드로 3D 모델링을 해보셨다면 어떤 도구가 좋았는지도 궁금해요!


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://www.mattkeeter.com/projects/antimony/3/
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...