Community이미지github.com

max-model: 아이디어 -> 검증된 3D 프린팅 가능한 부품

아이디어를 입력하면 바로 출력 가능한 3D 모델(STL/3MF)을 생성하는 FDM 프린터용 전문 제작 스튜디오입니다. CAD, 메커니즘, 텍스트-3D, 플렉시파이, 사전 비행 검증을 하나의 워크플로우로 통합하여 사용자가 슬라이서에 바로 넘길 수 있는 검증된 파일을 제공합니다.

max-model: 아이디어 -> 검증된 3D 프린팅 가능한 부품란 무엇인가요?

이 스킬은 사용자의 구두 설명이나 명령어(예: /max-model, '모델/디자인/제작해줘', '3D 모델링', 'CAD', '맞춤 마운트/케이스/홀더/어댑터/뚜껑/브래킷', '피젯', '프린트-인-플레이스', '움직이는 것', '플렉시 동물', '피규어/조각상/마스코트', '텍스트를 3D로', '그리드피니티', '내 물건에 맞는 인서트', '베드 분할', '이거 출력 가능?', '프린터 캘리브레이션', 'AR로 보기', '이름 넣기', '키체인 고리 추가', '자석 추가', '얇은 벽 보강', '내 머리 크기로 조정', '상자 만들어줘', '키체인', '사인', '폰 거치대', '리소파네', '맥스모델', 'forge')를 받아 실제로 출력 가능한 3D 모델을 생성합니다. build123d, OpenSCAD, Blender(bpy) 기반의 코드 CAD와 검증된 메커니즘 키트(MechKit), 로컬 텍스트-3D 생성, 플렉시파이(flexify), 사전 비행 오류 예측(preflight)을 결합하여, 사용자가 슬라이서에 바로 로드할 수 있는 검증된 STL/3MF 파일을 제공합니다. 이 스킬은 특히 움직이는 부품(메커니즘)에 강점을 가지며, 모든 출력물은 자체 테스트(self-test)를 통과해야 합니다. 사전 비행 검증(preflight)을 통해 지지대(서포트) 필요 여부를 결정하고, 프린트-인-플레이스 또는 멀티바디 부품은 3MF 형식으로 내보내 슬라이서의 자동 서포트가 부품을 용접하는 것을 방지합니다. 숫자 기반 사양(spec)과 참조 이미지를 통한 '룩스 스코어(Looks Score)'로 디자인을 지속적으로 개선하며, 피트 카드(Fit Card)로 프린터별 간극을 보정하여 정밀도를 높입니다. 모든 변경은 한 번에 하나씩 이루어지며, 최대 6회 반복 후 계획을 재수립합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/marklkasdorf-del/max-model/tree/HEAD

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

max-model: 아이디어 -> 검증된 출력 가능한 부품

요청: 사용자가 /max-model 뒤에 입력한 내용 (또는 설명한 것). FORGE = 이 스킬의 디렉토리 (예: ~/.claude/skills/max-model); 아래 모든 경로는 이 디렉토리를 기준으로 합니다. 하나의 CLI 명령어: $FORGE/bin/forge <cmd> (목록은 하단 참조). 환경 (README 참조): CAD 가상 환경 $FORGE/.venv-cad (build123d, trimesh, manifold3d, usd-core, opencv, sdf; FORGE_CAD_PY로 재정의 가능), 선택적 AI 가상 환경 $FORGE/.venv-ai (torch, diffusers, CLIP; FORGE_AI_PY로 재정의 가능)은 text3d 및 looks에 사용됩니다. 프린터: knowledge/printer.json (베드, 노즐, 레이어; 예제는 knowledge/printers/에 있음). 슬라이싱은 사용자가 선택한 슬라이서로 진행됩니다: forge는 검증된 STL과 사전 비행 결과(지지대 켜기/끄기)를 제공하는 것으로 끝납니다. 선택적 slicer_cmd 훅을 통해 forge가 출력 시간과 그램을 보고할 수 있습니다.

2026-10-17 벤치마크 결과 (knowledge/benchmark-2026-10-17.md): 완전한 사양의 부품은 실제 STEP 파일 대비 0.96 복셀 IoU를 달성했지만, 세부 사항을 추측한 경우 0.41-0.82에 그쳤습니다. 프린트-인-플레이스 메커니즘은 첫 번째 빌드에서 융합된 간극 없이 동작 스윕을 통과했습니다 (저자의 실제 프린터 출력으로 아직 검증되지 않음). 상징적/유기적인 것들의 LOOKS는 수작업으로 모델링할 때 취약점입니다 (수작업 헬멧이 계란처럼 나옴). text3d / looks / remix 파이프라인은 의지력 대신 도구로 그 취약점을 커버하기 위해 존재합니다: 참조 패스 + Looks Score, 유기적 피규어를 위한 로컬 텍스트->3D, 조각 위에 플렉시파이, 상징적 소품을 위한 찾기 및 리믹스.

