mcpField
N
Nestbolt sheet nesting

Nestbolt sheet nesting

ローカル
github.comメディア・デザイン10今日更新

Nestbolt sheet nesting について

Nestbolt は、レーザー、CNC、プラズマ、水切断、布地、革などの固定シート切断向けに、無料で使えるオープンソースのネスティングツールです。ブラウザー、コマンドライン、MCP サーバーとして動作し、SVG/DXF を読み込んでシートごとの配置を出力します。

主な機能

  1. 01SVG と DXF の形状をインポート
  2. 02固定シート上で部品をネスティング
  3. 03間隔、余白、材料、回転の設定
  4. 04シートごとの SVG と DXF 出力
  5. 05独立したレイアウト検証
  6. 06ブラウザー、CLI、MCP で実行

活用シーン

  1. 01レーザーや CNC 切断用の部品配置
  2. 02布地や革の材料上に型紙を配置
  3. 03SVG または DXF 図面からシート別ファイルを作成
  4. 04AI エージェントによる部品の読み込み、配置、検証

MCP 対応

MCP サーバーは AI エージェントに import_parts、nest、validate_layout、export_layout、estimate_sheets を公開します。読み書きは作業ディレクトリまたは NESTBOLT_WORKSPACE 内で行います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbnestbolt-windows-x64.mcpb0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Nestbolt

简体中文 · 日本語

固定サイズのシートを切断する用途向けの、無料のオープンソース・ネスティングツールです。凍結された v1 ベンチマークでは、60 秒の同一時間で、Deepnest、SVGnest、Sparrow のうち最も優れたものより中央値で素材を 8.5% 削減し、300 秒では 9.6% 削減しました。最終ベンチマーク実行(新しいシード、保留していた 10 件のジョブ)の結果です。60 秒では、Sparrow が 56 件中 8 件で依然として優れています(詳細、すべての数値)。

レーザーカッター、CNC ルーター、プラズマ切断機、ウォータージェット、布地、革など、固定サイズのシートを切断する人向けの、無料のオープンソース・ネスティングツールです。Nestbolt は、部品が最小限の素材で収まるように配置します。ブラウザー上(データはアップロードされません)、コマンドライン、そして AI エージェントが呼び出せる MCP サーバーとして利用できます。

ブラウザーアプリを開く · リリースをダウンロード · AI エージェントを接続

インターフェース、ファイル形式、シートモデルの観点から、AI エージェントが部品をネスティングするほかの方法(OpenNest、pyFit、Sparrow、Deepnest、SVGnest など)と Nestbolt を比較しています:AI エージェント向けネスティング。

v0.2.0-alpha.1 プレビューをお試しください。編集可能な LightBurn プロジェクトのネスティング、リードイン用の余白、大きな曲線図面への対応改善が含まれています。Windows x64、Linux x64、macOS Apple silicon 向けツールに加え、Windows MCP バンドルを利用できます。公開済みダウンロードの検証結果は合格しています。インポートの受け入れ対応と共通線による素材使用量の削減は、引き続き開発中です。v1.1 の計画は 60% 完了しています。安定版 v0.1.0 も引き続き利用できます。

ホストされているブラウザーアプリは、main のプレビュービルド(v0.2.0-alpha.1 より新しいバージョン)を実行します。以下のベンチマーク数値は凍結された 75cbb32 ビルドのものです。このプレビューでは、競合ツールとの新たな比較は行っていません。

1 枚のシートにネスティングされた 451 個の文字の輪郭。大きな文字の穴に小さな文字が入っています

1 CPU コアで 120 秒、850 × 425 mm のシート 1 枚に 451 個の部品を配置しています。4 つのサイズの DejaVu Sans Bold のグリフを、正確なベジェ曲線の輪郭、90° 回転、1 mm の間隔で配置しました。29 個の文字はほかの文字の穴に収まり、未使用の素材は上端にきれいな 1 枚の端材として残っています。このレイアウトは独立した検証ツールによる検証に合格しました。python scripts/make_showcase.py --nest 120 で再作成できます。

比較

最終受け入れテスト(2026-10-13):凍結済みのシートジョブ75件(学術用途35件、メーカー用途40件。そのうち10件はすべてのチューニングから除外)、同一の制限時間、各ツールにCPUコア1つ、毎回異なるシードを5つ使用し、すべてのレイアウトを独立したバリデーターで検証しました。各ジョブで、Deepnest、SVGnest、Sparrowの中で最も良い結果を出したツールと比較し、それぞれ設定2種のうち良い方を採用しています。

制限時間有効なNestboltのレイアウト最良の競合ツールより材料使用量が少ない割合(中央値)勝ちまたは引き分け
60 s375/3758.5%56件中48件
300 s(長時間サブセット)60/609.6%11件中11件

