Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CAD / B-rep の ML 解析と DreamCAD — ECCV 2026 読み会

Avatar for Daigo HIROOKA Daigo HIROOKA
October 24, 2026

CAD / B-rep の ML 解析と DreamCAD — ECCV 2026 読み会

第 68 回 コンピュータビジョン勉強会@関東「ECCV 2026 読み会」(2026-10-25)の発表資料です。

製造業で使われる 3D 表現である B-rep(Boundary Representation)を ML で扱う基本を整理したうえで、ECCV 2026 の DreamCAD を紹介します。DreamCAD は、微分可能な曲面パッチ(有理 Bézier)を CAD の手前に置き、注釈のないメッシュ 130 万件からテキスト・画像・点群による CAD 生成を学習する手法です。最後に、ECCV 2026 のほかの B-rep 論文も紹介します。付録では理解の補足として、ボクセル特徴の作り方、2 段の生成と flow matching、位相の復元について補足しています。

論文:DreamCAD: Scaling Multi-modal CAD Generation using Differentiable Parametric Surfaces(arXiv:2603.05607)
論文の図は CC BY 4.0 に従い、出典を明記して引用しています。

Avatar for Daigo HIROOKA

Daigo HIROOKA

October 24, 2026

More Decks by Daigo HIROOKA

Other Decks in Science

