Sandflow-ai/sand3d는 3D 물체를 짧은 파이썬 프로그램으로 쓰는 라이브러리입니다. Blender의 bpy 위에서 돌고, LLM이 쓰기 좋게 설계했습니다. Apache-2.0 라이선스이고, 2026년 11월 3일 공개돼 11월 7일 기준 깃허브 스타 766개입니다.
세탁기 한 대가 38줄
README의 대표 예시는 드럼 세탁기입니다. 몸체, 드럼, 유리와 손잡이가 달린 문, 세제 서랍, 다이얼이 각각 이름 붙은 부품이고, 관절 네 개가 움직임을 정합니다.
door = s3d.group("door", ring, glass, handle)
s3d.joint("door_hinge", door, hinge, axis="-Z", range=(0, 143))
s3d.joint("drum_spin", drum, front.move(0, 400), kind="continuous")
s3d.joint("drawer_slide", drawer, top_band.move(150), kind="prismatic", axis="+X", range=(0, 200))
공식 갤러리에서 재생 버튼을 누르면 문이 열리고 드럼이 돕니다. 냉장고, 스케이트보드, 관절이 43개인 키보드도 있습니다. 부품을 누르면 그 부품을 만든 코드가 밝아집니다.
왜 LLM용인가
- 짧다: 같은 부품을 Blender 파이썬, CadQuery, FeatureScript로 쓸 때보다 토큰이 2~6배 적게 듭니다.
- API 전체가 프롬프트 하나: 약 3,600토큰입니다.
- 좌표 대신 이름: 부품, 모서리, 면을 손으로 계산한 좌표가 아닌 이름으로 고릅니다.
- 결정적: 같은 프로그램은 비트 단위로 같은 메시를 만듭니다.
내보내기
한 줄로 내보내고, 확장자가 형식을 정합니다. 길이 단위는 미터입니다.
| 형식 | 쓰는 곳 |
|---|---|
| GLB | 웹, 뷰어, 게임 엔진 |
| URDF | ROS, PyBullet, MuJoCo, Isaac |
| USDA | Omniverse, Isaac Sim, USD 파이프라인 |
| OBJ, STL | 아무 3D 도구, 3D 프린터 슬라이서 |
설치
pip install sand3d # 또는 uv add sand3d
Blender가 bpy 모듈로 함께 깔립니다. Python 3.13(권장) 또는 3.11을 쓰세요. 3.12에는 bpy 휠이 없고, Intel 맥은 Blender 5.2부터 휠이 없어 3.11을 써야 합니다.
Claude에게 주는 법
docs/api.md를 시스템 프롬프트나 대화에 넣으면 됩니다. 규칙, 모든 함수 시그니처, 예제가 약 3,600토큰에 들어 있습니다. 부품이 여러 개인 물체는 가이드라인의 여덟 가지 규칙(계획 먼저, 그다음 세부, 그다음 부품)을 함께 주세요.
오늘 할 일
Claude에게 API 문서를 주고 책상 위 물건 하나를 만들어 달라고 해 보세요. 머그컵이나 스탠드 조명처럼 부품 두세 개짜리가 시작하기 좋습니다.
쇼츠로 보기
이 글은 비치콤버스 쇼츠 No.40의 짝 글입니다. 짧은 주소 beachcombers.co.kr/s/40.