Shpigford/nurb

Agentic CAD for 3D printing

nurb – 3D 프린팅을 위한 AI 기반 CAD 파트너

무엇인가요nurb은 Python 기반 도구(맥OS 네이티브 GUI 포함)로, 이미 구독 중인 대규모 언어 모델(Large Language Model)과 대화하여 FDM 3D 프린팅에 사용 가능한 실제 B-Rep CAD 기하학을 생성할 수 있습니다. AI는 @part 데코레이터가 붙은 작은 Python 함수를 작성합니다. nurb은 이 코드를 Open CASCADE (OCCT) 커널에서 실행하고, 생성된 실체를 13개의 인쇄 가능성 규칙에 따라 검사하며, three.js 뷰어에서 실시간으로 모델을 표시하고, 슬라이서 설정을 내장한 인쇄 준비 완료된 3MF(또는 STL/STEP/GLB)로 내보낼 수 있습니다.


핵심 아이디어

요소 작동 방식 (README에 설명됨)
프롬프트 → 모델 자연어 요청을 입력합니다 (예: "내 쇼프락 호스를 테이블 사의 먼지 포트에 연결하는 어댑터를 만들어줘"). AI는 기존 구독(GPT-4, Claude 등)을 사용하여 @part 데코레이터가 붙은 Python 함수를 생성합니다.
실제 CAD 커널 생성된 함수는 build123dOCCT 커널 위에서 작동하므로, 메시가 아니라 진짜 B-Rep 실체가 생성됩니다.
실시간 뷰어 내장된 three.js 뷰어는 모델이 변경될 때마다 즉시 업데이트되며, 카메라 위치는 고정되고, 단면 평면으로 모델을 절단할 수 있습니다.
파라미터 슬라이더 부품 함수의 기본 인수가 UI 슬라이더로 변환되며, 슬라이더를 움직이면 모델이 업데이트되고 AI는 새로운 값을 인식합니다.
인쇄 가능성 검사 13개의 하드코딩된 규칙(오버행, 얇은 벽, 떠 있는 섬, 왜곡 위험, 안정성 등)이 정확한 실체에 대해 실행됩니다. 위반된 면에 결과가 표시됩니다.
비용 및 시간 추정 이미 설치된 슬라이서(OrcaSlicer 또는 Bambu Studio)를 호출하여 인쇄 시간과 필라멘트 무게를 추정합니다.
강도 시뮬레이션 복셀 기반 응력 분석을 통해 파손 무게 추정치를 제공하고 하중 집중을 시각화합니다.
현실 세계 적합성 스캔 데이터나 측정값을 가져올 수 있으며, AI는 추측 대신 이 차원을 강제로 사용합니다.
내보내기 기본 내보내기는 내장된 인쇄 설정이 포함된 3MF이며, STL, STEP, GLB는 플래그 하나로 가능합니다.
오프라인 우선 모든 모델링, 검사, 뷰잉은 로컬에서 실행되며, 클라우드 계정은 필요하지 않습니다.

설치 방법