60秒では、NestboltはDeepnestがレイアウトを生成した全55件でDeepnestより材料使用量が少なく(中央値9.9%)、SVGnestに対しても全36件で少なくなっています(14.4%)。Nestboltの基盤となっているSparrowは8件で勝っています。そのうち7件はシート1枚のジョブで、Nestboltは独自の最初のレイアウトを作成した後、処理をSparrowに引き継ぐため、Sparrowはその分わずかに長い時間を使えます。これらのジョブではSparrowが0.03~2.4%優れています。残る1件(シート2枚)では0.34%優れています。これはプロジェクト独自の60秒基準(ジョブの90%で勝ちまたは引き分け、かつ1%を超える差で負けない)には届きませんが、300秒、ストリップ同等性、速度の基準は満たしています(ステータス)。

入れ子配置されたベンチマークジョブ:フレームの窓にインサートが入り、ギアやブラケットも配置され、シートの片側にまとめられています

60秒の開発実行で入れ子配置したベンチマークジョブの実例(m-mechanical-frame-inserts、シード0、シートを横向きに配置):部品138点、インサート39点すべてをフレームの窓に配置し、2440 × 1220 mmのシートの56%にすべてを収め、残りを1枚の端材として残しています。このジョブで最良の競合ツールはシートの62%を使用しました。

30秒では、11件中10件で競合ツールの300秒の結果に並びます。最初の最終実行(ビルド484ce8b)では1件のジョブでエラーが発生しましたが、修正は75cbb32に含まれており、両方の実行結果を公開しています。失敗を含むすべての実行結果はBENCHMARKS.mdにあります。ステータスには各ゲートの根拠を記載しています。結果ページにはジョブごとの数値、ツールのリビジョン、シード、ハードウェアをすべて掲載しています。python scripts/reproduce.py --phase final --final-acceptanceを実行すると、データセットを再構築し、不足している実行を再実行して、結果を再生成します。

現在できること

  • インポート SVG および DXF:線、円弧、楕円、ベジェ曲線、B スプライン、ブロック、 変換、単位に対応し、ミリメートルに変換します。閉じた輪郭はそれぞれ部品となり、 その内側の輪郭は穴になります。切断レイヤーを選択し、素材の輪郭を特定して、 修復内容と未対応のジオメトリを確認できます。インポートオプション と加工用ファイルの検証をご覧ください。
  • LightBurn プロジェクト(.lbrn2 および旧形式の .lbrn):グループを剛体の単位としてネストし、 シートごとに編集可能な .lbrn2 をエクスポートします。元のアートワーク、テキスト、 画像、レイヤー設定が保持されます。ツールおよび出力が無効になっている図形は固定されたままです。 古いテキストは、輪郭を埋め込むために別途ネイティブ形式で保存する必要がある場合があります。 有効/固定が混在するグループは、ネストの前に再グループ化する必要があります。 インポート時のメッセージで、キャッシュされたテキスト、境界矩形、欠落している曲線制御点について説明します。 LightBurn の準備をご覧ください。
  • ネスト 固定シート上で行います。マージン、部品間隔と端部間隔、複数のシート、 上限付きの複数の素材サイズ、欠陥、残材の輪郭、回転(自由、段階的、または布目に合わせた 0/180 などのリスト)、ミラーリングに対応します。小さな部品は、大きな部品の穴の中に配置できます。 最後のシートは一端に向かって圧縮されるため、切り落とし部分を再利用しやすくなります。
  • エクスポート 元の曲線を再ポリゴン化せずに変換し、シートごとに SVG と DXF をそれぞれ 1 つ出力します。 LightBurn プロジェクトでは、内容を保持する .lbrn2 形式で出力します。 エクスポート精度の検証には、テスト済みのファイルと許容差を記録しています。
  • リードインの余白 リード用のスペースを確保し、輪郭の開始位置を設定します。 短縮されたリードや未解決の輪郭は明示的に報告されます。赤色の LEADIN パスは確認用のガイドであり、 実際のリードは切断プログラムが作成します。インポートした LightBurn プロジェクトの編集可能な内容は保持され、 切断用の SVG/DXF ファイルが別途作成されます。リード設定と CAM のセットアップをご覧ください。
  • 共通線切断(任意、開発中):カーフ補正を適用して、共有される直線切断を特定します。 切断距離を短縮できる一方で、素材の使用量は増える場合があります。開発中のジョブ 2 件は、 計画された素材の上限を超えています。共有部分を二重に切断しないように、エクスポート後に CAM の準備が必要です。 共通線の設定と制限をご覧ください。
  • 検証 Clipper2 の独立した検証ツールで、すべての結果を確認します(重なり、間隔、包含、回転、数量)。 無効なレイアウトは返されません。
  • ブラウザーアプリ(web/):同じエンジンを Web Workers 上で WebAssembly にコンパイルし、 ワーカーを自動選択します。最良のレイアウトをリアルタイムで表示し、プロジェクトをブラウザー内または ZIP として保存でき、 ワンクリックで使えるサンプルが 5 つあります。ファイルがコンピューターの外に送信されることはありません。 任意の クイック初期レイアウト 設定を使うと、大規模なジョブを開始しやすくなります。 現在のブラウザーチェックとネイティブ版との比較はステータスで追跡しています。
  • MCP サーバー:import_parts、nest、validate_layout、export_layout、 estimate_sheets を備え、Claude Code でテスト済みです。処理予算は再現可能です。 同じビルド、入力、処理予算、シードを使うと、リアルタイムの制限に達した場合(その旨は明示的に報告されます)を除き、 同じレイアウトが得られます。エージェントインターフェースをご覧ください。

