短く言えば、形状を作るコードは書けます。写真を印刷可能なメッシュに変換するには、画素を読み取る変換ツールが必要です。
画像をSTLに変換するチャットモデルは、写真から印刷可能なメッシュを直接作れません。では、ChatGPTでSTLファイルは作れるのでしょうか。形状を生成するコードを書き、そのコードを自分で実行できるファイルとして保存することはできます。しかし、写真を見て印刷可能なモデルを返すことはできません。ここは重要な違いです。形状を作るスクリプトを書くことと、画素を読み取って表面を再構成することは別の作業です。
ここでは、異なる2つの作業が混同されがちです。形状を生成するとは、30 mmの立方体、厚さ2 mmの壁、5 mmのフィレットのように、形状を数値で記述することです。形状を再構成するとは、2D画像をサンプリングし、各画素の高さを推定して、結果を水密なシェルとして閉じることです。前者はモデルがテキストで指示できる計算です。後者には、ファイルを読み取り、そこから三角形を組み立てる変換ツールが必要です。
チャットモデルが提供できるのは、作業の支援です。numpy-stlやtrimeshを使ったOpenSCADまたはPythonのコードを書いたり、メッシュの法線が反転する理由を説明したり、画像のディテールに合うレイヤー高を提案したり、0.4 mmノズルより0.2 mmノズルのほうが細いリッジを保持できることを指摘したりできます。これは計画とコード作成であり、画素の処理ではありません。画素を処理するには、画像ファイルそのものを読み取るツールが必要です。
画像からSTLへの変換ツールは、ファイルを画素の格子として読み取ります。色と明るさが高さに変わります。暗い線は盛り上がったリッジになり、明るい背景は0の高さになります。この対応付けはハイトマップまたはディスプレースメントマップと呼ばれ、ほぼすべてのラスター画像からレリーフへの変換の中心となる仕組みです。出力される表面では、各画素が1つの高さを持ちます。
そこから変換ツールが三角形を組み立てます。隣り合う2つの画素が四角形の角になり、各四角形が2つの三角形に分割されます。1000×1000画素の画像は、簡略化する前の段階でおよそ200万個の三角形になります。次に、ツールは指定した厚さの平らな底面を追加し、端を結合し、スライサーが受け付けられるようシェルが閉じているか確認します。
ファイル形式の処理は、それとは別の作業です。JPG、PNG、GIF、BMP、TIFF、WebP、SVG、HEICは圧縮方法や透明度の扱いがそれぞれ異なるため、まず1つのグレースケールの格子に正規化されます。STL自体に保存されるのは形状、三角形、法線だけで、色やテクスチャはありません。元画像の色は高さに変換するか、削除する必要があります。
この4つのうち2つは本当に得意なこと、残り2つは始める前に考えておくべき限界です。
OpenSCADを頼むと、編集可能なスクリプトが得られます。立方体のサイズ、円柱の半径、回転、ブール演算による結合などを変更できます。1つの数値を変えれば形状も変わります。寸法を言葉で指定できる物体なら、これはうまく機能します。
チャットモデルは、必要なディテールに合うレイヤー高を提案したり、レリーフを平らな面を下にして置くべき理由を説明したり、扱っても壊れない壁の厚さを示したりできます。設定についてのセカンドオピニオンとして使ってください。
JPEGを読み取ってメッシュを返すことはできません。画素のサンプリングも、高さの推定も、三角形の生成も行えません。頼んでも、実行が必要なコードか、画像の大部分を無視した大まかな近似が返ってくるだけです。
生成されたコードでは、非多様体エッジ、反転した法線、厚さ0の壁が生じることがあります。モデルはこれらの用語や確認方法を説明できますが、ジオメトリを貼り戻して説明しない限り、特定のファイルを検証することはできません。
欲しい形が寸法の集まりではなく、すでに画像として存在している場合に、この方法が役立ちます。
チャットモデルが画像をメッシュに変換できないことは、もう分かっているはずです。代わりにここへファイルをドロップしてください。JPG、PNG、GIF、BMP、TIFF、WebP、SVG、HEICに対応し、最大20MBです。ブラウザ上で動作し、アカウントは不要で、Windows、macOS、Linux、iOS、Androidへのインストールも必要ありません。
直接は作れません。形状を生成するOpenSCADまたはPythonのコードを書き、そのスクリプトを実行することでSTLが生成されます。numpy-stlまたはtrimeshをインストールしたOpenSCADやPython環境が必要で、スライスする前に結果が水密になっているか確認する必要があります。
このページの次に浮かぶ疑問に答えるページです。