절대 변하지 않는 규칙

  1. 숫자가 먼저, 그림은 그 다음. 도구의 출력(verify/selftest/preflight/grade JSON)이나 이번 반복에서 읽은 렌더링에서 나오지 않은 형상에 대한 주장은 하지 마십시오. 절대 기억에 의존하여 STL을 설명하지 마십시오.
  2. 맞춤 부품은 모델보다 사양 우선: spec.md + 숫자 기반 성공 기준이 포함된 spec.json을 먼저 작성하십시오.
  3. 반복당 하나의 변경, 모든 iter_NN/ 디렉토리를 유지하고, 단계당 최대 6개까지, 이후 재계획하십시오.
  4. 움직이는 모든 것은 통과하는 자체 테스트와 함께 제공 (스윕 클리어 + 반드시 걸림 제어 + 측정된 간극). 예외 없음; 이것이 이 스킬의 강점인 메커니즘의 이유입니다.
  5. 모든 출력물은 슬라이싱 전에 forge preflight를 거쳐야 하며, 그 결과가 지지대를 결정합니다. NO-GO = 먼저 형상/방향 수정. 프린트-인-플레이스 / 멀티바디 부품은 forge export <stl>로 내보내고 STL이 아닌 3MF를 전달하십시오: 슬라이서의 자동 지지대가 간극을 채우고 부품을 용접합니다 (CYCLO-11의 첫 번째 출력물이 그렇게 망가짐). STL은 "지지대 끄기" 정보를 전달할 수 없습니다.
  6. 환경: Blender, OpenSCAD 및 GPU torch (text3d, looks)는 GPU를 숨기는 일부 에이전트 샌드박스 내에서 충돌할 수 있습니다 (Blender는 139로 종료). 단계가 세그폴트로 실패하면 샌드박스 외부에서 실행하십시오. 순수 파이썬 (build123d, manifold3d, trimesh)은 어디서나 실행됩니다.
  7. 중요 지점을 간략히 보고 (선택된 경로, 첫 번째 렌더링, 출력 준비 완료(시간/그램/결과), 차단 요소): 각각 한 줄씩, 사용자가 결정해야 할 사항을 말하십시오. 채널에서 파일을 지원할 때 핵심 이미지(sheet.png, poster.png)와 AR 파일을 보내십시오.
  8. 사용자의 명시적 동의 없이 절대 출력을 시작하거나 비용을 지출하지 마십시오. 다운로드한 모델: 라이선스를 존중하십시오 (CC BY-NC = 판매 금지).

세션 시작 (30초)

ls $FORGE/knowledge/; cat $FORGE/knowledge/{fit-log.md,lessons.md,printer.json}; $FORGE/bin/forge fit show
$FORGE/bin/forge doctor                # 빨간 줄 -> 수정하거나 모델링 전에 보고

forge fit show에서 pip_gap이 여전히 [R] (연구용 기본값, 이 프린터에서 측정되지 않음)이라고 표시되면: Fit Card (forge mech build fitcard, 약 1시간, ~16 g)가 모든 움직이는 부품을 보정한다고 한 번 언급하고 출력해 보겠다고 제안하십시오.


단계 0 — 경로 (망치가 아닌 파이프라인 선택)

첫 번째 일치가 승리합니다. 경로를 한 줄로 사용자에게 알려주십시오.