エンジンは、Jeroen Gardeyn と共同開発者による jagua-rs および sparrow(arXiv 2509.13329)を基盤としています。 固定シートの探索では、最後のシート群を壁で囲まれた 1 本のストリップとして連結して配置し、 Sparrow のセパレーターを移植して最後のシートを縮小します。部品はシート間を移動し、 部品がなくなったシートは消えます。箱のパネルのような、ほぼ長方形の部品では、 境界矩形を使った配置も開始点として利用します。穴がなく欠陥もない部品を 1 枚のシートに配置する問題は、 Sparrow 自身のストリップ配置問題と完全に一致し、この問題では Sparrow が最先端です。そのため、残りの処理予算では Nestbolt は改変していない Sparrow を実行します。

クイックスタート

何もインストールせずにブラウザーアプリを使うか、v0.2.0-alpha.1 プレビューまたは安定版 v0.1.0から、Windows x64、Linux x64、macOS Apple silicon向けのネイティブツールをダウンロードしてください。各アーカイブには nestbolt、nestbolt-mcp、ライセンスが含まれ、ダウンロード用チェックサムも同じ場所にあります。別途配布されている Windows MCPB バンドルを使うと、Claude Desktop にサーバーをインストールできます。詳しくはエージェントのセットアップをご覧ください。

開発版をビルドするには、rustup を使って Rust をインストールしてください(リポジトリでは Rust 1.98.1 が選択されます)。

cargo build --release -p nestbolt-cli -p nestbolt-mcp

パーツをインポートして、30 秒間ネスティングすると、シートごとの SVG/DXF ファイルが生成されます(examples/box-99x63x45.svg はブラウザーアプリのサンプルボックスです)。

target/release/nestbolt import examples/parts.svg --output library.json
target/release/nestbolt nest --library library.json --request examples/nest-request.json --out-dir run --seconds 30

図面の隙間が大きい場合は、import --close-gaps 0.05 を指定すると、最大 0.05 mm まで明示的に修復し、各修復の位置とサイズを報告します。このオプションはデフォルトでは無効です。無通知での結合許容値は引き続き 0.005 mm です。UI と MCP でも同じオプションを利用できます。インポートオプションとレポートをご覧ください。 リードの予約領域と輪郭の開始点は、ブラウザー、リクエスト JSON、nest --lead-in --kerf ... で利用できます。設定と LightBurn のセットアップをご覧ください。

リクエストでは、ライブラリ内のパーツを数量とともに指定し、シートのサイズをミリメートル単位で指定します。

{
  "parts": [{"id": "parts-1", "quantity": 4}, {"id": "parts-2", "quantity": 12, "rotations": {"kind": "free"}}],
  "sheets": [{"width_mm": 600, "height_mm": 400, "margins_mm": {"left": 5, "right": 5, "bottom": 5, "top": 5}}],
  "spacing_mm": 1.0,
  "edge_spacing_mm": 1.0
}

その後、run/ に layout.json、report.json、sheet-0.svg/sheet-0.dxf などが保存されます。既存のファイルは上書きされません。nestbolt export でレイアウトを再エクスポートし、nestbolt validate でポリゴンのジョブとレイアウトを検証できます。nestbolt nest または nestbolt sheets に --repeatable を追加すると、実時間ではなく決定論的な作業量の上限が使われます。同じ入力、予算、シードを指定すると、同じレイアウトが得られます。基準となる PC より大幅に遅いマシンでは、--time-limit <seconds> を指定すると、同じ作業量により多くの実時間を割り当てられます(デフォルトは --seconds です)。 オプションの --quick-start 設定を有効にすると、改善を始める前に、控えめな初期配置を試します。デフォルトでは無効で、材料をより多く使う場合があります。ブラウザーでは[Advanced]内のQuick initial layout、リクエスト JSON と MCP では "quick_start": true を指定します。元のジオメトリ、間隔、材料の制限、回転の許可設定は引き続き適用されます。未対応の材料または角度ルールには、通常のコンストラクターが使われます。 ファイル形式については、JSON スキーマをご覧ください。

