trimesh:PythonでポリゴンMeshを扱うライブラリ

3Dポリゴンジオメトリを扱うライブラリは古よりC++など色んな言語向けに揃っておりますが、このtrimeshは全てPythonで書かれたライブラリ。

trimesh



Trimeshは、全てのコードがPythonバージョン3.7以降で書かれたライブラリで、三角形Meshをロードして使用するために開発され、特に水密サーフェイスの扱いに重点を置いています。

このライブラリの目的は、ShapelyライブラリのPolygonオブジェクトのようなスタイルで、簡単に操作・分析できて十分にテストされた豊富な機能を持つTrimeshオブジェクトを提供することです。
このライブラリのAPIは比較的安定していますが、完全ではなく保証されているものではありません。trimeshを使って何かを展開する計画がある場合は、特定のバージョンをインストールすることをお勧めします。

プルリクエストは大歓迎で、すぐに対応します!貢献を希望する方向けに潜在的な改良点の最新リストがありますが、リストにない提案も歓迎します。簡単な開発と貢献のためのガイドをご参照ください。

ソースコードはGitHubにある。
trimeshはNVIDIAのKaolinでも使われてるらしい。





ここ数年、やたらとPython環境から使えるライブラリが重宝される理由の1つに、研究・教育目的だと処理の過程をそのままJupyter Notebook形式で書いてGoogle Colabとかで共有して説明できるメリットがあるからかもね。

機能

  • バイナリー/ASCII STL、Wavefront OBJ、ASCII OFF、バイナリー/ASCII PLY、GLTF/GLB 2.0、3MF、XAML、3DXML形式などのMeshインポート
  • DXF・SVGファイルから2D・3Dベクターパスのインポート、2D・3DベクターパスのDXF・SVGファイルへのエクスポート
  • GMSH SDKインストール済みの場合、幾何学ファイル(BREP, STEP, IGES, INP, BDFなど)のインポート
  • バイナリーSTL、バイナリーPLY、ASCII OFF、OBJ、GLTF/GLB 2.0、COLLADA形式などへのMeshエクスポート
  • GMSH SDKインストール済みの場合、Meshファイル(Abaqus INP、Nastran BDFなど)をエクスポート
  • pygletを使用したMeshのプレビュー、Jupyter Notebookでthree.jsを使用したインライン表示
  • MD5、zlib CRC、xxhashを使用したnumpy配列の自動ハッシュ化と変更追跡
  • ハッシュから検証された計算値の内部キャッシング
  • Face隣接性、Face角度、頂点の欠陥などの計算
  • クロスセクション、つまり3Dプリンティングで使用されるスライス操作の計算
  • Meshを1つまたは複数の任意平面でスライスしたサーフェイスを返す
  • networkx、graph-tool、scipy.sparseを使用したFaceの接続性に基づくMeshの分割
  • 体積、重心、慣性モーメント、慣性ベクトルの主要成分を含む質量特性の計算
  • 三角形の巻き方、法線、四角形/三角形の穴など簡単な問題の修復
  • Meshの凸包
  • 回転/移動/テッセレーション不変識別子の計算と重複Meshの検出
  • Mesh水密、凸などであるかどうかの判別
  • Mesh表面の均一サンプリング
  • 位置、三角形インデックスなどを含むRay-meshクエリ
  • OpenSCADやBlenderをバックエンドとして使用したMeshのブーリアン操作(交差、結合、差) 注:一般的にMeshブーリアンは遅く信頼性が低い
  • 水密Meshのボクセル化
  • Gmsh SDKを使用したボリュームMesh生成(TETgen)
  • ラプラシアン平滑化アルゴリズム(クラシック、タウビン、ハンフリー)を使用した水密Meshの平滑化
  • MeshのFaceの細分化
  • Meshの最小体積方向バウンディングボックスの近似
  • 最小体積バウンディング球の近似
  • Mesh表面上の最近接点と符号付き距離(SD)の計算
  • 良好に構築されたMesh内外の点を符号付き距離を使用して判別
  • Trimeshオブジェクトのサブクラスであるプリミティブオブジェクト(Box, Cylinder, Sphere, Extrusion)が全て同じ機能(慣性、ビューアなど)を持つ
  • レンダリング(pygletのウィンドウ、jupyter notebookのthree.js、pyrender)やエクスポートに対応したシンプルなシーングラフとtransformのツリー
  • 座標変換、ベクトルの単位化、ベクトルの整列、numpy配列の変更の追跡、行のグループ化など、多くのユーティリティ関数

関連記事

フリーのUV展開ツール Roadkill UV Tool

ヘッドマウントディスプレイとビジュアリゼーションの未来

プログラムによる景観の自動生成

日立のフルパララックス立体ディスプレイ

OpenCVの三角測量関数『cv::triangulatep...

iOSで使えるJetpac社の物体認識SDK『DeepBel...

『ゴジラ キング・オブ・モンスターズ』のVFXブレイクダウン

TeleSculptor:空撮動画からPhotogramme...

iOSデバイスと接続して連携するガジェットの開発方法

Faster R-CNN:ディープラーニングによる一般物体検...

Point Cloud Utils:Pythonで3D点群・...

Unreal Engine 5の情報が公開された!

第20回 文化庁メディア芸術祭『3DCG表現と特撮の時代』

ZBrushでアヴァン・ガメラを作ってみる 全体のバランス調...

Google App EngineでWordPress

Super Resolution:OpenCVの超解像処理モ...

MPFB2:Blenderの人体モデリングアドオン

ZBrushで人型クリーチャー

ZBrushで仮面ライダー3号を造る 仮面編

Web経由でRaspberry PiのGPIOを操作したい

Manim:Pythonで使える数学アニメーションライブラリ

機械学習のオープンソースソフトウェアフォーラム『mloss(...

BGSLibrary:OpenCVベースの背景差分ライブラリ

GeoGebra:無料で使える数学アプリ

ZBrushで仮面ライダー3号を造る 仮面編 ClipCur...

書籍『The Art of Mystical Beasts』...

Vancouver Film Schoolのデモリール

3Dスキャンしたテクスチャから照明を除去するUnityツール...

ZBrushでアヴァン・ガメラを作ってみる 頬の突起を作り始...

ドラマ『ファーストクラス』のモーショングラフィックス

ラクガキの立体化 分割ラインの変更・バランス調整

ZBrushでUndo Historyを動画に書き出す

池袋パルコで3Dのバーチャルフィッティング『ウェアラブル ク...

ZBrushのUV MasterでUV展開

UnityのMonoBehaviourクラスをシングルトン化...

ZBrush4新機能ハイライト 3DCG CAMP 2010

この本読むよ

ZBrushでアヴァン・ガメラを作ってみる 下半身のバランス...

ZBrush 4R7

ZBrushで手首のモデリングをリファイン

ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身...

テスト

コメント