플랫폼 방법
macOS (Apple Silicon 또는 Intel) 최신 GitHub 릴리스에서 서명된 .dmg를 다운로드합니다.
명령줄 (모든 OS) `curl -fsSL https://nurb.dev/install.sh
대체 방법 uv tool install nurb 또는 pip install nurb로 Python 패키지를 설치한 후, npx skills add shpigford/nurb --skill nurb로 스킬을 선택한 AI 에이전트 프레임워크에 등록합니다.

일반적인 워크플로우

  1. 시작 – GUI를 실행(nurb dev)하거나 CLI(nurb new <name>)를 사용합니다. 프로젝트는 단순히 parts/ 디렉터리를 포함하는 폴더입니다. 2. 프롬프트 – 내장 채팅 또는 자체 터미널 기반 에이전트를 통해 AI에게 말합니다. AI는 parts/<name>.py@part 함수를 생성합니다. 3. 반복 – 슬라이더로 파라미터를 조정하고 실시간 뷰어를 확인하며, nurb check를 다시 실행하여 인쇄 가능성 경고를 확인합니다. 4. 검증 – 선택적으로 nurb stress로 강도 추정 또는 nurb slice로 시간/필라멘트를 확인합니다. 5. 내보내기nurb export <part>는 슬라이서에 바로 넣을 수 있는 3MF(또는 다른 형식)를 작성합니다. 6. 프린트 – 내보낸 파일을 OrcaSlicer 또는 Bambu Studio에서 열고 인쇄합니다.

주요 명령어 (CLI)

  • nurb new <name> – 새로운 부품 파일과 마크다운 카드를 스텐실화합니다.
  • nurb dev – 핫리로딩 뷰어를 시작합니다.
  • nurb check [part] – 13개의 인쇄 가능성 규칙을 실행합니다 (--strict로 CI 실패 설정).
  • nurb slice [part] – 연결된 슬라이서에서 인쇄 시간/필라멘트를 조회합니다.
  • nurb stress [part] – 복셀 기반 하중 시뮬레이션입니다.
  • nurb export [part] – 3MF / STL / STEP / GLB를 작성합니다.
  • nurb scan <file> – 스마트폰 스캔 또는 외부 메시를 가져와 차원을 기록합니다.
  • nurb skill – AI 에이전트 스킬 파일을 표시하거나 동기화합니다.

왜 "AI 중심"인가요?

  • 모델 독립성 – 이미 구독 중인 모든 LLM과 호환됩니다. README에는 실제 부품 설계 작업에서 모델을 평가하는 벤치마크 페이지 링크가 포함되어 있습니다.
  • 에이전트 스킬 – 작은 "스킬" 파일(npx skills add ...)은 선택한 AI가 nurb 명령을 호출하는 방법을 알려주며, 언어 모델을 인터랙티브 CAD 어시스턴트로 전환합니다.
  • 프롬프트 기반 기하학 – AI가 실제 CAD 코드를 작성합니다. 수동으로 스케치할 필요가 없습니다.

제한 사항 및 현재 부족한 점 (README 기준)

  • 뷰어의 측정 도구는 아직 TODO입니다.
  • 호스팅된 공유 가능한 구성기기는 아직 구축되지 않았습니다.
  • 얇은 벽 탐지 기능은 샘플링 알고리즘이 타겟하지 않는 극히 좁은 특징을 놓칠 수 있습니다.
  • 응력 분석은 단순한 복셀 시뮬레이션입니다. 빠른 검증에는 유용하지만, 완전한 유한요소 분석의 대체물은 아닙니다.
  • 이 도구는 FDM 스타일 프린터만 지원합니다 (OrcaSlicer/Bambu Studio를 호출). 레진 또는 산업용 기계는 다루지 않습니다.

라이선스 및 출처

  • FSL-1.1-MIT (각 릴리스 후 2년 후에 일반 MIT로 전환되는 허용성 높은 라이선스)로 소스 공개. 라이선스는 경쟁 상용 제품 구축을 명시적으로 금지합니다.
  • 핵심 기하학은 build123dOCP Python 바인딩을 통해 Open CASCADE Technology (LGPL-2.1 + 예외)에 의존합니다.
  • 뷰어 자산에는 three.js (MIT) 및 JetBrains Mono (OFL 1.1)가 포함되어 있습니다.

결론

nurb은 아마추어 및 소규모 작업장용 FDM 3D 프린팅을 위한 실용적이고 로컬에서 실행 가능한 AI 강화 CAD 시스템입니다. 자연어 설계, 실제 B-Rep 기하학, 프린터 전용 검증을 클라우드 서비스 없이 통합합니다. 이미 LLM 구독이 있고, 말로 한 설계 아이디어를 즉각 피드백과 함께 인쇄 가능한 부품으로 전환하고 싶다면, nurb은 바로 사용 가능한 스택을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트