ブラウザーアプリ

ホスト版アプリを開き、サンプル(フィンガージョイントボックス、文字の中に配置した文字、138 パーツの機械キット、布ロール上の FreeSewing T シャツパターン、かみ合う歯車)を選ぶか、お手持ちの SVG/DXF ファイルをドロップしてください。LightBurn のインポート、リードの余白、より大きな図面に対応する新機能は、ホスト版のプレビュービルドとローカルビルドで利用できます。 検索中はその時点での最良のレイアウトが描画され、各シートにはパーツの周囲のボックスと、その上に残る、障害物のない端材領域が表示されます。 ガイド:レーザー切断向けの無料ネスティング、Nestbolt と Deepnest、SVGnest の比較、ブラウザーで SVG と DXF をネスティング、5 つのサンプル。

ブラウザーアプリでの機械キットのサンプル:138 個のパーツを 30 秒で 1 枚の合板シートに配置。フレーム内にインサートが入り、パーツを囲む破線ボックスの上に、障害物のない端材領域が色付きで表示されています

ローカルでビルドするには、wasm32-unknown-unknown ターゲット、wasm-bindgen-cli 0.2.129、Node.js 24 が必要です。その後、表示されたアドレスを開いてください。

cd web && npm ci && cd ..
python scripts/build_web.py
npm --prefix web run preview

python scripts/build_web.py --test を実行すると、Chromium と Firefox で Playwright テストも実行されます。

エージェントからの利用

絶対パスを指定して MCP サーバーを登録します。たとえば Claude Code では次のようにします。

claude mcp add --transport stdio --scope local nestbolt -- /path/to/target/release/nestbolt-mcp

サーバーは、作業ディレクトリ(または NESTBOLT_WORKSPACE)内でのみ読み書きを行います。docs/AGENT_INTERFACE.md では、 Claude Code、Codex、Claude Desktop、リクエスト形式、ルールについて説明しています。

開発

python scripts/check.py
python scripts/sheets_batch.py --cpu 0 --cpu 2 --seconds 60

1 つ目のコマンドは、フォーマット、リンティング、すべての Rust および Python のテスト、WebAssembly ビルド、 ライセンス表記とデータセットのチェックを実行します。ブラウザー向けビルドとテストを実行するには、--web を追加します。2 つ目のコマンドは、開発用ベンチマーク(評価対象外のジョブは除外)を実行し、監査済みレポートを benchmarks/results/ に書き込みます。

パス用途
crates/coreジオメトリのインポート/エクスポート、シート検索、セパレーター、パーツインパーツ
crates/cliコマンドラインインターフェース
crates/mcpネイティブ stdio MCP サーバー
crates/validator独立した Clipper2 チェッカーと素材スコアリング
crates/wasmブラウザーアプリ向け WebAssembly 境界
webブラウザーアプリ(Preact、Vite)と Playwright テスト
benchmarks固定データセット、競合製品の実行ツール、すべての結果
docs/PLAN.md元の v1 計画と受け入れ基準
docs/PLAN_V1_1.md現在のショップファイルおよび切断機能の計画
docs/STATUS.mdマイルストーンの根拠と次のステップ

失敗したものも含め、すべてのベンチマーク実行は BENCHMARKS.md に記録されます。

関連ツール

Nestbolt は、同じ作者によるエージェント向けの、無料で MIT ライセンスのツール群の一つです。これらは MCP サーバーとしてローカルで動作します。

  • Anode:エージェントが GUI アプリを自動操作してテストしたり、スクリーンショットを撮ったり、ユーザーの画面を占有せずにブラウザーのヘッド付きテストを実行したりできる、バックグラウンドで動作する非表示の Windows デスクトップです。
  • Pixelbolt:編集可能な JSON レシピからピクセルアートやスプライトアニメーションを作成し、スプライトシート、アトラス、アニメーション PNG、GIF としてエクスポートします。
  • Cutbolt:正確なタイムライン、字幕、レンダリングに対応した動画編集エンジンです。
  • Inkbolt:図表やイラスト向けのベクター画像およびラスター画像編集ツールで、SVG のインポートと SVG および PDF のエクスポートに対応しています。

進捗とライセンス

進捗には完了したマイルストーンのみを含めます。docs/STATUS.md を参照してください。 Nestbolt は MIT ライセンスです。jagua-rs は変更を加えていない MPL-2.0 の依存関係です。 crates/core/src/separate.rs のセパレーターは Sparrow(MIT)を元にしています。 THIRD_PARTY_NOTICES に、すべての依存関係とライセンスを記載しています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。