Transcript

  1. ECCV 2026 · 論文読み会 CAD / B-rep の ML 解析と

    DreamCAD DreamCAD を中心に、ECCV 2026 の B-rep 研究を 読む。 MAIN DreamCAD — 微分可能な曲面パッチを使い、注釈なしのメッシュ 130 万件で CAD 生成を学習する OTHERS Masked BRep AE(+先行研究 BRepMAE)· BrepLLM · BrepCoder · Pointer-CAD v2 · BRepFacetGen · Block Decomposition DreamCAD · ECCV 2026 B-rep papers 01 / 50
  2. 自己紹介 自己紹介 名前 廣岡大吾 所属 キャディ株式会社 扱うデータ 製造業の図面や CAD など、さまざまなデータ

    関心 エージェントの改善、スケーラビリティ @daigo_hirooka MLOps Team Lead 今日は CAD / B-rep を ML で扱う基本を押さえてから、DreamCAD を詳しく読みます。 自己紹介 02 / 50
  3. § 0 · 前提 製造で使われる 3D 表現:B-rep B-rep(Boundary Representation、境界表現)は、幾何(曲面の式)と位相(面と辺のつながり)の 2

    つで立体を表す。 同じ円筒を 2 通りで表す MESH — 三角形 300 枚 B-REP — 面3·辺2 E1 = 上面の円(辺) F1 v_k = (x, y, z) × 152 個。面や辺の区別はない F2 (底面・裏側) F3 では、円筒面を 閉じる継ぎ目(seam)の辺が入り、 辺 3 · 頂点 2 と数える ※ OpenCASCADE 頂点 152 · 三角形 300 面 3 · 辺 2 · 頂点 0 ※ 寸法を変えられない。半径という自由度は存在せず、300 枚の三角形の座標を 半径を値(r=25.0)として持つ。面と辺が単位なので、公差や加工指示もここ 動かすしかない に紐づく 設計変更 加工(CAM) § 0 F2 = Cylinder(axis, r=25.0) 設計履歴を持つ CAD では、寸法を書き換えると形状全体が更新される(p.6) 平面・円筒面など面の種類で工具経路が変わる 前提 · B-rep 公差の指示 データ交換 ⌀ 「この円筒面は 50 ±0.01 mm」と面を単位に付ける STEP 形式。CAD カーネル(OpenCASCADE など)で処理 03 / 50
  4. § 1 · CAD / B-REP を M L で扱う

    CAD データの中身 STEP ファイルを CAD カーネル(OpenCASCADE。Python からは pythonocc や occwl)で読むと、立体から頂点までの階層構造が得ら れる。 立体(Solid) 閉じた 1 つの部品 シェル(Shell) 立体を囲む面のつながり 面(Face) 曲面の種類(平面・円筒・B-spline など)+ (u, v) の範囲 + トリム ループ(Loop) 面の境界をなす辺の輪(外周と穴) 辺(Edge) 曲線 + 両側の 2 つの面(凸・凹・滑らか) 頂点(Vertex) 3D の点 ML でよく使うのは面と辺。面は「どんな曲面を、どこで切り抜いたか」、辺は「どの 2 面が、どんな角度で接しているか」を持つ。 § 1 ML で扱う · CAD データの中身 04 / 50
  5. § 1 · CAD / B-REP を M L で扱う

    面は「曲面を切り抜いたもの」 パラメータ領域 (u, v) 3D の面(円筒面に穴) S(u, v) 曲面の式で 3D へ 面の内側 トリムで除いた部分(穴) 穴の縁は辺。辺は 3D の曲線と、 uv 上の境界(トリム)の両方を持つ 面 = 曲面の式 S(u, v) + 切り抜く範囲(トリム)。平面や円筒のように式が単純な面も、B-spline のような自由曲面もある (u, v) のグリッドで点・法線・内外の判定を取ると、面を「曲面に貼った小さな画像」として扱える(UV グリッド)。DreamCAD のパッチも 同じ (u, v) の考え方 辺は、両側の面の法線から凸・凹・滑らかを判定できる。加工フィーチャ(穴・ポケット)の手がかりになる § 1 ML で扱う · 面とトリム 05 / 50
  6. § 1 · CAD / B-REP を M L で扱う

    もう 1 つのデータ:設計履歴(手順) 設計者が作るのは面の集合ではなくスケッチを描いて押し出す手順で、その実行結果が B-rep。つまり CAD はカーネルへのプログラム に近い。 s1 = Sketch(plane=XY); s1.circle(center=(0,0), r=25.0) b = Extrude(s1, distance=114.0) b = Cut(b, Extrude(Sketch(b.face("top")) .circle(r=18.0), -114.0)) b = Fillet(b.edges("top"), radius=2.0) XY 平面に円を描く(2D のスケッチ) 円を押し出して円柱にする 上面に小さい円を描き、下まで抜いて管にする 上面の縁(外周と内周の辺、橙)を丸める STEP に残るのは形(B-rep)だけで、手順は残らない。設計履歴付きのデータは CAD ソフトの記録からしか得られず、DeepCAD の約 17 万件、 Fusion 360 Gallery の約 8 千件など規模が限られる。 § 1 ML で扱う · 設計履歴 06 / 50
  7. § 1 · CAD / B-REP を M L で扱う

    ML の入力にする 5 つのアプローチと、実装イメージ アプローチ 何に変換するか 代表例 # UV グリッド + グラフ の作り方(occwl) solid = load_step("part.step")[0] メッシュ・点群 テッセレーションしてサン 3D 生成全般 · DreamCAD プル g = face_adjacency(solid) # ノード=面, エッジ=辺 for i in g.nodes: f = g.nodes[i]["face"] UV グリッド + 面ごとのグリッドと、面隣 グラフ 接グラフ pts = uvgrid(f, 10, 10, method="point") UV-Net · BRepNet · MAE 組 nrm = uvgrid(f, 10, 10, method="normal") msk = uvgrid(f, 10, 10, コマンド列・コー 設計履歴をトークン列や DeepCAD · CAD-Recode · ド Python に Pointer-CAD 面・辺の潜在ベク 面と辺の位置と形を潜在ベ BrepGen · HoLa トル クトルに 画像 多視点のレンダリング method="visibility_status") for a, b in g.edges: # 辺は両方向で持つ(E は辺数×2) crv = ugrid(g.edges[a, b]["edge"], 10) 面 (F,10,10,7) · 辺 (E,10,·) · 隣接 (2,E) # → GNN / Transformer へ # VLM 系 · DreamCAD の特徴抽 出 occwl の API(load_step は旧 API で、現行は Compound.load_from_step)。DreamCAD はメッシュを入口にし、B-rep は後段で復元する § 1 ML で扱う · 入力のアプローチと実装 07 / 50
  8. § 1 · CAD / B-REP を M L で扱う

    深層学習で B-rep を扱うときの論点 論点 01 論点 02 論点 03 決まった入力形式に当てはまらない 位相が離散的で、勾配が流れにくい 正しい面の分け方が 1 つに決まらない 画像(グリッド)・点群・系列のどれにも当 面と辺のつながりは離散的で、正解との差を 同じ形状でも、妥当な面の分け方が複数あり てはまらない。グラフ、UV グリッド、コード 勾配で戻す学習に直接は乗りにくい。 得る。 など扱い方が複数ある。 → DreamCAD 論点 04 論点 05 今日の中心 学習データが少ない 求められる寸法精度が高い DreamCAD が取り組む論点 ラベル付き・設計履歴付き・テキスト付きの 製造の公差は 0.01 mm オーダー。見た目の近 DreamCAD:02・04 に取り組む データは、規模が限られる。 さとは別の評価軸が要る。 ほかの 6 本は最後にまとめて紹介 → DreamCAD § 1 ML で扱う · 論点 08 / 50
  9. § 2 · MAIN PAPER MAIN PAPER — 生成 DreamCAD

    Scaling Multi-modal CAD Generation using Differentiable Parametric Surfaces 著者 M. S. Khan · M. Usama · R. A. Potamias · D. Stricker · M. Z. Afzal · J. Deng · I. Elezi 所属 DFKI / RPTU + Imperial College London + Huawei London Research Center 系譜 CAD-SIGNet → Text2CAD(NeurIPS 2024)→ 本論文 出典 ECCV 2026 · arXiv:2603.05607 § 2 DreamCAD 09 / 50
  10. § 2 · DREAMCAD やりたいこと:テキスト・画像・点群から CAD モデルを作る 入力 ① テキスト

    本来ほしい出力:編集できる CAD モデル( B-REP / STEP ) 「外径 104 mm・厚さ 12 mm の円形フランジ。中央に直径 26 mm の貫 通穴、周りに 4 つのボルト穴」 s = Sketch(XY).circle(d=104) b = Extrude(s, 12) b = Hole(b, d=26) 入力 ② 画像 部品の写真やレンダリング 1 枚 → b = Pattern(Hole(b, d=9), n=4) DREAMCAD # 寸法を書き換えれば形が更新される が出力するもの 滑らかにつながった曲面パッチの集まり(平均 2546 入力 ③ 点群 スキャンなどで得た点の集まり 枚)。B-rep への変換は後段で行う(試行段階) これをどう学習させるか。既存のやり方を、この目標に照らして見ていく。 サンプルの文章・図・コードは説明用に作ったもの。学習データと評価のしかたは後半で紹介する § 2 DreamCAD · やりたいこと 10 / 50
  11. § 2 · DREAMCAD なぜ難しいか:CAD カーネルのところで勾配が切れる 注釈のない大量のメッシュから学ぶには、出力 → 表面の点 →

    正解との距離の経路が微分できる必要がある。CAD を出力すると、この 経路が CAD カーネルのところで切れる。 生成器 θ 出力(コマンド列・B-rep) ∂L/∂θ を戻したい CAD カーネル 表面の点 ✗ 離散的な処理で、勾配が通らない 正解との Chamfer 距離 ここまでは微分できる 位相の決定・ブーリアン演算・トリムは離散的な処理で、出力と正解の差を勾配として戻せない そのため CAD を出力する手法の多くは、正解の手順や B-rep と一致させる学習になり、注釈付きのデータが必要になる(注釈なしの手法は単 純な形に限られる) § 2 DreamCAD · なぜ難しいか 11 / 50
  12. § 2 · DREAMCAD その結果、既存のやり方は 2 つの方向に分かれる CAD を出力する手法(上の 2

    行)は注釈付きのデータで学び、大量のメッシュで学ぶ手法(3 行目)は CAD を出力しない。 やり方 代表例 出力が CAD になるか 大規模データで学べるか 複雑な形を扱えるか 設計履歴を系列として生成 DeepCAD · Text2CAD · CAD-Recode ◦ そのまま CAD △ 履歴付きは十数万件 △ スケッチと押し出しが中心 B-rep を直接生成 BrepGen · HoLa · AutoBrep ◦ 位相まで出せる △ B-rep が必要 △ 面の多いモデルは苦手 汎用の 3D 生成 大規模 3D 生成モデル × メッシュ・SDF ◦ 数百万のメッシュ ◦ DreamCAD — △ 中間表現 → 後段で B-rep ◦ 注釈なしメッシュ 130 万 ◦ DreamCAD は、CAD カーネルの手前に微分できる中間表現を置いて、この 2 つの両立を目指す。 ◦△× は DreamCAD 論文 §2 の整理をもとに、発表者が簡略化したもの。「面の多いモデルは苦手」は、UV・グラフ系では面数の制限で ABC の約 70% が除外されるという同論文の指摘による § 2 DreamCAD · 既存のやり方 12 / 50
  13. § 2 · DREAMCAD DreamCAD の方針:幾何と位相を分ける 目標までの道のりを 2 段に分け、勾配が通る前半(幾何)を大規模データで学ぶ。後半(位相)は別の段で扱う。 テキスト

    / 画像 / 点群 → 幾何:滑らかにつながった曲面パッチを生成 → 位相:面にまとめて B-rep に復元 → 編集できる CAD(STEP) 幾何の段:この論文の中心 位相の段:試行段階 曲面パッチは微分できるので、注釈のないメッシュ 130 万件で学習でき LLM でパッチを NURBS(CAD で標準的に使う曲面の表し方)の B-rep る。画像・点群・テキストのすべての入力で SOTA に変換する実験を示している(600 サンプル)。完全な位相の復元は、 著者が今後の課題として挙げている 著者の主張:幾何と位相を一度に大規模データから生成するのは難しい。まず幾何を学び、位相は、点群から CAD を作り直す研究(逆エンジニ アリング)の蓄積を使える後段に回すほうが、スケールしやすい。 § 2 DreamCAD · 方針 13 / 50
  14. § 2 · DREAMCAD 全体の構成:VAE と、潜在空間での生成 Stable Diffusion と同じく、潜在空間で生成する 2

    段構成。まず形の表現を VAE で学び、その潜在表現を条件付きで生成する。 ① VAE:形の表現を学ぶ(CAD 用のラベルは使わない、130 万メッシュ) メッシュ → エンコーダ → ボクセルごとの潜在ベクトル(SLAT) → デコーダ → 曲面パッチ → 点群にして元のメッシュと比較 ② 生成:条件から潜在ベクトルを作る(flow matching) テキスト / 画像 / 点群 → 粗い段 → 細かい段 → ボクセルごとの潜在ベクトル(SLAT) → ① のデコーダ → 曲面パッチ グレー:既存手法 TRELLIS ( CVPR 2025 )を踏襲 青緑: DREAMCAD が置き換えた部分 ・形の表し方:SLAT(ボクセルの位置 + 潜在ベクトル) ・デコーダの出力:Bézier パッチ ・エンコーダ:多視点の DINOv2 特徴をボクセルに集める(DreamCAD は法線・SDF を追加) ・生成:粗い段で位置、細かい段で潜在ベクトル → 「エンコーダと生成」で説明 § 2 DreamCAD · 全体の構成 TRELLIS は Gaussian・メッシュなどを出力 ・損失:点群との Chamfer 距離 TRELLIS はレンダリング画像との差で学習 → 「アイデア」「実装イメージ」で説明 14 / 50
  15. ① V A E :出力の表現 § 2 · DREAMCAD ·

    アイデア:B-rep の手前に、微分可能な曲面パッチを置く 形を有理 Bézier パッチの集まりで表し、位相の復元は後段に分ける。 ∑3i=0 ∑3j=0 Bi (u) Bj (v) wij Pij , S(u, v) = ∑3i=0 ∑3j=0 Bi (u) Bj (v) wij ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 全体:曲面パッチの集まり(平均 2546 枚) 3 Bi (t) = ( ) ti (1 − t)3−i i ​ ​ S(u, v):1 枚のパッチの曲面。(u, v) ∈ [0, 1]² を 3D の点に写す 拡大 Pij:制御点(3 次元)、wij:重み(正)。どちらもパッチごとに持つ パッチ A Bi:Bernstein 基底。(u, v) を決めれば定数になる(基礎は付録 A2b) パッチ B 初期値はメッシュから:32³ ボクセルの外面の四角形(quad)ごとに 1 枚 制御点の初期位置は、四角形の 4 隅から補間する 出力は連続値だけ:制御点の変位と重み 変位は tanh で近傍に制限し、重みは softplus で正に保つ 継ぎ目は構造で保つ:隣のパッチと境界の制御点 4 個を共有する 共有する境界の曲線(• 4 個から計算) 塗り・実線 = 曲面 S(u, v)(式で計算) ◦ 点線 = 制御点。曲面が通るのは 4 隅だけ ━ → C0 連続(位置がつながる)。G1(接平面もそろう)は損失で促す § 2 DreamCAD · アイデア 15 / 50
  16. § 2 · DREAMCAD · ① V A E :出力の表現

    実装イメージ:曲面をグリッドで評価して、点群と比べる (u, v) のグリッドを固定すると、テッセレーションは制御点と重みについての滑らかな式になる。分岐も argmax も通らないので、点群 との距離をそのまま backward できる。 パッチ数(平均 2546) 4 = 1 方向の制御点の数(3 次で固定) r = 評価するグリッドの細かさ dP, w_raw = decoder(slat) # デコーダ:SLAT から変位 (N, 4, 4, 3) と重み (N, 4, 4) を予測 dP = scatter_mean(dP, shared_id) # 共有する境界の点は、予測を平均して 1 つに # N = w_raw = scatter_mean(w_raw, shared_id) 初期位置(quad の 4 隅から補間)に変位を足す w = F.softplus(w_raw) # 重みは正に保つ Bu = bernstein(torch.linspace(0, 1, r)) # (r, 4):グリッドの r 点での基底 4 個の値。学習しない定数 num = torch.einsum("ui,vj,nij,nijk->nuvk", Bu, Bu, w, P) # S(u, v) の分子 den = torch.einsum("ui,vj,nij->nuv", Bu, Bu, w) # S(u, v) の分母 V = num / den[..., None] # (N, r, r, 3):S(u, v) をグリッドで評価した座標(メッシュの頂点) X = sample_points(V, faces_fixed) # 三角形のつなぎ方は固定 loss = chamfer(X, Y_gt) + reg(P, w, V) # reg:正則化(G1・Laplacian)と VAE の KL loss.backward() # → 制御点 → デコーダ → エンコーダ P = P0 + torch.tanh(dP) # 論文の記述をもとにした概念的な疑似コード。学習中にグリッド r は 4×4 → 16×16、比較に使う点数は 16K → 100K へ段階的に増やす § 2 DreamCAD · 実装イメージ 16 / 50
  17. § 2 · DREAMCAD · ① V A E のエンコーダと

    ② 生成 エンコーダと生成:位置と潜在ベクトルを作る SLAT(Structured LATents、構造化潜在表現)はどこに形があるか(表面にかかるボクセルの位置)と、そこにどんな形があるか(ボ クセルごとの 8 次元の潜在ベクトル)の組。この表し方は TRELLIS を踏襲している。 ① エンコーダ(VAE の学習時):メッシュから SLAT を作る メッシュ → 32³ ボクセルの表面だけ残す(位置) + 多視点の DINOv2 特徴をボクセルに集める → 細かい段:各位置の潜在ベクトル → sparse Transformer で潜在ベクトルに ② 生成(推論時):条件から SLAT を作る。同じ 2 つを順に作る 画像 / 点群 / テキスト → 粗い段:位置を決める → ① のデコーダ → 曲面パッチ 生成が 2 段なのは、SLAT が「位置」と「潜在ベクトル」の 2 つでできているから テキストは直接の条件にせず、CADCap-1M で微調整した画像生成モデル(SD3.5)で画像にしてから使う。事前学習のままでは穴の数のよう な数の制約を保てない 視点数・層数・学習ステップ・生成時間などの数値は付録 A5・A6 § 2 DreamCAD · エンコーダと生成 17 / 50
  18. § 2 · DREAMCAD 学習データと CADCap-1M CADCap-1M の構築と公開は、この論文の貢献の 1 つ。テキストから画像を作る段(SD3.5-2B)の

    LoRA 微調整に使う。形状の学習に は、公開データセットから集めた 130 万件のメッシュを使う。 CAD モデル(主に STEP) → Blender で 4 方向の正投影 1M+ キャプション( CADCAP-1M ) HUGGING FACE で公開 + メタデータ:モデル名・穴の数・寸法比 95.8% キャプションの正しさ (人手評価) → GPT-5 がキャプションを生成 80.3% メタデータあり・なしの キャプションで、ありが選ばれた割合 形状の学習データ( 10 データセット、計 1,306,409 メッシュ) 件数 ABC 757,433 Automate 380,124 ShapeNet · CADParser · HSSD · 3D-Future · ModelNet · ABO · Fusion360 · Toys4K 計 約 17 万 学習の規模:VAE 3 週間(70 万ステップ)· 生成の 2 段 各 50 万ステップ · キャプション GPT-5 で約 1,800 ドル。GPU は論文に記載なし § 2 DreamCAD · データ 18 / 50
  19. § 2 · DREAMCAD 結果 画像・点群・テキストのすべての入力で SOTA 点群 → CAD(ABC)の

    F1 は 92.12(Cadrille は 78.86) DeepCAD のデータだけで学習しても上回 る。データ量だけの効果ではない ほかの手法が崩れる入力でも、形を保って いる(左図) Fig.5 CD 点群・画像・テキストから生成した形の比較。✗ は無効なモデルになった例(論文より、CC BY 4.0) ・F1 などは、出力から 8192 点を取り、単位立方体に正規化して計算する。測っているのは形の近さで、寸法や CAD としての正しさではない(論点 05) § 2 DreamCAD · 結果 19 / 50
  20. § 2 · DREAMCAD 設計の判断とトレードオフ 正則化:滑らかさと距離のバランス ボクセル解像度:パッチ数と精度 正則化 CD ↓

    ( ×10³ ) 解像度 パッチ数 CD なし 0.0210 0.0073 24 1,434 0.0231 + G1 0.0230 0.0064 32(採用) 2,546 0.0110 + Laplacian 0.0225 0.0022 48 7,720 0.0109 + G1 + Laplacian(採用) 0.0259 0.0020 64 10,179 0.0105 LAPLACIAN ↓ ( ×10³ ) ( ×10³ ) 正則化なしは CD が最小だが、表面にとがった突起が出る。滑らかさの 48・64 ではパッチ数が 3〜4 倍になるのに、CD の改善は 1〜5%。その ために CD を少し譲っている ため解像度 32 を採用している 論文 Table 3a は 30 万件で VAE を学習して ABC の 1.5 万件で評価、3b は 1000 件のメッシュを 1 件ずつ最適化したもの。条件が違うので、同じ採用設定でも CD は表をまたいで比べられ ない。細かい形の表しやすさは付録 A5b § 2 DreamCAD · 設計の判断 20 / 50
  21. § 2 · DREAMCAD 次の課題 DreamCAD の出力:曲面パッチ CAD モデルの面 平面

    パッチの統合 → 位相の復元 円筒面 著者が次の段階として挙げている工程 平均 2546 枚(ボクセル外面の四角形ごとに 1 枚) 〜 10 100 枚(平面・円筒面などの単位) 位相の復元:LLM で NURBS に変換する試行を示している(600 サンプルで 99.2% が有効な CAD になった。面の分け方が意図どおりかまでは 評価していない)。著者は完全な位相の復元を今後の課題と位置づけている(変換の工程と難しさは付録 A9b) 入力ごとの精度:点群からは CD 0.93、テキストからは 20.32。テキストは画像を経由する 2 段構成で、改善の余地が大きい § 2 DreamCAD · 次の課題 21 / 50
  22. § 3 · ECCV 2026 ECCV 2026 のほかの B-rep 論文

    読む(理解) 作る(生成) 再構成・下流工程 Masked BRep AE 論点 01・04 Pointer-CAD v2 論点 05 BRepFacetGen(Autodesk) 論点 03 (+先行研究 BRepMAE)B-rep の面と辺を隠 テキストから CAD。寸法を先に「プラン」と 凍結した汎用 3D モデル(TripoSG)の上で、 して復元する MAE。ラベル 0.1% の加工フィ して書き、組み立て時は pointer で参照する 面の分け方を生成問題として学習する 見た目の指標ではほぼ満点でも、穴が 0.1 mm Block Decomposition ずれれば製造では別の部品。絶対スケールで 解析用の六面体メッシュを作るためのブロッ 頂点・辺・面の精度を測る指標も提案 ク分解を、オンライン強化学習で(特徴抽出 ーチャ認識で、教師ありの約 46% に対し約 89% BrepLLM 論点 01 B-rep を LLM に入力する橋渡し。B-rep とテ は学習済みの AAGNet) キストの組 Brep2Text を構築 BrepCoder 論点 01 B-rep から CAD コードへ。補完・誤り修正・ QA を 1 つのモデルで B-rep § 3 を扱う主な 7 本(DreamCAD を含む、発表者の選定。BRepMAE は ECCV 外の先行研究)。論点の番号は §1 の論点リストに対応。各論文の一覧と公開状況は付録 A1 ほかの B-rep 論文 22 / 50
  23. まとめ まとめと今後の方向 CAD / B-rep は、曲面・位相・設計手順をあわせ持つデータ。ML ではメッシュ・UV グリッドとグラフ・コードなど、複数の扱い方がある DreamCAD は微分可能な曲面パッチを挟み、注釈なしのメッシュ

    130 万件で CAD 生成を学習できることを示した ほかの分野にも使える設計 ・離散的な出力の手前に、微分できる中間表現を置く ・既存の 3D 生成の潜在表現の設計を流用し、デコーダだけ差し替える ・メタデータを添えて、キャプションの幻覚を減らす 今後の方向 問いかけ 中間表現から B-rep への復元 · 実データでの検証 · 図面と 3D の対応づ CAD 専用の表現と汎用 3D 基盤モデル、どう使い分けていくか け · 汎用 3D モデルとの組み合わせ DreamCAD arXiv:2603.05607 · ほかの論文は付録 A1・A13 23 / 50
  24. APPENDIX 付録 質疑応答と、処理の理屈・実装の補足 A1–A2 7 本の一覧 · 用語集 · Bézier

    の基礎(A2b)· データセット(A2c) A4–A10 DreamCAD の詳細(ボクセル特徴の作り方は A5a、解像度の限界は A5b、2 つの潜在表現は A5c、SLAT と 2 段の生成は A5d、 Stable Diffusion との対応は A6b、flow matching は A6c、位相の復元の中身は A9a、B-rep への変換の難しさは A9b、正解の B-rep と比べる手法は A9c) A11–A13 Appendix 系譜 · 想定質疑 · 出典(論文と参照した手法) 24 / 50
  25. A1 · ECCV 2026 ECCV 2026 の CAD / B-rep

    論文 7 本 論文 一言 本文の入手先 コード・データ( 2026-10 時点) DreamCAD 微分可能な曲面パッチで、複数の入力モダリティから CAD を生成 arXiv:2603.05607(CC BY 4.0) CADCap-1M と LoRA 重みを公開 Masked BRep AE 階層的なグラフ Transformer で B-rep に MAE を適用 arXiv:2603.14927 見つからず (参考)BRepMAE 同じ研究室の先行研究。加工フィーチャ認識に MAE arXiv:2602.22701(ECCV 外) GitHub で公開 Pointer-CAD v2 テキストから CAD。寸法をプランに書き、pointer で参照 arXiv:2606.29301 コードを公開、データは準備中 BRepFacetGen 汎用 3D 基盤モデルの上で、面分割を生成問題として解く ECCV 本体 PDF 見つからず BrepLLM B-rep を LLM に入力するための橋渡し。Brep2Text データ arXiv:2512.16413 データと一部のコードを公開 BrepCoder B-rep から CAD コードへ。補完・修正・QA も 1 モデルで arXiv:2602.22284 見つからず Block Decomposition 解析用メッシュのためのブロック分解を、オンライン強化学習で ECCV 本体 PDF 見つからず A1 · 7 本の一覧 25 / 50
  26. 用語 A2 · 用語集 B-rep 位相(トポロジー) CAD カーネル 境界表現。曲面の式と、面・辺・頂点のつながり(位相)で立体を表す どの面がどの辺で接しているか、という離散的な接続関係

    B-rep を作成・演算する幾何エンジン(OpenCASCADE、Parasolid など) STEP CAD データ交換の標準形式(ISO 10303) Bézier / NURBS 制御点で形を決める曲面。NURBS は Bézier を一般化したもので、CAD で標準的に使われる テッセレーション UV グリッド 面隣接グラフ SLAT 曲面を三角形メッシュに分割すること 曲面のパラメータ空間 (u, v) にグリッドを張り、各点の座標や法線を並べたもの。曲面上の「小さな画像」として扱える 面をノード、辺をエッジとするグラフ。属性付きのものは AAG / gAAG と呼ばれる Structured LATents(構造化潜在表現)。表面にかかるボクセルの位置と、ボクセルごとの潜在ベクトルの組。TRELLIS(CVPR 2025)の表し方で、 DreamCAD も使う 距離(CD) 機械加工フィーチャ Chamfer A2 · 用語集 2 つの点群の間の平均的な近さ。形の全体的な一致を測る ポケット・穴・段差・スロットなど、加工で作られる形状要素 26 / 50
  27. A2B · 基礎 Bézier 曲線 → Bézier パッチ → 有理

    Bézier パッチ ① BÉZIER 曲線( 3 次、制御点 4 個) P1 ② BÉZIER パッチ( 3 次、制御点 4×4 個) P2 P3 3 C(t) = ∑ Bi (t) Pi , ​ ​ Bi (t) = (3i ) ti (1 − t)3−i ​ ​ 曲線上の点は制御点の重み付き平均(Bi は Bernstein 基底)。両端 P0・P3 は曲線上に乗り、P1・P2 は曲が w=0.3 太線 w=√2/2 → 正確な四分円 点線 = 制御点の網(4×4) 実線 = 曲面 S(u, v) = ∑ Bi (u) Bj (v) Pij ​ ​ ​ ​ i,j i=0 S= ∑i,j Bi Bj wij Pij ​ ​ ​ ​ ∑i,j Bi Bj wij ​ ​ ​ ​ ​ ​ 縦横の 2 方向に同じことをすると曲面にな 重みが大きい点ほど強く引き寄せる。円や る。縁の形は外周の制御点だけで決まる 円筒を正確に表せる(多項式だけでは近似 り方を決める DreamCAD (重み w) P1 w=3 P0 ​ ③ 有理 BÉZIER ( 2 次、重み付き) のみ)。NURBS の基礎 は (u, v) を固定して評価するので、Bernstein 基底は定数になり、曲面上の点を制御点と重みで微分できる A2b · Bézier と有理 Bézier 27 / 50
  28. データ A2C · データセットと、前処理の注意点 データセット 中身 規模の目安 ABC 公開 CAD

    モデルの B-rep(STEP) 約 100 万 DeepCAD スケッチと押し出しの設計履歴(コマンド列) 約 17 万 Fusion 360 Gallery 設計履歴付きの CAD 約 8 千(再構成用) MFInstSeg など 面ごとに加工フィーチャのラベルが付いた合成データ 約 6 万(MFInstSeg) Objaverse など 一般物体のメッシュ(CAD ではない) 80 万超(XL は 1,000 万超) 寸法 重複・不正 面数の偏り 単位立方体などに正規化すると寸法の情報が ほぼ同じモデルや開いた立体が多い。重複除 面数でフィルタすると複雑な部品が抜ける。 消える。精度を問うタスクでは元のスケール 去と妥当性チェックが前処理の定番 UV・グラフ系では ABC の約 70% が除外され を残す A2c · データセットと前処理 るという指摘もある(DreamCAD) 28 / 50
  29. A4 · DREAMCAD 継ぎ目の連続性を構造で保つ仕組み # 前処理: ボクセル → C0 パッチ集合(決定論的)

    quads = surface_quads(flood_fill(voxels)) # 学習時は voxelize(mesh, 32)、生成時は粗い段の出力 patches = [RationalBezierPatch(q) for q in quads] link_shared_control_points(patches) # デコード: SLAT → 制御点の変位 d = decoder(slat) for cp in shared_control_points: # 境界の制御点を 1 変数に束ねる :学習時は encoder(mesh)、生成時は flow で作る # ★C0 を保証する一行 # slat cp.xyz = base[cp] + mean(d[p][cp] for p in cp.adjacent_patches) # ※ 共有点は一意の座標しか持てない → 隙間・重なりが出ない 疑似コードは本文記述からの再構成。正確な定義は論文の Method 節を参照 共有する制御点の変位と重みは、その点を共有するすべてのパッチの予測を平均して決める 変位は tanh で近傍に収める(制約がないとスパイクや自己交差が起きる)。重みは softplus で正に保つ(有理 Bézier で負の重みは破綻の原 因になる) A4 · DreamCAD · C0 連続の保証 29 / 50
  30. A5 · DREAMCAD エンコーダと損失 エンコーダ 損失 メッシュを 32³ ボクセルにし、表面にかかるボクセルを取る。150 視点

    Chamfer 距離(CD)+ 隣接パッチの接線連続性(G1)+ 滑らかさ の RGB と法線をレンダリングし、DINOv2 の特徴を各ボクセルに投影し (Laplacian)+ KL。VAE の学習は 3 週間、70 万ステップ て平均する。ボクセル特徴(2502 次元、内訳は A5a)を sparse Transformer で潜在ベクトルに変換する 正則化 CD ↓ なし 0.0210 0.0073 + G1 0.0230 0.0064 + Laplacian 0.0225 0.0022 + G1 + Laplacian(採用) 0.0259 0.0020 A5 · DreamCAD · エンコーダと損失 ( ×10³ ) LAPLACIAN ↓ ( ×10³ ) 読み方 滑らかさを得るために、CD を少し犠牲にしている(論文 Table 3a) 30 / 50
  31. A5A · DREAMCAD ボクセル特徴は、多視点の DINOv2 特徴に形の情報を足して作る 表面のボクセルごとに 2502 次元の f_i

    を作り、sparse Transformer で 8 次元の z_i にする(論文の式 (2)・(3)、補足資料)。 視点 1 視点 2 … 視点 150 ① 32³ の表面ボクセル(3D) (橙が v_i) ② 視点ごとに RGB と法線の 画像(2D)を描き、DINOv2 で 特徴マップ(37×37)にする ③ v_i を各画像に投影し、 その位置(橙の点)の 特徴を取って 150 視点で 平均する ④ 形の情報を足してつなげる → f_i(2502 次元) : p DINOv2 特徴 2048(推測) n 450 中身 次元 p(v_i) RGB と法線の DINOv2 特徴の平均 2048(推測) n(v_i) 視点ごとの法線 450(150 × 3) c(v_i) ボクセルの中心座標 3 s(v_i) 符号付き距離(表面への近さ) 1 f_i 4 つをつなげたもの 2502 F_I の要素 の次元は論文に書かれていない。2502 − 450 − 3 − 1 = 2048 から逆算し、 1024 次元の DINOv2(ViT-L/14)を RGB と法線で 2 つ並べたと推測した p(v_i) ← c 3 · s 1 設計の意図 論文に書かれていないこと 多視点の DINOv2 特徴を集めるのは TRELLIS と同じ。テクスチャのない 投影位置の特徴の取り方(TRELLIS は補間)、隠れた視点も平均に入れ CAD 向けに、法線と符号付き距離を足している るか、n(v_i) の取り方(法線画像の値と推測) A5a · DreamCAD · ボクセル特徴の作り方 31 / 50
  32. A5B · DREAMCAD 32³ ボクセルで、細かい形は表せるか 思ったより細かく表せる理由 表しにくいもの ボクセルはパッチを置く場所の下書き。各パッチは制御点を動かしてボ ボクセルより小さい穴・薄い壁・段差は消えやすい(論文も失敗例に挙 クセルの中で曲がれるので、円筒面や斜めの面も階段状にならない

    げ、octree 化を今後の課題とする)。変位は近傍に制限され、後から穴 は作れない ボクセル解像度(論文 TABLE 3B ) 平均パッチ数 CD ( ×10³ ) 24 1,434 0.0231 約 4 mm 32(採用) 2,546 0.0110 約 3 mm 48 7,720 0.0109 約 2 mm 64 10,179 0.0105 約 1.6 mm 1 ボクセルの目安( 100 MM の部品、発表者の見積もり) CD で見ると 32 でほぼ頭打ちだが、CD は形全体の平均的なずれしか測らない。直径 3 mm の穴が 1 つ消えても数値はほとんど変わらないが、製 造では別の部品になる。 A5b · DreamCAD · ボクセル解像度の限界 32 / 50
  33. A5C · DREAMCAD 2 つの潜在表現と、それぞれの VAE・flow Transformer 潜在表現は潜在グリッド(どこに形を置くか)と SLAT(置いた形の中身)の 2

    種類で、それぞれに VAE と flow Transformer がある。 潜在表現 VAE (先に学習して固定) 潜在グリッド (ぎっしり詰まったグリッド) VAE-A(軽量、3D 畳み込み) 占有グリッド 32³ 潜在グリッド。占有の再構成で学ぶ Flow-1(粗い段) ノイズ → 潜在グリッド。目標は VAE-A のエンコーダの出力 VAE-B(p.14 の ①) メッシュ → SLAT → 曲面パッチ。Chamfer 距離で学ぶ Flow-2(細かい段) 座標の上のノイズ → SLAT。目標は VAE-B のエンコーダの出力 FLOW TRANSFORMER ↔ SLAT (表面のボクセルごとのベクトル) (後で学習) 推論:2 つの組が順番につながる 条件 → Flow-1 → VAE-A のデコーダ → 0/1 → 座標 v_i → Flow-2 → SLAT → VAE-B のデコーダ → 曲面パッチ どちらの組も Stable Diffusion と同じ「VAE で潜在空間を作り、そこで生成する」形。p.14 の ② 生成は Flow-1・Flow-2 をまとめて描き、VAE-A は粗い段の中に含めている。各段の形は A5d A5c · DreamCAD · 2 つの潜在表現 33 / 50
  34. A5D · DREAMCAD SLAT の形と、粗い段・細かい段で作るもの SLAT は表面のボクセルの座標 v_i と潜在ベクトル z_i

    の組を N 個並べたもの。N は形ごとに違う。 ノイズ(潜在グリッド) 粗い段:位置が決まる 細かい段:SLAT デコーダ:曲面パッチ z_i 条件から生成を始める 段 粗い段 細かい段 デコーダ 占有グリッド → 座標 v_i(N 個) 各位置に z_i(8 次元) 外面の四角形ごとに 1 枚 入力 出力 やること 条件、ノイズ(VAE-A の潜在グリッドの形) 座標 v_i:(N, 3) VAE-A の潜在グリッドを生成し、デコーダで 32³ に戻して 0 / 1 にする 条件、v_i、ノイズ (N, 8) z_i:(N, 8) 座標は固定したまま、各ボクセルの潜在ベクトルを生成する SLAT {(v_i, z_i)} パッチ (N_f, 16, 4):制御点 16 個 × (xyz, w) 外面の四角形ごとに 1 枚(N_f は平均 2546) A5d · DreamCAD · SLAT と 2 段の生成 34 / 50
  35. A6 · DREAMCAD 生成段の詳細 画像 → DINOv2(固定) 条件 → 点群

    → PointNet++(同時に学習) Flow Transformer ①:粗いボクセル配置 → テキスト → SD3.5(LoRA で微調整)→ 画像 Flow Transformer ②:各ボクセルの潜在ベクトル → VAE のデコーダ → 曲面パッチ Flow Transformer は各 12 層・50 万ステップで学習。推論は 50 ステップ、CFG 7.5。生成時間は画像・点群から約 15 秒、テキストから約 30 秒 テキストを画像に変える段を CAD のキャプションで微調整するのは、事前学習のままの画像生成モデルが穴の数や歯の数のような数の制約を 保てないため σ = 1e-2 で CD が 0.93 → 4.51) 粗いボクセル配置の質が全体を左右する(粗いボクセルにノイズを加えると、 A6 · DreamCAD · 生成段 35 / 50
  36. A6B · DREAMCAD Stable Diffusion との対応:何を、どのペアで学ぶか どちらも VAE を先に学習して固定し、その潜在空間で生成モデルを学ぶ。違いは、生成モデルの条件をどこから持ってくるか。 ①

    VAE ② 生成モデル ② の目標 STABLE DIFFUSION DREAMCAD 画像を潜在表現にして、画像に戻す。条件は使わない メッシュを SLAT にして、Bézier パッチに戻す。点群との Chamfer 距離で 学ぶ。条件は使わない 拡散モデル(SD 1〜2 は U-Net、SD3 は Transformer) 2 段の flow Transformer(粗い段で位置、細かい段で潜在ベクトル) 画像を ① のエンコーダで潜在表現にしたもの 粗い段は VAE-A の潜在グリッド、細かい段はメッシュを ① のエンコーダ で SLAT にしたもの ② の条件 外から集めたテキスト:Web の画像に付いた説明文(LAION など)。最近は VLM で付 同じメッシュから自動で作る:4 方向のレンダリング画像、表面から取っ け直したキャプションも使う(SD3 は半分) た点群。人の注釈は要らない ② の損失 潜在空間で、SD1 はノイズ、SD3 はベクトル場を当てる回帰 潜在空間でベクトル場(ノイズから正解への向き)を当てる回帰(flow テキスト テキストエンコーダ(CLIP、T5)の埋め込みを直接の条件にする 推論 テキスト → ② → ① のデコーダ → 画像 matching)。パッチや点群には戻さない SD3.5 を CADCap-1M で微調整し、テキスト → 画像にしてから ② に入れ る A6b · DreamCAD · Stable Diffusion との対応 画像 / 点群(/ テキスト → 画像)→ ② → ① のデコーダ → 曲面パッチ 36 / 50
  37. A6C · 生成の仕組み flow matching:ノイズから正解へ向かうベクトル場を学ぶ 学ぶのは、ノイズを正解の分布へ運ぶ流れの向き(ベクトル場)。 学習:ノイズと正解を直線でつなぎ、途中の点で向きを当てる x_t で当てる向き 推論:ノイズから出発し、ベクトル場に沿って進む

    (正解の SLAT) x₁ x₁ = x₁ x₁ − x₀ x₀ (ノイズ) x₀ • 学習 ノイズ • 正解 • 1 ステップごとの位置(DreamCAD は 50 ステップ) 推論 ノイズを当てる方式との違い x_t = (1 − t) x + t x で、x − x を当てる ノイズから、予測した向きに少しずつ進む。 拡散は曲がった経路でノイズを当てる。直線 回帰。生成を回さずに学べる DreamCAD は 50 ステップ なら少ないステップで進みやすい ₀ A6c · flow matching ₁ の学習と推論 ₁ ₀ 37 / 50
  38. A7 · DREAMCAD 学習データと CADCap-1M 学習データ(論文 TABLE 1 ) CADCAP-1M

    の作り方 1,306,409 メッシュ / 10 データセット Blender で 4 方向の正投影をレンダリングし、STEP のモデル名、計算 ABC 757K · Automate 380K · ShapeNet 52K · CADParser 41K · HSSD 30K · で求めた穴の数、寸法比などのメタデータと一緒に GPT-5 へ渡してキ ほか 5 つ。B-rep しかないデータは OpenCASCADE でメッシュに変換 ャプションを生成。メタデータを添えると、選好評価で 80.3% がそちら を選んだ 95.8% キャプションの正しさ (人手評価) A7 · DreamCAD · データ 98.31% キャプションの正しさ ( GPT-5 評価) 公開 HUGGING FACE SADILKHAN/CADCAP-1M 38 / 50
  39. A8 · DREAMCAD 主要な結果 Table 2 点群・画像・テキストからの生成の定量比較。F1 は ×10²、CD・JSD・MMD は

    ×10³(論文より、CC BY 4.0) 分布外の Objaverse でも点群からの CD は 1.25(Cadrille は 6.28)。補足資料 Table 7:DeepCAD のデータだけで学習をそろえても、3 つの入力すべてで上回る A8 · DreamCAD · 結果 39 / 50
  40. A8B · DREAMCAD 論文の図 全体パイプライン(論文 Fig.3、CC BY 4.0) 曲面パッチと微分可能なテッセレーション(論文 Fig.2、CC

    BY 4.0) 出典:M. S. Khan et al., DreamCAD, arXiv:2603.05607(CC BY 4.0) A8b · DreamCAD · 論文の図 40 / 50
  41. A9 · DREAMCAD 位相の復元の試行 各パッチ(制御点 16 個+重み) 5 万件 →

    学習に使った ABC の B-REP ( NURBS 表現が 1 万トークン未満のもの) Transformer エンコーダ 600 → ( ) Qwen3-4B LoRA 評価サンプル (点群・画像・テキスト各 200 ) → ハイブリッド NURBS(面ごとの JSON) → B-rep 99.2% 有効な CAD の割合 (判定基準は A9A ) CD 0.17 ( ×10³ ) 著者はこの実験を実現可能性の確認と位置づけている。完全な位相の復元は今後の課題で、パッチの統合(patch-merging)、シャープな稜線の 検出などを次の方向として挙げている(§5.4 · §12)。 A9 · DreamCAD · 位相の復元 41 / 50
  42. A9A · DREAMCAD 位相の復元の中身と、論文に書かれていないこと 入力と出力 学習データの作り方 ・入力は文章のプロンプトではなく、パッチの埋め込みの列(各パッチ ・ABC から B-rep

    を 5 万件。OpenCASCADE で正解の NURBS 表現を作 の制御点 16 個と重みを Transformer エンコーダでベクトルに) り、1 万トークン未満のものだけ残す ・出力は NURBGen(AAAI 2026、同じグループ)のハイブリッド ・同じ B-rep をメッシュ → 32³ ボクセル → 初期パッチにし、2000 エポ NURBS 表現:面ごとの JSON。約 7 割の面が NURBS、残りは直線・円 ック最適化して入力を作る などの解析的な要素 ・Qwen3-4B を LoRA で 3 エポック微調整(文脈長 2 万トークン) ・トリムなしの NURBS だけではトリムされた形を正確に表せないた め、解析的な要素で補うハイブリッド表現にしている(NURBGen) 論文に書かれていないこと なぜ気になるか 「有効」の判定基準 NURBGen は「有効な B-rep 構造に変換できたか」で測る。DreamCAD も同じと考えられるが、明記はない デコードの設定(温度・サンプリング) 同じパッチからでも、出力の JSON が変わりうる 失敗した 0.8% の内訳、面の分け方の正しさ 評価は有効率と CD だけで、位相が正解と合っているかは測っていない 面の多い部品での性能 1 万トークンを超えるものは学習データから除かれている JSON から立体を組み立てる手順 NURBGen も「Python で B-rep に変換できる」までで、面を縫い合わせる手順は書かれていない A9a · DreamCAD · 位相の復元の中身 42 / 50
  43. A9B · DREAMCAD 曲面パッチから B-rep への変換は、なぜ難しいか 工程 やること 難しさ ①

    面へのまと 約 2546 枚のパッチを「1 つの平面」「1 つの円筒面」のようにグループ 正解の分け方が 1 つに決まらない。境目がずれると後の工程がすべて崩れる(高精度な め上げ 分けする インスタンスセグメンテーションに近い) ② 面の種類と 各グループに平面・円筒・円錐・球・トーラス・自由曲面のどれが合う 種類の選び間違いが起きやすい。半径 24.97 mm ではなく 25.0 mm と出したい、という設 式 かを選び、パラメータを推定する 計意図の問題もある ③ 辺を作る 隣り合う面の式を交差させ、境界の曲線を求める 面の式がわずかにずれるだけで、交線が浮く・交わらない ④ 位相を組み 立てる 辺をループにつなぎ、面を切り抜き、頂点を共有させて閉じた立体にす る すべての辺がちょうど 2 枚の面に共有され、隙間なく閉じている必要がある ⑤ 妥当性の検 査 自己交差や向きを CAD カーネルで確かめる 許容誤差の設定しだいで結果が変わる DREAMCAD の出力に固有の事情 各研究の取り組み方 滑らかさの正則化で稜線が丸まりやすく、面の切り替わりの手がかりが DreamCAD:LLM でパッチ列から NURBS の B-rep を直接出力(試行、 弱い。32³ ボクセルから出発するため小さな穴が消えることがある。数 付録 A9)。Point2CAD:分割 → 当てはめ → 交差の古典的な流れ。 千枚から数十枚へまとめるので①の負担が大きい BRepFacetGen:①を生成問題として解き、②〜④は Point2CAD に任せ る A9b · DreamCAD · B-rep への変換の難しさ 43 / 50
  44. 学習のしかた A9C · 出力を正解の B-rep と直接比べて学ぶ手法 手法 何と何を比べるか DeepCAD(設計履歴) 出力のコマンド列を、正解のコマンド列とトークンごとに比べる

    SolidGen 頂点・辺・面を順に予測する確率モデルとして、正解の B-rep から学ぶ BrepGen 正解の B-rep を面・辺・頂点の木構造の潜在表現にし、拡散モデルで学ぶ。生成後、重なった要素をまとめて位相を戻す ComplexGen 点群から頂点・辺・面とそのつながりを予測し、正解の要素と二部マッチングで対応づけてから損失を計算する ParSeNet 点ごとの面の割り当てと面の種類を、正解の面ラベルで学ぶ 正解の B-REP と比べる 形だけを比べる( DREAMCAD ) カーネルの結果を報酬にする 位相まで学べる。代わりに正解の B-rep や設 注釈のないメッシュで学べる。代わりに位相 Cadrille は出力したコードを実行し、正解と 計履歴が要る。並び順や面の分け方が 1 つに は学ばず、後段に回す の IoU(×10)と実行失敗のペナルティ 決まらず、対応づけが要る (−10)を報酬にして強化学習する (ICCV 2021)· SolidGen(arXiv:2203.13944)· BrepGen(SIGGRAPH 2024, arXiv:2401.15563)· ComplexGen(SIGGRAPH 2022, arXiv:2205.14573)· ParSeNet(ECCV 2020, arXiv:2003.12181)· Cadrille(arXiv:2505.22914) DeepCAD A9c · 正解の B-rep と比べて学ぶ手法 44 / 50
  45. A10 · DREAMCAD 公開状況(2026-10-12 時点) 対象 状況 論文 arXiv:2603.05607(v2、CC BY

    4.0) データセット Hugging Face SadilKhan/CADCap-1M モデル Hugging Face SadilKhan/DreamCAD(テキスト → 画像の段で使う SD3.5 の LoRA 重み) コード プロジェクトページからリンクされている GitHub リポジトリは、確認時点では公開されていない A10 · DreamCAD · 公開状況 45 / 50
  46. A11 · 系譜 CAD / B-rep 研究の主な系譜 時期 主な研究 2018–2021

    ABC データセット · UV-Net(CVPR 2021)· BRepNet(CVPR 2021)· Fusion 360 Gallery(SIGGRAPH 2021)· DeepCAD(ICCV 2021) 2022–2024 Point2Cyl(CVPR 2022)· SkexGen(ICML 2022)· ComplexGen(SIGGRAPH 2022)· SolidGen(TMLR 2023)· HNC-CAD(ICML 2023)· BrepGen 表現学習・データ 生成・逆エンジニアリング 2024–2025 LLM との統合・B-rep 生成 (SIGGRAPH 2024) Text2CAD(NeurIPS 2024)· CAD-MLLM · CAD-Recode · HoLa(SIGGRAPH 2025)· AutoBrep(SIGGRAPH Asia 2025) Pointer-CAD(CVPR 2026)→ v2 · DreamCAD · BRepMAE → Masked BRep AE · BrepLLM · BrepCoder · BRepFacetGen · Block Decomposition 2026 会議名は arXiv のコメント欄やリポジトリの記載で確認できたものだけを記している A11 · 系譜 46 / 50
  47. A12 · 質疑 想定質疑:DreamCAD と B-rep への変換 質問 答え方の要点 位相の逆エンジニアリングの知

    点群やメッシュから CAD を作り直す研究の蓄積。面に分ける・曲面を当てはめる・交線から辺を作る手法がある(ComplexGen、 見とは? ParSeNet、Point2CAD など。DreamCAD §12)。DreamCAD 自身は LLM で NURBS に変換する試行までで、既存手法との組み合わせは検 証していない メッシュを B-rep に変換する既 逆エンジニアリングの研究(Point2CAD など)は以前からある。面分割に曖昧さがあることが難しさの一つで、BRepFacetGen はそこを生 存手法では足りない? 成問題として扱っている DreamCAD の出力は CAD ソフト 出力は曲面パッチの集まりで、B-rep への変換が要る。論文では LLM による変換を試行段階として示している(付録 A9) で開ける? 実データでの性能は? 論文の評価は公開ベンチマークが中心。実データでの検証は次の段階 汎用 3D 基盤モデル(TRELLIS、 BRepFacetGen は TripoSG を活用している。一方で著者は、隠れた部分で CAD 特有の曲面を落とす場合があると述べている TripoSG)で十分では? A12 · 想定質疑 47 / 50
  48. A12B · 質疑 想定質疑:そのほか 質問 答え方の要点 LLM に CAD コードを書か

    CAD-Recode や Pointer-CAD の系統がそれにあたる。数値を正確に扱うことが課題で、Pointer-CAD v2 の評価では汎用 LLM は専用モデルを下回 せればよいのでは? った 点群・メッシュでは CAD 落ちる。大規模データが効くのは幾何の段で、位相や設計意図はメッシュに入っていないため、少ない組データ(5 万件)と LLM の事前知識に の情報が落ちるのでは? 頼っている。新しい形を作る用途なら十分なことも多いが、寸法や公差まで要る製造の場面では、図面など形以外の情報との組み合わせが要る A12b · 想定質疑 48 / 50
  49. A13 · 出典 参考文献と図の出典:ECCV 2026 の論文 DreamCAD M. S. Khan

    et al. arXiv:2603.05607(CC BY 4.0)。本資料の DreamCAD の図はこの論文から引用 Masked BRep AE Y. Li, K. Wu, W. Wu, X.-M. Fu. arXiv:2603.14927 BRepMAE C. Yao, K. Wu, Z. Zheng, S. Xing, X.-M. Fu. arXiv:2602.22701 Pointer-CAD v2 D. Qi, C. Wang, J. Xu, Y. Ma, S. Gao. arXiv:2606.29301 BRepFacetGen K.-H. Hui, V. Thamizharasan, P. K. Jayaraman, X. Xu. ECCV 2026 BrepLLM L. Deng et al. arXiv:2512.16413 BrepCoder M. Kim et al. arXiv:2602.22284 Block Decomposition X. Luo, Z. Wu, Y. Wang, Y. Cai. ECCV 2026 自作の図は本資料のために描き起こしたもの。論文の図を引用するときは、各スライドに出典を記載する A13 · 出典 49 / 50
  50. A13B · 出典 参考文献:説明で参照した手法 分野 生成・ 生成モデル 3D の生成・ 再構成

    CAD 逆エンジニアリング ツール 文献 使った場所 TRELLIS:J. Xiang et al. Structured 3D Latents for Scalable and Versatile 3D Generation. CVPR 2025 · arXiv:2412.01506 p.14・17、A5c〜A5d、A6b Latent Diffusion:R. Rombach et al. arXiv:2112.10752 / Stable Diffusion 3:P. Esser et al. arXiv:2403.03206 p.14、A6b・A6c Flow Matching:Y. Lipman et al. arXiv:2210.02747 / Rectified Flow:X. Liu et al. arXiv:2209.03003 A6c 微分可能なテッセレーション:M. Worchel, M. Alexa. Differentiable Rendering of Parametric Geometry. SIGGRAPH Asia 2023 p.15〜16 NURBGen:M. Usama et al. AAAI 2026 · arXiv:2511.06194 A9・A9a Cadrille:M. Kolodiazhnyi et al. ICLR 2026 · arXiv:2505.22914 / CAD-Recode:D. Rukhovich et al. ICCV 2025 · arXiv:2412.14042 p.7・12・19、A9c・A11・A12b DeepCAD(ICCV 2021)· SolidGen arXiv:2203.13944 · BrepGen(SIGGRAPH 2024)arXiv:2401.15563 p.6・7・12、A9c・A11 ComplexGen:H. Guo et al. SIGGRAPH 2022 · arXiv:2205.14573 / ParSeNet:G. Sharma et al. ECCV 2020 · arXiv:2003.12181 A9c、A12 Point2CAD:Y. Liu et al. Reverse Engineering CAD Models from 3D Point Clouds. CVPR 2024 A9b、A12 occwl(AutodeskAILab/occwl)· OpenCASCADE p.4・7 会議名は、各論文の arXiv のコメント欄か、DreamCAD の参考文献で確認できたものだけを記している A13b · 出典 · 参照した手法 50 / 50