Community画像github.com

max-model:アイデア→検証済み印刷可能パーツ

FDMプリンター向けに、アイデアから印刷可能な3Dモデルを作成するスタジオです。「モデリングして / デザインして / 印刷物を作って」「3Dモデルにして」「CADにして」「カスタムマウント/ケース/ホルダー/アダプター/蓋/ブラケット」「フィジェット」「印刷一体型」「動くもの」「flexi <動物>」「フィギュア / 像 / <X>のマスコット」「テキスト→3D」「グリッドフィニティ」「<もの>用インサート」「ベッドに分割」「印刷できるか」「プリンターをキャリブレーション」「ARで見る」「名入れ」「キーチェーンループ追加」「マグネット追加」「薄い壁を修正」「頭のサイズに合わせて」「箱を作って」「キーチェーン」「看板」「スマホスタンド」「リソファン」「max model」「/max-model」「forge」などのリクエストに対応。Code-CAD(build123d/OpenSCAD/bpy)+ MechKit 検証済み機構 + ローカルテキスト→3D + flexify + 事前飛行障害予測により、検証済みSTLをスライサーに受け渡します。

max-model:アイデア→検証済み印刷可能パーツ とは?

max-modelは、アイデアから検証済みの印刷可能な3Dモデルを作成するための包括的なスキルです。主にFDMプリンターを対象としており、ユーザーが「箱を作って」「キーチェーン」「flexi <動物>」「スマホスタンド」などと依頼すると、最適なパイプラインを自動選択します。build123d、OpenSCAD、Blender PythonといったCode-CADツールを活用し、MechKitモジュールによる検証済み機構設計(ギア、ヒンジ、フィジェットなど)を組み込みます。また、ローカルのテキスト→3D生成(torch/diffusersベース)やSDFスカルプトによる有機的形状作成、flexifyによる柔軟関節の自動追加、forge preflightによる事前印刷障害予測(サポート材要否判定を含む)を提供します。このスキルは、Claude Code、Cursor、CodexなどのAIエージェント環境で動作し、各フェーズ(ルート設定→仕様作成→設計→適合性確認→印刷準備→フィードバック学習)を反復的に進めます。特筆すべきは、可動部品には必ず自己テスト(動作範囲の掃引、隙間測定)を課し、印刷一体型や複数ボディの部品はSTLではなく3MF形式で出力することで、スライサーによる自動サポート材が隙間を埋めて部品を溶着する問題を防止します。ベンチマーク(2026-10-17)では、完全に指定された部品で0.96 voxel IoU、印刷一体型機構はゼロ融合ギャップで初回ビルド成功を記録しています。

対応✓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 venv $FORGE/.venv-cad(build123d, trimesh, manifold3d, usd-core, opencv, sdf; オーバーライド FORGE_CAD_PY)、オプションAI venv $FORGE/.venv-ai(torch, diffusers, CLIP; オーバーライド FORGE_AI_PY)、text3d と looks で使用。 プリンター: knowledge/printer.json(ベッド、ノズル、レイヤー; 例は knowledge/printers/)。スライシングはユーザーの好みのスライサーに任せます: forgeは検証済みSTLと事前飛行判定(サポート材on/off)を出力して終了します。オプションの slicer_cmd フックにより、forgeが印刷時間とグラム数を報告できます。

2026-10-17のベンチマーク結果(knowledge/benchmark-2026-10-17.md): 完全に指定された部品は実際のSTEPファイルに対して0.96 voxel IoUに達しますが、詳細が推測された場合は0.41~0.82に低下します。印刷一体型機構は、初回ビルドでゼロ融合ギャップの動作スイープを通過しました(作成者のプリンターで実印刷による検証は未実施)。手作業でモデリングされた場合、象徴的/有機的なもののLOOKSは弱点です(手作業でモデリングされたヘルメットは卵のような形状になりました)。text3d/looks/remixパイプラインは、その弱点をカバーするために存在します: 参照パス + Looks Score、有機的フィギュア用のローカルテキスト→3D、スカルプト上へのflexify、象徴的プロップの検索とリミックス。