사용자 요청경로도구
다운로드한 파일 수정: 이름/텍스트, 키체인 고리, 자석, 벽 두껍게, 머리 크기 조정, 평평한 바닥, 미러REMIX (다운로드 후 업그레이드)`forge remix text
사용자 숫자 기반 실용적인 물건: 상자 (슬라이드/누름 뚜껑), 이름 키체인, 사인, 폰 거치대, 물건 홀더, 리소파네MAKE (생성기; fit.json의 여유 공간 적용; 상자는 동작 검사됨)`forge make box
한 번에 여러 복사본 / 전체 프로젝트 (판매용)PLATE (베드 패킹, 항목당 비용)`forge plate <stl...> --fill
유명한 기존 물건 (영화 헬멧, 소품, 인기 장난감, 인기 기기 케이스)FIND (Printerables/Thingiverse 같은 모델 사이트를 직접 검색), 이후 REMIX (크기 조정, 분할, 자석, 맞춤)웹 검색, forge split, forge preflight --orient
독창적인 착용 가능 헬멧 ("아무도 안 가진 헬멧")TEXT3D --helmet: 목 부분 절단, 사용자가 지정한 머리 크기 (기본 160x190 + 패드), 3mm 쉘, 페이스플레이트 + 자석 보스 4개, 이음새 방향 아래로 분할forge text3d "<스타일> helmet" --helmet
움직이는 것 (피젯, 힌지, 기어, 자이로, 발리송, 패스스루, 클리커)MECHKIT (모듈이 맞는 경우), 그렇지 않으면 Mech API로 모델링forge mech list/build, lib/mechkit/core.py
플렉시 동물SDF 바디 디자인 (lib/sculpt.py) 또는 조각 (모델 사이트/text3d) -> FLEXIFYforge flexify, forge sculpt
피규어 / 마스코트 / 생물 / 조각상TEXT3D (로컬, 무료, ~3.5분) 또는 찾기; 둘 다 제안forge text3d "<아이디어>" [--base NAME]
사용자 물건을 위한 맞춤형 기능 부품 (마운트, 홀더, 어댑터, 케이스)MODEL (1-6단계)build123d 방식, forge run, forge parts-find
서랍 정리 / 물건을 위한 인서트GRIDFINITY (+ 정확한 포켓을 위한 PHOTOFIT)forge gridfinity, forge photofit
베드보다 너무 큼핀 + 이음새 라벨로 SPLITforge split
"이거 출력 가능? / 왜 실패했지?"PREFLIGHT (+ 히트맵)forge preflight, forge heat
자랑 / 판매SHOWCASE + ARforge showcase, forge ar

경로 선택을 위한 정직한 품질 노트 (저자 측정, 2026-10-17): text3d 피규어는 명확하게 읽힙니다 (악어, 용, 유령 마스코트, 상어) 하지만 60mm에서 미세한 디테일이 부드럽고 지지대가 필요합니다; 텍스트로 만든 플렉시는 울퉁불퉁합니다 (얇은 다리가 합쳐짐) -> 플렉시에는 SDF 디자인 바디나 사람이 조각한 형태를 선호하십시오; 수작업 유기적 형태는 여전히 덩어리처럼 보입니다 -> 헬멧/캐릭터는 절대 수작업으로 모델링하지 말고 FIND+REMIX 또는 TEXT3D를 사용하십시오.

단계 1 — 개요 (맞춤 부품): 숫자가 있는 사양

  1. 사용자가 이미 정확한 물건 (기기 모델, 측정값, 사진)에 대해 알려준 모든 것. 1b. 이름이 있는 모든 것에 대한 참조 패스: 실제 물건의 참조 이미지 / 최고 평점 디자인 6-9개를 검색하고, LOOKS; spec.md에 "## 형태"를 작성하십시오 (비율, 2-3개의 특징적인 특징, 변형). 이를 건너뛰면 벤치 발리송이 평평한 막대기가 되고 나선형 피젯이 잘못된 장난감이 되었습니다.
  2. 치수: 조회하고, 절대 기억하지 마십시오 (벤치: 풀리 0.41 IoU로 회상). forge parts-find "<부품>" [--download] + forge step2stl; 데이터시트는 웹 페치로; 참조 이미지는 웹 검색으로. 출처를 spec.md에 명시하십시오. 사용자가 소유하고 조회할 수 없는 물건의 경우: PHOTOFIT (forge photofit mat -> Calibration Mat을 100%로 출력 -> 사진 -> ~0.3mm 이내의 윤곽선)이 캘리퍼스 숫자를 묻는 것보다 낫습니다.
  3. 찾을 수 없는 것만 사용자에게 물어보십시오: 하나의 메시지, <= 4개의 질문, 각각 기본값 포함.
  4. out/<name>/spec.md + spec.json (템플릿/) 작성. 적합 인터페이스의 추정치는 estimate로 표시됩니다.
  5. "사양 준비: <한 줄> -- 빌드해도 될까요?" 게시; 위험이 낮은 침묵에는 명시된 기본값으로 진행하십시오.

단계 2 — 방식 + 계획

방식사용처
b123d (기본)기능/치수/적합 중요 부품, 인클로저, MechKit 모듈
scad간단한 부품 또는 하나의 BOSL2 프리미티브 (나사산)
sdf (lib/sculpt.py)직접 디자인하는 유기적 바디: 부드러운 합집합, 평평한 베이스, 항상 수밀 (게코 레시피)
mesh (lib/meshkit.py, manifold3d)다운로드/AI 메시 편집, 큰 불리언, 플렉시파이, 분할 (OCC는 100k 삼각형 조각에서 질식함)
bpy렌더링, 복셀 리메시, 텍스트가 많은 아트
부품 파일 상단의 주석에 계획: 함수로서의 특징, mm 단위의 파라미터 블록, fit.get("pip_gap"/"slide_gap"/...)의 여유 공간 (절대 0.3 하드코딩 금지), Z=0에서 바닥 중앙 원점, 출력 방향 설계 (가장 큰 평평한 면이 아래로, 오버행 <= 45, 브리지 < 18, 벽 >= 2.0), 빌드 순서, assert 목록.

단계 3 — 작은 단계로 빌드

반복당: 하나의 변경 -> forge run part.py --lane <방식> --spec spec.json --name <이름> -> verify.json/REPORT.md 읽기 (볼륨/바운딩 박스가 변경으로 인해 예상되는 대로 변경되었는지? 변경 없음 = 드롭된 불리언) -> sheet.png를 한 번 읽기 -> 비판 -> 다음 변경.

  • 움직이는 부품 = Mech API (lib/mechkit/core.py): Mech(이름, 부품, 고정, [Motion(이름, 드라이브, [Move...], 제어=[...])]) -> selftest()는 모든 포즈를 스윕하고, 전체 경로를 따라 반드시 걸림 제어를 실행하며, 간극을 정확히 측정합니다. 충돌 방지 설계가 확인보다 낫습니다: 피벗을 중심으로 한 호/구는 간극을 일정하게 유지합니다 (자이로, 플렉시 조인트); 각 이동체의 스윕 볼륨을 평면의 한쪽에 유지하십시오 (발리송 피벗). 기어: lib/gears.py. 선언된 것이 아닌 측정된: forge mech ratio <이름> [--motion M --driven PART --driver PART]는 메커니즘을 배치하고, 출력을 해제하고 접촉 없는 간격을 이분법으로 찾습니다 -> 측정된 비율 + 백래시 (ratio.json, 선언된 비율과 일치하지 않으면 종료 코드 3). 사이클로이드 감속기: forge mech build cyclo11 (lib/cycloid.py 정확한 프로파일 + 언더컷 검사). 스튜디오 렌더링: forge showcase <dir> --style studio --still hero|cutaway|exploded, --ghost, --annotate.
  • 루프 내 사전 비행 오버행이 있는 모든 것: forge preflight out/<이름>/<이름>.stl.
  • 명명된 객체: 기계적 통과 후 Looks Score: forge looks out/<이름>/<이름>.stl --target "<물건>" (깨끗한 렌더링에 대한 CLIP; 검증됨: human > v2 > v1 발리송 순위). < 30% = FORM(비율, 특징적인 특징) 반복, 기계적 측면이 아님. 추측 대신 v1과 v2를 비교하는 데 사용하십시오.
  • 엄격한 규칙: 단일 뷰에서 판단하지 마십시오; 오버랩 커터 0.05mm (동일 평면 면은 두께가 0인 스킨을 남겨 핀을 WELD: 측정된 간극 0.0 대신 0.3); 동일한 실패가 두 번 발생하면 하위 부품 번호를 출력하고 재진단하십시오; 6회 반복 후 재계획하거나 FIND로 경로 변경. verify가 모든 사양 키를 통과하고, selftest가 통과하고(이동체), preflight가 GO/GO+SUPPORTS이고, 시각적 체크리스트가 모두 예일 때 완료합니다.

단계 4 — 핏

  • 보정 우선: 프린트-인-플레이스 간극은 fit.json에서 비롯됩니다. pip_gap이 [V]가 될 때까지, 모든 PIP 디자인은 사전 비행 주의(CAUTION)를 수반합니다. Fit Card는 하나의 출력물에서 pip_gap (스피너 .15-.40)과 pip_vgap (힌지 .25-.45)을 측정합니다: 출력 후, "단단히 비틀었을 때 가장 작은 숫자가 자유롭게 회전합니까?"라고 물으십시오 -> forge fit set pip_gap <n> --from "fitcard <날짜>" (및 pip_vgap). 모든 MechKit/flexify/gridfinity 빌드가 자동으로 읽습니다.
  • 결합 부품 / 사용자 물건 주변 부품: 조립된 포즈 확인 bin/verify --assembly a.stl b.stl --clearance <핏> --move-b=x,y,z; photofit/parts-find의 물건 더미.
  • Fit Card가 다루지 않는 인터페이스 유형 (나사산, 스냅핏, 압입) 또는 추정 치수에만 쿠폰: <= 10분, 3가지 변형, 올라간 라벨.

단계 5 — 출력 준비 + 전달

  1. forge preflight <stl> [--slice] -> 결과 + 지지대 결정. 유기적/기울어진 부품: forge preflight <stl> --orient (기울기 시도; 하나의 헬멧은 ~20도를 원함). forge heat <stl>는 빨간색/노란색 지지대 히트맵을 만들어 보여줍니다.
  2. 지지대 = preflight의 결정: GO -> 끄기; GO+SUPPORTS -> 켜기/자동; NO-GO -> 먼저 수정 (칼날 접촉, 융합된 간극, 맞지 않음 -> forge split). "SUPPORTS: OFF (필수)" = 자동 지지대 함정 (수평에서 30도 미만의 평평한 밑면이 다른 본체 위 2mm 미만에 위치; 프린터 프로파일의 support_angle / support_trap_gap): 지지대는 반드시 OFF 상태로 유지되어야 합니다. 그렇지 않으면 간극을 용접합니다. 2b. 항상, 프린트-인-플레이스 / 멀티바디 파일을 사용자에게 전달하기 전에: forge preflight <stl> 그런 다음 forge export <stl> (자동으로 결과를 따름; 이름은 _SUPPORTS-OFF.3mf / _SUPPORTS-ON.3mf로 끝남). 3MF를 제공하고 말하십시오: 이 파일을 열고, Support 상자가 파일 이름과 일치하는지 확인하고, 다른 것은 변경하지 마십시오. preflight가 지지대가 필요하기 때문에 NO-GO이고 지지대가 용접되는 경우, 내보내기 전에 형상을 수정하십시오 (평평한 밑면을 45도로 모따기, 재정렬).
  3. 내보낸 3MF (또는 단일 본체 부품의 경우 STL)를 2단계의 지지대 결정과 일반 프로필을 사용하여 선택한 슬라이서에서 슬라이싱하십시오. forge는 3MF를 통해 지지대 체크박스만 설정합니다. (선택 사항: knowledge/printer.json에 slicer_cmd를 설정하여 preflight --slice / plate --slice가 시간과 그램을 보고하도록 할 수 있습니다.)
  4. 사용자에게 보여주십시오: 시트 또는 쇼케이스 포스터 + 시간/그램 (훅이 설정된 경우) + 결과 + 한 줄 레시피. 크기/적합이 문제일 때 forge ar <stl> (USDZ: iPhone/Vision Pro에서 실물 크기 미리보기로 열림; GLB는 Quest용)을 제공하십시오.
  5. 사용자의 동의 없이 출력을 시작하지 마십시오: "베드 비었습니까? <이름> 시작, ~<시간>, g."
  6. "<이름> 출력 준비 완료: <시간>, g, <결과>." 판매? forge showcase <dir>는 mp4/gif + listing.md (비용, 제안 가격, 라이선스 알림)를 작성합니다.

단계 6 — 피드백 + 학습

  1. 출력 후 한 줄: "무엇이 잘못되었습니까? (적합성 / 외관 / 강도 / 출력 품질 / 없음)". 사진이 있으면 읽으십시오.
  2. 간극 -> forge fit set ... (+ fit-log.md에 행 추가). 다른 숫자 -> fit-log.md / print-tolerances.md [V].
  3. knowledge/lessons.md에 1-3줄 (날짜 · 프로젝트 · 교훈 · 단계). 새로운 기술 -> knowledge/<주제>.md (<= 40줄, 실행 가능한 스니펫).
  4. part.py + spec을 재실행 가능하게 남겨두십시오. 시작하지 않고 인접한 아이디어 하나를 제안하십시오 (shop brain).
  5. 모든 스킬/도구 변경 -> tests/run_suite.sh (알려진 답 확인) 및 기능 주장의 경우 벤치 (forge grade, forge looks) -- 개선되었음을 증명하십시오.

도구 상자 (forge <cmd>)

관련 스킬