Lisp 기계에서 진화한 CAD Antimony, 저자 Matt Keeter가 해커뉴스에 직접 '2016년부터 유지보수 줄였다, stibium 포크가 더 활발'이라고 밝혀
- Antimony는 CAD가 드래프팅 테이블이 아니라 Lisp 기계에서 진화했다면 어떤 모습일지를 구현한 도구로, 노드를 DAG로 연결해 솔리드를 만들고 각 노드는 Python 3.x 스크립트로 정의함
- 지오메트리 엔진은 functional representation을 써서 합집합, 교집합, 차집합 같은 불리언 연산에 적합하고, 형상을 셰이딩된 비트맵으로 렌더링해 3D 뷰포트에 blit함
- 2.5D 공정용 heightmap과 3D 제조용 .stl 내보내기를 지원하며, stl 내보내기에는 모서리와 꼭짓점을 날카롭게 유지하는 feature detection이 들어 있음
- 저자 Matt Keeter가 해커뉴스에 직접 댓글을 달아 2016년쯤부터 유지보수를 줄였다고 밝혔고, 더 활발한 포크 nsfm/stibium이 있지만 LLM 도움을 많이 받은 코드라 자기 자신은 써보지 않았다고 함
- 댓글창에는 OpenSCAD 릴리스 후보, PythonSCAD, CADquery, Build123D 같은 code CAD 프로젝트와 Keeter의 후속작 Halfspace, libfive, Haskell 기반 waterfall-cad까지 목록이 이어짐
Hacker News opinions
(2015) 라벨 좀 붙여주면 좋겠다. 나는 2016년쯤부터 유지보수를 줄여왔는데, 지금은 nsfm/stibium 쪽 포크가 더 활발하게 관리되고 있다. 다만 그 포크는 LLM 도움을 엄청 받아서 만든 코드라 내가 직접 써보진 않았고 변경사항도 자세히 보진 않았다. 그래도 저자랑 연락해봤는데 프로젝트 성공에 진심인 사람 같더라.
예전에 이 작업을 처음 봤을 때 이게 어떻게 돌아가는 건지 전혀 몰라서 충격이었는데, 까먹었다가 어제 다시 발견해서 반가웠다. 그때 내 생각이 많이 바뀌었음, 고맙다.
코드 기반 CAD가 OpenSCAD처럼 대개 별로라고 말하려고 했는데 이건 꽤 괜찮아 보인다. SolveSpace의 2D 스케처 지원이랑 bevel, fillet만 들어가면 진짜 쓸 만해질 듯.
FluidCAD 만드는 사람인데, JS 스크립팅을 쓰긴 하지만 모든 기능을 UI로 할 수 있게 만들었다. 제약 기반 2D 스케처에 타임라인, 어셈블리도 있으니 한번 봐라.
코드 기반 파라메트릭 CAD가 왜 그렇게 싫은 거임? 꽤 괜찮은 접근인데. 어떤 축에서는 GUI CAD보다 훨씬 강력하고, 복잡한 형상을 빠르게 만들 수 있다.
초기 KiCad 파일 포맷 파싱해본 사람이면 저 S-expression 괄호랑 따옴표가 규칙이라기보다 가이드라인이었다는 걸 알 거다. 존경한다. 요즘 KiCad는 전부 S-expression이고 수년째 파싱 문제 없이 MCAD로 잘 넘어간다.
요즘 code CAD 쪽은 AI 붙은 새 프로젝트까지 생겨서 엄청 밀리는 중이다. 오래 기다린 OpenSCAD 업데이트 릴리스 후보가 나왔고, 변수 값을 바꾸고 싶으면 PythonSCAD, 그리고 CADquery, Build123D도 있다. Matt Keeter의 Halfspace도 최근에 나왔는데 여기선 토론이 별로 없었다.
Keeter가 그 사이에 만든 libfive와 스튜디오도 있다. Haskell 좋아하면 waterfall-cad도 강력 추천한다. 레거시 CAD 파일을 어떻게 쓸 수 있게 만들까 하는 쪽에서 cadmpeg도 만들고 있다.
근데 이 프로그램들 파편화가 문제되지 않나? 매일 새 드래프팅 툴 포스트가 올라오는데, vibe-coded 툴로 파일 만들어놨다가 지원 끊기면 어쩌려고. 통합 비용까지 생각하면 그냥 Fusion이나 OnShape에 남는 게 나을 수도 있다.
fillet을 엣지에 어떻게 적용함? OnShape로 CAD 배우는 중인데 하고 싶은 건 다 쉽게 됐다. 순수 CSG 방식은 특정 연산이 훨씬 복잡해진다고 들었다. GIMP랑 포토샵 관계처럼 소프트웨어마다 목표를 낮춰 잡아야 하는 게 아쉽지만, FreeCAD 최신 업데이트를 보면 꾸준히 나아지고 있다.
코드 CAD랑 OnShape, Solidworks 같은 스케치 기반 CAD를 합친 시스템은 없나? FluidCAD가 그걸 잘 하는데 아직 초기 개발이라 좀 더 지켜봐야 한다. 러스트 오픈소스인 cadrs.net도 있다.
AI로 CAD 모델링하고 있는데 결과는 의도에 꽤 가깝게 나온다. 다만 실제 부품에 맞추려고 파라미터랑 피처를 만지는 데 시간이 많이 든다. 이미지나 영상 생성과 달리 AI가 CAD 모델링 문제 자체를 풀어주진 않는다.
Astra로 설명해서 모델링해봤는데 원하는 것에 꽤 가깝게 나왔다. 근데 그 단순한 걸 만드는 데 처리 시간만 40분쯤 걸렸다. Fusion을 잘 다뤘다면 훨씬 빨리 끝냈을 것.
본문의 'Lisp 기계에서 진화한 CAD'라는 표현은 좀 아이러니다. 실제로 가장 많이 쓰이는 AutoCAD는 AutoLISP이라는 Lisp 방언을 40년 넘게 네이티브 대안 런타임으로 지원했고, 다른 벤더들도 호환을 넣었다. 나는 새 사용자들한테 드래프팅 테이블 은유와 월드 모델 은유의 차이를 가르치는 데 시간을 많이 쓴다.
Ivan Sutherland의 Sketchpad(1963)가 Lisp 기계보다 훨씬 앞선다. Lisp 기계가 1970년대 중반 MIT에서 나왔을 때 Evans & Sutherland는 이미 2~3세대 CAD 제품을 만들고 있었다. 여러 그래픽 좌표계를 쓰던 그 시스템이 겹치는 창과 데스크톱 은유의 기원인 것 같다.
RapidCAM.app 만드는 사람인데 컨셉 좋다. Antimony를 여기까지 만드는 데 얼마나 많은 작업이 필요했을지 알 것 같다.