絶対に曲げないルール

  1. 数字が先、画像は後。 ジオメトリに関する主張は、ツールの出力(verify/selftest/preflight/grade JSON)またはこのイテレーションで読み取ったレンダリングからのみ行う。記憶からSTLを説明しないこと。
  2. カスタム部品は 仕様がモデルに優先: 最初に数値的な成功基準を持つ spec.md + spec.json。
  3. 1イテレーションにつき1つの変更、すべての 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はexit 139)。ステップがセグメンテーションフォールトを起こした場合は、サンドボックス外で実行してください。純粋なPython(build123d、manifold3d、trimesh)はどこでも動作します。
  7. マイルストーンを簡潔に報告する(選択したルート、最初のレンダリング、時間/グラム数/判定を含む印刷準備完了、ブロッカー): それぞれ1行で、ユーザーが決定すべきことを伝える。チャンネルがファイルをサポートする場合は、主要画像(sheet.png、poster.png)とARファイルを送信する。
  8. ユーザーの明示的なOKなしに印刷を開始したり、お金を使ったりしないこと。ダウンロードしたモデル: ライセンスを尊重する(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](リサーチデフォルト、このプリンターで未測定)の場合: フィットカード(forge mech build fitcard、約1時間、約16 g)がすべての可動部品をキャリブレーションすることを一度伝え、印刷を提案する。


フェーズ0 — ルート(ハンマーではなくパイプラインを選ぶ)

最初に一致したものが採用。ルートを1行でユーザーに伝える。

