SolidCraft の形状カーネルは何か? 現在は truck、SolidCore を評価中

執筆:SolidCraft.pro(非公式コミュニティガイド)。内容は2026年10月21日に末尾の出典で確認しました。

半透明のレイヤーの上に浮かぶ、光る B-rep のブラケットを描いた抽象イラスト
イラスト:正確な面とエッジで定義されたソリッド部品と、その下のソフトウェア層。イメージ図であり、SolidCraft の画面ではありません。

結論(2026年10月時点):SolidCraft 0.18.2 は、独自のカーネル層 solidcraft-kernel でソリッドモデリングを行っています。この層はオープンソースの Rust 製クレート truck の上に作られています。2026年10月21日(UTC)、メンテナーは別のカーネル SolidCore(NVIDIA の B-rep ライブラリ SMLib の Rust 移植)を評価するため、カーネルの新規開発を一時停止しました。SolidCore はまだ実用段階ではありません。README によると移植済みは約3分の1で、「まだ端から端まで使えるものは何もない」とされています。採用の決定は発表されておらず、今ダウンロードできるアプリは引き続き truck ベースのカーネルで動いています。

形状カーネルの役割

ソリッドモデリングを行う CAD ソフトは、どれも形状カーネルの上に成り立っています。カーネルは部品を境界表現(B-rep)として保持します。面・エッジ・頂点を、正確な曲線と曲面に結び付けたデータです。ブーリアン、フィレット、面取り、シェル、オフセット、スイープとロフト、STEP の読み込みと書き出しといった難しい処理もカーネルが担います。画面に見える三角形は、この正確な形状から表示用に作られたメッシュにすぎません。公式の SolidCore ページも同じように説明しています。

そのため、カーネルの品質はそのまま使い心地に表れます。フィレットやシェルが 「operation failed」 で失敗するとき、音を上げているのはたいていカーネルです。SolidCraft のトラッカーの最新 Issue にも、「FILLET: operation failed」「SHELL: operation failed」「EXTRUDE: operation failed」といったタイトルが並んでいます(2026年10月21日時点)。

SolidCraft 0.18.2 の Edit Fillet ダイアログ。プレートの垂直エッジ4本を半径 5 mm で丸め、プレビューがオレンジで表示されている
SolidCraft 0.18.2(Windows)でのフィレット。ダイアログが集めるのはエッジと半径だけで、丸めた面を計算するのはカーネルの仕事です。実際のアプリのスクリーンショット、2026年10月21日。

現在の SolidCraft:truck ベースのカーネル

SolidCraft の層構造の図。フロントエンド、コマンドエンジンとタイムライン、solidcraft-kernel API、その下に truck のクレートがあり、SolidCore は評価中として示されている
図:0.18.2 での各層の関係と SolidCore の現状(約3分の1を移植済み、決定は未発表)。リポジトリとアナウンス #3993 をもとに solidcraft.pro が作図。

2026年10月20〜21日に変わったこと

10月21日 03:11 UTC(日本時間 同日 12:11)に投稿されたアナウンスで、メンテナーは「SolidCraft の新しい形状カーネルとして、安全・決定的で wasm と相性の良い Rust 製 B-rep カーネル solidcore を評価している」と書きました。決定が出るまでは次のとおりです。

追跡 Issue:#3992。

SolidCore とは

SolidCore(2026-10-21 時点)
概要 NVIDIA のオープンソースライブラリ USD BRep(C++/Python、Apache-2.0)に含まれる B-rep カーネル SMLib の Rust 移植
ライセンス Apache-2.0。公式ページには「NVIDIA とは提携しておらず、NVIDIA の承認も受けていない」と明記
範囲 NURBS の数学、曲線と曲面、B-rep トポロジー、交差計算、ブーリアン、フィレットと面取り、オフセットとシェル、スイープとスキン、プリミティブ、修復、質量特性。元のライブラリの OCCT 変換機能、USD/Hydra 連携、Python バインディングは対象外
目標 unsafe を使わない、不正な入力でパニックしない、結果が決定的、グローバル状態なし、WebAssembly 向けにビルド可能、そして C++ 版と同一トポロジーで相対誤差 1e-9 まで数値が一致すること。Rust と C++ を比べる「difftest」でユニットごとに検証
状況 「約3分の1を移植し、C++ 版と照合済み:数学、NURBS、曲線の各層。曲面とトポロジーは作業中」「まだ端から端まで使えるものは何もない(プリミティブ、ブーリアン、フィレットは未実装)」
進捗 公開ダッシュボードで、ユニットごとの移植状況とテスト結果を確認できる

目標を見ると魅力がわかります。決してパニックせず、毎回同じ結果を返し、WebAssembly にコンパイルできるカーネルは、ブラウザーでも動き、AI エージェントから操作されるアプリにぴったりです。

SolidCraft ユーザーへの影響

ほかの CAD ソフトとの比較

ソフト カーネル
SolidCraft 0.18.2 truck の Rust クレート(Apache-2.0)上の独自カーネル層。SolidCore を評価中
FreeCAD Open CASCADE Technology(OCCT)。長い実績のある C++ カーネル(LGPL-2.1)
多くの商用 CAD Siemens の Parasolid などのライセンス供与される商用カーネル

実用レベルの B-rep カーネルを書くのは、とても難しいことで知られています。SolidCraft が Show HN で公開されたとき、あるコメント投稿者は truck への依存を指摘し、「B-rep カーネルを作るのは途方もない作業量だ」と書いていました。2つのオープンソース CAD の違いは SolidCraft と FreeCAD の比較をご覧ください。

よくある質問

SolidCraft は SolidCore に移行するのですか?評価中です。決定は発表されていません(2026年10月21日時点)。

SolidCraft の開発は止まっているのですか?止まっているのはカーネルの作業だけです。UI、スケッチ、アセンブリ、図面、ドキュメント、翻訳は続いています。

SolidCore は今すぐ使えますか?モデリングカーネルとしては使えません。プリミティブ、ブーリアン、フィレットがまだありません。

SolidCraft は OpenCASCADE を使っていますか?いいえ。プロジェクトの規則で、OpenCASCADE や FreeCAD などの GPL/LGPL の CAD コードを読むこともリンクすることも禁じられています。FreeCAD は、テスト用の基準値を計算するために別プログラムとして実行されるだけです。

出典(2026-10-21 確認)

ほかの記事:SolidCraft ブログ · 当サイトは SolidCraft および Tangency Labs とは無関係です(このサイトについて)。