3D Gaussian Splatting変換ツール「Splat Transform」
はじめに
3D Gaussian Splattingのデータを扱っていると、異なるフォーマット間での変換や、複数ファイルの結合、座標変換などが必要になることがあります。今回は、PlayCanvasが新たにリリースしたオープンソースのCLIツール「Splat Transform」を実際に使ってみました。
Splat Transformとは
Splat Transformは、Gaussian SplatのPLYファイルを読み込み、様々なフォーマットに変換・出力できるコマンドラインツールです。もともとPlayCanvasは、「SuperSplat」を提供していましたが、コマンドラインで使えるようにしたのがSplat Transformです。
インストール
npmを使ってグローバルにインストールします:
npm install -g @playcanvas/splat-transform
splat-transformコマンド
ターミナルでsplat-transformコマンドを実行するとこのようものが表示されます。
> splat-transform
splat-transform v0.3.0
===================================================================
使用方法
splat-transform [グローバル] <入力.{ply|splat|ksplat}> [アクション] ... <出力.{ply|compressed.ply|meta.json|csv}> [アクション]
サポートされる入力フォーマット .ply .splat .ksplat
サポートされる出力フォーマット .ply .compressed.ply meta.json (SOGS) .csv
アクション(任意の順序で繰り返し可能)
-t, --translate x,y,z スプラットを (x, y, z) だけ平行移動
-r, --rotate x,y,z スプラットをオイラー角(度)で回転
-s, --scale x スプラットを係数 x で均一にスケール
-n, --filterNaN NaN/Inf を含むガウシアンを削除
-c, --filterByValue 名前,比較,値 <名前> <比較> <値> の条件を満たすスプラットを保持
比較 ∈ {lt,lte,gt,gte,eq,neq}
-h, --filterBands {0|1|2|3} N より大きい球面調和関数バンドを除去
グローバルオプション
-w, --overwrite 出力ファイルが既に存在する場合は上書き
-h, --help このヘルプを表示して終了
-v, --version バージョンを表示して終了
例
# シンプルなスケール後に平行移動
splat-transform input.ply -s 0.5 -t 0,0,10 input_scaled.ply
# 2つの入力を連結して圧縮出力を書き込み、必要に応じて上書き
splat-transform -w cloudA.ply -r 0,90,0 cloudB.ply -s 2 merged.compressed.ply
基本的な使い方
上記の使い方を見ながら利用をしてみます。
フォーマット変換
最もシンプルな使い方は、フォーマット変換です。例えば、PLYファイルをCSVに変換する場合:
splat-transform input.ply output.csv
圧縮PLY形式に変換する場合:
splat-transform input.ply output.compressed.ply
SOGS形式(JSON + WebP画像)への変換:
splat-transform input.ply output/meta.json
変換後

座標変換を試してみる
実際に3Dモデルを変換してみました。例えば、モデルを縮小して上に移動させる場合:
splat-transform input.ply -s 0.5 -t 0,0,10 input_transformed.ply
このコマンドでは:
-
-s 0.5: モデルを50%のサイズに縮小 -
-t 0,0,10: Z軸方向に10単位移動
複数の変換を連鎖させる
複数の変換を一度に適用することも可能です:
splat-transform input.ply -s 2 -t 1,0,0 -r 0,0,45 output.ply
これは以下の順番で変換を適用します:
- 2倍に拡大
- X軸方向に1単位移動
- Z軸周りに45度回転
高度な機能
フィルタリング
品質向上のために、不要なデータをフィルタリングできます:
# NaNやInfを含むエントリを除去
splat-transform input.ply --filterNaN output.ply
# 透明度が0.5より大きいスプラットのみを保持
splat-transform input.ply -c opacity,gt,0.5 output.ply
# 球面調和関数のバンドを制限(パフォーマンス最適化)
splat-transform input.ply --filterBands 2 output.ply
複数ファイルの結合
異なる変換を適用しながら、複数のファイルを結合することもできます:
splat-transform -w cloudA.ply -r 0,90,0 cloudB.ply -s 2 merged.compressed.ply
このコマンドでは:
-
cloudA.plyはそのまま読み込み -
cloudB.plyをY軸周りに90度回転 - 結合したデータを2倍に拡大して圧縮PLYとして出力
CSV出力による新たな可能性
Splat TransformのユニークでPowerfulな機能の1つが、CSV形式への出力です。これにより、データサイエンスのワークフローが大きく広がります:
# スプラットデータをスプレッドシート分析用にエクスポート
splat-transform scene.ply data.csv
# 分析前にフィルタリングして関連データに絞る
splat-transform input.ply --filterNaN -c opacity,gt,0.1 analysis.csv
変換をした後

CSV出力のメリット
- スプレッドシート分析 - Excel、Google Sheetsなどで直接分析可能
- 統計的洞察 - 分布、相関、品質メトリクスの計算
- カスタムフィルタリング - スプレッドシート関数で外れ値検出やクラスタリング
- 視覚化 - データパターンを理解するためのチャートやグラフ作成
- 統合 - 機械学習パイプラインやカスタム処理ワークフローへの組み込み
PlayCanvasエンジンとの連携
PlayCanvasエンジンは市場で最も先進的な3D Gaussian Splatレンダラーを持っています。Splat Transformは、PlayCanvasの圧縮PLY形式やSOGS形式(さらに最適化された圧縮形式)への変換を完全にサポートしています。
他のレンダラーからの移行
現在、.splatや.ksplatなど異なるフォーマットを使用する他のレンダラーを使っている場合でも、Splat Transformを使えば簡単にPlayCanvasに移行できます:
# .ksplatからPlayCanvas用の圧縮PLYへ変換
splat-transform legacy.ksplat optimized.compressed.ply
まとめ
コマンドラインツールなので、シェルスクリプトやCI/CDパイプラインに組み込みやすいのも大きな利点です。さらに、CSV出力機能により、これまで不透明だったバイナリファイルを読み取り可能で分析可能なデータセットに変換できるようになりました。
Discussion