ユーザーの要望ルートツール
ダウンロード品の変更: 名入れ/テキスト、キーチェーンループ、マグネット、壁の肉厚化、頭のサイズへのスケーリング、底面フラット化、ミラーREMIX(ダウンロード後、アップグレード)`forge remix text
ユーザーの寸法に基づく実用的なもの: 箱(スライド/プレス蓋)、名入れキーチェーン、看板、スマホスタンド、<もの>用ホルダー、リソファンMAKE(ジェネレーター; クリアランスは fit.json から; 箱は動作チェック済み)`forge make box
多数のコピー / 1回の印刷でプロジェクト全体(販売)PLATE(ベッドをパッキング、アイテムあたりのコスト計算)`forge plate <stl...> --fill
有名な既存のもの(映画のヘルメット、小道具、人気おもちゃ、人気デバイス用ケース)FIND(Printables/Thingiverseなどのモデルサイトを自分で検索)、その後REMIX(スケーリング、分割、マグネット、フィット)web検索、forge split、forge preflight --orient
オリジナルの着用可能ヘルメット(「他に誰も持っていないヘルメット」)TEXT3D --helmet: ネックカット、指定されたヘッドサイズ(デフォルト160x190 + パッド)、3 mmシェル、フェイスプレート+4個のマグネットボス、シームダウンスライスforge text3d "<スタイル> helmet" --helmet
動くもの(フィジェット、ヒンジ、ギア、ジャイロ、バリソング、パススルー、クリッカー)MECHKIT(モジュールが適合する場合)、それ以外はMech APIでモデリングforge mech list/build、lib/mechkit/core.py
flexi動物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
ベッドに大きすぎるSPLIT(ピン + シームラベル付き)forge split
「これは印刷できるか / なぜ失敗したか」PREFLIGHT(+ ヒートマップ)forge preflight、forge heat
見せびらかす / 販売するSHOWCASE + ARforge showcase、forge ar

ルート選定のための正直な品質ノート(作成者測定、2026-10-17): text3dフィギュアは明確に読み取れます(アホロートル、ドラゴン、ゴーストマスコット、サメ)が、60 mmでは細かいディテールが柔らかく、サポート材が必要です。テキストからのflexifyは凹凸が粗くなります(細い脚が融合する)-> flexiにはSDF設計ボディまたは人間によるスカルプトを推奨。手作業による有機的形状は依然としてブロブのように見える -> ヘルメット/キャラクターは手作業でモデリングせず、FIND+REMIXまたはTEXT3Dを使用。

フェーズ1 — ブリーフ(カスタム部品): 数値を伴う仕様

  1. ユーザーがすでに正確なオブジェクトについて伝えたこと(デバイスモデル、寸法、写真)。 1b. 名前のあるものについては参照パス: 実物の6~9枚の参照画像/最高評価のデザインを検索し、それらを見る; spec.mdに「## 形状」を記述(プロポーション、2~3の特徴的なディテール、どのバリエーション)。これを省略すると、ベンチのバリソングが平たい棒になり、スパイラルフィジェットが間違ったおもちゃになりました。
  2. 寸法: 調べる、決して思い出さない(ベンチ: プーリーを思い出して0.41 IoU)。forge parts-find "<パーツ>" [--download] + forge step2stl; Web経由でデータシートを取得; 参照画像をWeb検索。出典をspec.mdに明記。ユーザーが所有しており検索できないオブジェクトの場合: PHOTOFIT(forge photofit mat -> キャリブレーションマットを100%で印刷 -> 写真撮影 -> 約0.3 mm以内の輪郭)がノギス数字よりも優れています。
  3. ユーザーにのみ、見つからないことを尋ねる: 1メッセージ、<= 4つの質問、それぞれにデフォルト値を設定。
  4. out/<名前>/spec.md + spec.json(テンプレート/)を作成。フィットインターフェースの推定値は estimate とマーク。
  5. 「仕様準備完了: <1行> -- 構築してよいですか?」; リスクの低い沈黙には、指定されたデフォルトで進める。

フェーズ2 — レーン + 計画

レーン使用場面
b123d(デフォルト)機能/寸法/フィット重視の部品、エンクロージャ、MechKitモジュール
scad単純な部品または1つのBOSL2プリミティブ(ねじ山)
sdf(lib/sculpt.py)自分でデザインする有機的なボディ: スムーズなユニオン、フラットベース、常に水密(ヤモリのレシピ)
mesh(lib/meshkit.py、manifold3d)ダウンロード/AIメッシュの編集、大規模ブーリアン、flexify、分割(OCCは10万トライアングルのスカルプトで失敗)
bpyレンダリング、ボクセルリメッシュ、テキスト主体のアート
計画をパーツファイルの先頭にコメントとして記述: 機能を関数として、パラメータブロックをmm単位で、クリアランスは fit.get("pip_gap"/"slide_gap"/...) から取得(0.3をハードコードしない)、原点はZ=0で底面中央、印刷向きを設計(最大平坦面を下に、オーバーハング<= 45、ブリッジ< 18、壁>= 2.0)、ビルド順序、アサートリスト。

フェーズ3 — 小ステップで構築

イテレーションごと: 1つの変更 -> forge run part.py --lane <レーン> --spec spec.json --name <名前> -> verify.json/REPORT.mdを読む(ボリューム/bboxは期待される変更によって変化したか?変化なし = ブーリアンがドロップされた) -> sheet.pngを一度読む -> 批評 -> 次の変更。

  • 可動部品 = Mech API(lib/mechkit/core.py): Mech(名前, パーツ, 固定, [Motion(名前, 駆動, [Move...], control=[...])]) -> selftest() ですべてのポーズをスイープ、その全経路に沿ってジャム制御を実行、隙間を正確に測定。チェックよりも構築による衝突防止: ピボットを中心とした円弧/球はギャップを一定に保つ(ジャイロ、flexiジョイント); 各可動体のスイープボリュームを平面の同じ側に保つ(バリソングピボット)。ギア: lib/gears.py。宣言ではなく測定: forge mech ratio <名前> [--motion M --driven PART --driver PART] でメカニズムをポーズさせ、出力を解放し、接触のない間隔を二分探索 -> 測定された比率 + バックラッシュ(ratio.json、宣言された比率と矛盾するとexit 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; 検証済み: 人間 > v2 > v1 バリソングとランク付け)。< 30% = メカニクスではなく形状(プロポーション、特徴的なディテール)を反復。v1とv2を推測ではなくこれで比較。
  • 厳格なルール: 1つのビューから判断しない; カッターの重ね合わせ 0.05 mm(同一平面上の面はゼロ厚のスキンを作り、ピンを溶着する: 測定ギャップ 0.0 ではなく 0.3); 同じ失敗が2回 -> サブパーツ番号を印刷して再診断; 最大6回のイテレーション、その後再計画するかFINDルートへ。 すべての仕様キーが合格、selftest合格(可動体)、事前飛行がGO/GO+SUPPORTS、ビジュアルチェックリストがすべてyesになったら終了。

フェーズ4 — フィット

  • 最初にキャリブレーション: 印刷一体型の隙間は fit.json から取得。pip_gap が [V] になるまで、すべてのPIP設計には事前飛行CAUTIONが付く。フィットカードは、1回の印刷で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 <fit> --move-b=x,y,z; photofit/parts-findからのオブジェクトのダミー。
  • フィットカードがカバーしないインターフェースタイプ(ねじ山、スナップフィット、プレスフィット)または推定寸法のみにクーポン: <= 10分、3バリエーション、浮き出しラベル。

フェーズ5 — 印刷準備 + 引き渡し

  1. forge preflight <stl> [--slice] -> 判定 + サポート材決定。有機的/傾斜した部品: forge preflight <stl> --orient(傾きを試行; あるヘルメットは約20度を必要とした)。forge heat <stl> で赤/黄のサポートヒートマップを作成し、ユーザーに表示。
  2. サポート材 = 事前飛行の判断: GO -> オフ; GO+SUPPORTS -> オン/自動; NO-GO -> 先に修正(ナイフエッジ接触、融合ギャップ、収まらない -> forge split)。「SUPPORTS: OFF(必須)」 = 自動サポートトラップ(水平から30度未満の平坦な下面が、異なるボディの上に2 mm未満で位置する; プリンタープロファイル内の support_angle / support_trap_gap): サポート材はオフのままにしなければならない。そうしないと隙間が溶着される。 2b. 常に、印刷一体型/マルチボディファイルをユーザーに渡す前に: forge preflight <stl> を実行し、次に forge export <stl> を実行(自動的に判定に従う; 名前は _SUPPORTS-OFF.3mf / _SUPPORTS-ON.3mf で終わる)。3MFをユーザーに渡し、「このファイルを開き、サポートボックスがファイル名と一致することを確認し、他は変更しないでください」と伝える。事前飛行がNO-GO(サポート材が必要だが、サポート材が溶着する)の場合は、エクスポートする前にジオメトリを修正(平坦な下面を45度に面取り、向きを再設定)。
  3. エクスポートされた3MF(またはプレーンな単一ボディ部品の場合はSTL)を、ステップ2のサポート材決定と通常のプロファイルを使用して、あなたの好みのスライサーでスライスする。forgeは3MFを介してサポート材のチェックボックスを設定するだけです。(オプション: knowledge/printer.json に slicer_cmd を設定すると、preflight --slice / plate --slice が時間とグラム数を報告します。)
  4. ユーザーに表示: シートまたはショーケースポスター + 時間/グラム数(フックが設定されている場合) + 判定 + 1行レシピ。サイズ/フィットが問題となる場合は、forge ar <stl>(USDZ: iPhone/Vision Proで実寸プレビューとして開く; Quest用GLB)を提供。
  5. ユーザーのOKなしに印刷を開始しない: 「ベッドは空ですか? <名前> を開始します、約<時間>、 g。」
  6. 「<名前> 印刷準備完了: <時間>、 g、<判定>」と報告。販売? forge showcase <dir> でmp4/gif + listing.md(コスト、推奨価格、ライセンス注意喚起)を作成。

フェーズ6 — フィードバック + 学習

  1. 印刷後、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 + 仕様を再実行可能なまま残す。開始せずに、関連する1つのアイデア(ショップブレイン)を提供。
  5. スキル/ツールの変更 -> tests/run_suite.sh(既知の回答チェック)と、能力主張のためのベンチマーク(forge grade、forge looks)-- 改善されたことを証明する。

ツールボックス(forge <cmd>)

(以下、原文では forge <cmd> の一覧が続いていましたが、翻訳指示の「truncated for translation」により省略されています。)

関連スキル