GenCADは、MITのMd Ferdous Alam氏とFaez Ahmed氏による研究で、正式には
「Image-conditioned Computer-Aided Design Generation with Transformer-based Contrastive Representation and Diffusion Priors」
というタイトルです。
ざっくり言うと、画像を見て、その形に近いCADを作るAIです。
ただし、ここで重要なのは「3Dっぽい箱を作る」レベルではないこと。GenCADは、CAD program(CADの命令列)まで出力します。
これはかなり大事です。
普通、AIで3Dを扱うときは、mesh(ポリゴンの集合)やvoxel(3Dのマス目)、point cloud(点の集まり)を使うことが多いです。これらは扱いやすい反面、工業設計や製造では不便なことがあります。
なぜなら、設計現場では「形がある」だけでは足りなくて、寸法を変えたい、穴の位置を調整したい、厚みを修正したいといった変更が必要だからです。

そこに対してCADは、単なる見た目ではなく、パラメータ付きの設計データです。
つまり、後から編集しやすい。ここがGenCADの狙いで、私はかなり筋がいい発想だと思います。
GenCADの面白さは、**“見た目の再現”ではなく“設計可能な形”を生成する**ところにあります。
AIが3D画像を作れるのは、もう珍しくありません。
でも、実際に編集できるCADとして出すのは別物です。
これは、絵としての3Dではなく、エンジニアが使える3Dに近づく試みだと言えます。
元記事では、GenCADは以下を実現すると説明されています。

この「複数候補を出す」というのも地味に重要です。
設計って、正解が1つとは限りません。むしろ、同じ見た目に見える形でも、内部の作り方は何通りもありえます。
GenCADはそこに対して、**“1案だけでなく複数案を返す”**方向に寄せているわけで、実務的な感覚があります。
GenCADは、4つの段階で動きます。
まず、CADの命令列をTransformer encoderで学習します。
Transformerは、今やAI界の定番モデルです。
文章だけでなく、命令の並びや手順のような順序情報を学ぶのが得意です。

CAD programも、結局は「この操作の次にこの操作をする」という手順の列なので、Transformerと相性がいいのは納得感があります。
次に、contrastive learningを使って、画像とCAD programの表現を近づけます。
contrastive learningは、簡単に言うと
たとえば、ある画像とその正しいCAD命令列は近く、別の形のCAD命令列は遠くなるように学習します。
これによって、画像とCADの「意味の対応」が取りやすくなるわけです。
3つ目は、latent diffusion modelです。

latentというのは、ざっくり言えば圧縮された内部表現のことです。
diffusion modelは、ノイズだらけの状態から少しずつきれいな形を作っていく生成モデルで、画像生成で有名になりました。
GenCADでは、このdiffusion modelを使って、画像を条件にCADのlatent表現を生成します。
つまり、「こんな見た目のものを作りたい」という入力から、まずは内部の設計表現を作るイメージです。
最後に、decoderがlatentをparametric CAD commandsの列に変換します。
ここでようやく、実際のCADプログラムになります。
そして、そのCAD programをgeometry kernelで処理すれば、3D solid modelに変換できる、という流れです。
この流れを見ていると、GenCADは「3D形状を直接当てる」のではなく、
設計の中間表現をちゃんと経由して、編集可能なCADに戻すことを重視しているのがわかります。
私はここに、かなり研究としての誠実さを感じます。

元記事では、B-rep(boundary representation)などのCADデータ構造は複雑で、AIの学習が難しいと説明されています。
B-repは、3D形状を面・辺・頂点の関係で表す方法です。
精密ですが、データ構造としてはかなりややこしい。
そのため、AIで扱うのが難しく、結果としてmeshやvoxelに逃げることが多かったわけです。
でも、そこには弱点があります。
meshやvoxelは、見た目はそれっぽくても、工業設計で必要な「変更のしやすさ」を失いやすいのです。
GenCADはそこを踏まえて、parametric CAD command sequenceを直接出す方向を取っています。
これは、見た目だけでなく、設計データとして意味のある生成を目指している、と言えます。

元記事のサイトでは、AIベースのgenerative CAD modelのデモが紹介されています。
画像からCADを生成し、さらに同じ画像に対して複数サンプルを出すこともできます。
また、CAD retrievalとして、画像条件に合うCAD programを、約7000個のCAD programの集合から上位3件探す例も示されています。
このretrieval機能も、単なるおまけではありません。
実際の設計現場では、「ゼロから作る」だけでなく、既存の候補から探すことも多いからです。
その意味で、GenCADは生成モデルでありながら、検索ツールとしての顔も持っているのが面白いです。
GenCADの重要ポイントは、たぶん次の2つです。
ここが本質です。
AIが3Dを作る話はたくさんありますが、作ったあとにいじれるかは別問題です。
GenCADはそこを真正面から扱っています。

画像とCAD programを別々に扱うのではなく、共通の表現空間でつなげようとしているのがポイントです。
これがうまくいけば、画像からの生成だけでなく、検索や比較などにも広がりやすいはずです。
個人的には、GenCADはかなり「実務寄りの夢」がある研究だと思います。
AI生成って、見た目は派手でも、実際の設計・製造の世界に持ち込むと急に弱くなることが多いんですよね。
でもGenCADは、そこを避けずにCAD programそのものへ踏み込んでいる。
もちろん、研究デモと現場投入の間には大きな距離があります。
複雑な設計、例外処理、厳しい公差、製造制約など、現実のCADはかなり手強いです。
なので、これがそのまま設計自動化の完成形になる、とはまだ言えないでしょう。
それでも、**“3Dを描くAI”から“設計を生成するAI”へ**という流れを感じさせるのは確かです。
この方向性は、かなり面白いと思います。

GenCADは、画像を入力として編集可能なCAD programを生成する研究です。
単なる3D形状生成ではなく、設計の手順そのものを出力する点がユニークで、工業設計や製造との相性を強く意識しています。
Transformer、contrastive learning、diffusion modelを組み合わせた構成は少し複雑ですが、狙いは明快です。
見た目が似ているだけでなく、あとからちゃんと使えるCADを作る。
この発想が、GenCADのいちばん大きな価値だと思います。
参考: GenCAD