動画や写真をインプットとして、アライメント~3DGS(3D Gaussian Splatting)の作成まで一気通貫でやってくれるローカルで動くOSSのソフトが登場したので、早速試してみました!
多機能でUIもカッコよくとてもよかったです。
またWindowsだけでなくMacやubuntuにも対応しているそうです!
アップデートが頻繁なので記事を書いている途中に新しいバージョンが来ました。そのため一部記事内のUIが古いです。
※2026/10/8 LiDAR情報追加
環境
- Spirula Studio: v2026.9.20(一部v2026.9.24、v2026.10.6))
- OS: Windows 11
- CPU: Intel(R) Core(TM) Ultra 9 185H
- GPU: NVIDIA RTX 4070, 8GB VRAM
Spirula Studioの機能一覧
ビルド済みのexeファイルをダウンロードして起動するだけで使えます。
起動したら自動で日本語になっていました。ありがたい。
Spirula Studioでは処理の様々な段階からスタートできます。
データセットを開く
COLMAPなどで既にデータセットを生成している場合はこちらから開けます。
写真や動画からデータセットを作成
今回の記事のメイン
モデルまたは再構成を開く(旧名:学習済みモデル)
ビューワー・編集ツールです。ただの点群も開けるのが便利ですね。記事の後半で試します。
スプラットからメッシュを抽出
スプラットからメッシュ作成までできるのは嬉しいですね!これも記事の後半で試します。
バッチ処理
データセット作成から3DGS生成までを一気にできます。この画面では細かいパラメーター指定はできないので、一度「写真や動画からデータセットを作成」機能で細かい設定を見て、変えたい場所があれば変えてプリセットを作ってからこの画面で一気に処理するとよさそうです。
複数インプット→複数3DGS生成もできます。
実行中の様子。一つずつ処理していきます。
写真や動画からデータセットを作成
さっそく動画からcolmapデータ作成をしていきます。
入力データの選択
写真や動画を選択します。
複数の動画を選択すると、1つのシーンとして生成してくれます。360Gaussianにはこの機能がなかったと思うので、これはありがたいですね。
また、分かりずらいですが、どれくらい切り取るかを数値で決めれます。多いほうがいっぱい画像が切り出されると思います。
LiDARスキャン追加(v2026.10.6~)
LiDARスキャンデータを追加して、大きさなどを実スケールに合わせれるようになりました!
ただし、Scaniverseのモバイルで撮影した同じ場所のplyデータを追加して生成しても、失敗しました。
「エラー: このモデルも位置合わせできませんでした。スキャン内での姿勢がわかっている画像を含むモデルがありません。スキャン自身の画像を再構成に加えるか、すでにスキャンの座標系にあるモデルなら --mode keep を使ってください。」
「データセットはすでにスキャンの座標系にある」というのをチェック入れて、再構成すると

今度は一応成功しましたが、ほぼ画像が使われなくなってしまいました。
Scaniverseのデータじゃダメ見たいですね・・・
カメラの選択
360度カメラの動画を変換したものを使用する場合は「正距円筒パノラマ」を選択します。
insvファイルなどmp4変換前の360度映像を取り込むと自動で、魚眼になります。
画像のマッチング
これがcolmapソフトでいうSequentialやExhausiveかと思います。
デフォルトの自動の場合このような設定ですが、2重で同じものが出たりとうまくいかないときは「すべての組み合わせ」にすると改善することもありました。
設定
「動きに合わせてレートを変える」をオンにしてみました。一定速度で撮影できてないときによさそう。
「画面の決まった位置を取り除く」は必要あればオンにして
「マスクを試す」から設定。手動で取り除きたいものを指定することもできます。
insvファイルの場合は自動でオンになっていて、黒いフレーム部分がマスクされます。
マスクの設定
マスクを設定することもできます。
人や車などを除去対象として設定可能です。
マスクモデルはデフォルトでは含まれていないため、同意の上でダウンロードする必要があります。これを実施しないとデータセット作成ボタンがアクティブになりません。
深度と法線の推定
「深度と法線を推定する」もオンにすることをおすすめします!これによって水平面が正しく認識されるようになります。ただし1枚あたり1秒程度かかるため、処理時間は長くなります。
詳細設定>特徴&マッチャー
これはうまくいかなかったとき向けの話ですが、モデルが複数に分かれてしまった時やカメラが一部しか配置されないときなどは、特徴やマッチャーをLoMaというのにするといいです。
実際これで、室内のスマホ撮影動画でデフォルトの設定でうまくいかなかったものが改善されました。
ちなみにモデルが複数分かれているときはログにこのように出ています。ここでの画像の数が少ないものはあまりうまくいってないです。
モデルのダウンロード(プロキシ環境での対応)
私の環境ではプロキシの関係でモデルがダウンロードできませんでしたが、以下のissueに何をダウンロードしてどこに配置すればよいかが記載されていたので、その通りに対応しました。
以下の2つのファイルをダウンロードして指定のパスに配置しました。
「モデルの準備ができました」と表示されていればOKです。
データセット作成の実行
データセット作成を開始します。あとは見ているだけです。処理速度はかなり速く、画面のビジュアルもかっこいいです!
動き検出処理(設定している場合のみ)
「動きに合わせてレートを変える」をオンにした場合、最初にこの処理が実行されます。
フレーム書き出し
設定したfpsなどに従って動画を画像に切り出している様子
マスク(設定している場合のみ)
特徴点抽出
照合処理
この左の図は最初はよく分かりませんでしたが、
設定で「画像のマッチング」を「すべての組み合わせ」にすると以下のようになったので、画像同士のマッチングでどれがマッチングしたか(させたか)を表しているんですね。
ちなみに360度映像でカメラ設定を間違えてOpenCVモデルのままデータセット作成した場合、以下のような結果になりました。
深度(設定している場合のみ)
深度と法線の推定をオンにした場合のみ。ここが一番時間かかるかも
完了
データセット作成が完了したら「トレーナーで開く」を押します。
ちなみにうまくいっていない部分は教えてくれます。親切ですね。
複数モデルに分かれてしまった場合はsparseにこのような形でcolmapデータが置かれます。3DGSでどれが使われるのかはよくわかりません。一番カメラ数が多いものか?
また編集機能で初期点群の調整もできます。
大きさについて、スマホ撮影動画やinsta360X4のinsvファイルから生成したとき、「メートル位置を持つカメラ:0、3台必要です」と出ました。
何かしら位置情報を持つカメラがあればスケールも合わせてくれるようです。おそらく以下のドキュメントがその内容で、例えばinsta360X5だとセンサーデータで大きさも合わせてくれるのかも?
https://github.com/harry7557558/spirula-studio/blob/master/docs/notes/imu-gps-for-sfm.md
分割
データセット作成が終わった後、分割して生成を分けることができます。大きいデータを学習するには心もとないPCスペックの時に使えそうです。
カメラ数で分けるか、分ける個数を指定するかが選べます
バッチ処理になります
関心領域(v2026.10.6~)
データセット作成が終わった後、関心領域を選択することができます。
初期点群の段階で範囲を絞れるんですね~(このUI、3DGS生成後の編集でも追加してほしい・・・)
生成するときも引き継がれます
設定した領域以外が映っていないカメラは使わないようになります。

関心領域以外も3DGSとしては生成されますが、クオリティが変わってきます。
左は関心領域設定していないもので、右が真ん中の像にだけ関心領域設定したもの。関心領域を設定したほうが、その中のものはより詳細に描かれ、領域関心外のものはぼんやりしました。
3DGS生成(トレーナー)
データセットをもとに3DGSデータを生成します。
設定
プリセットは変換済みの360度映像の場合は「汎用」なのか「360度カメラ」なのかよく分からず・・・どちらでも生成できました。
デフォルトでは100万点群に設定されています。これは「精細さ」を高くしたら1000万などにあがります。
色々と細かい設定もできますが、今回はデフォルトのまま学習を開始しました。
学習中の様子
生成中の画面です。データセット作成時にはキューブマップ化の処理がなかったと思いますが、学習が始まるとキューブマップ形式で表示されていますね。
insvファイルからの生成&360度カメラプリセットでも同様
生成中のデータフォルダを見てもキューブマップの画像は保存されていませんでした。
残り時間も表示してくれます。広めのシーンだと2時間程度かかります。
メモリが足りなくなるリスクがあるかも見れます。
色々なビューが用意されていて面白いですね。
出力データの保存場所
出力データはデフォルトでは元動画と同じ階層に「元動画名_dataset」フォルダが作成されます。
outputフォルダの中に.ply形式で生成されます。
生成結果
insvファイルからそのまま生成した360度動画は、きれいにできました!360度動画できれいに生成できたのが初めてなのでうれしいです!
広域だと何とも言えないクオリティ。撮影方法が悪いのか、点群数やステップ数が足りてないかも
近い距離のモノがぼやけるのはずっと悩んでいますが、ここでも解決しないです。
オブジェクトをぐるっと撮影するようなスマホ撮影ももちろんきれいに生成できます。
ちなみにパスに日本語が含まれていても問題なく生成できました!優秀
モデルまたは再構成を開く(ビューワー&編集)
plyやcolmapなどを読み込み、編集できます。
ただし、.sogなどのフォーマットは非対応でした。
読み込んで編集を押すと編集画面になります。
選択タブでは投げ縄ツールなどで範囲選んで消したり、
ボックスで選ぶというのは今はなさそうでした。
「かたまり」はどういうアルゴリズムで選ばれているのかよく分からないですね。
「変形」タブでは移動回転や
地面位置指定などができました!すごい!自動整列が便利そう
ちゃんと地面にあってる気がします。ただ最近のLFSと同じくこのグリッドが地面に埋もれないので本当に地面に沿っているのか分かりにくいですね・・・
また3DGSデータだけでなくcolmapデータを読み込んで初期点群を消したり
左上でカメラを選ぶとカメラの消去もできます!
スプラットからメッシュ作成
Spirula Studioで作成したdatasetフォルダを指定して、デフォルト設定でメッシュ生成を試してみました。しかし、カメラモデルがサポートされていないというエラーが出て失敗しました。360度動画だとこの機能は使えないのかもしれません。
「学習に使った写真を使う」をオフにしたら生成できましたが、説明通りかなりぼこぼこした結果になり、実用的ではありませんでした。ただ、生成自体はすぐに終わりました。
生成されたメッシュは自動的にoutputフォルダに保存されます。
通常のスマホ動画から生成した場合は「学習に使った写真を使う」オプションをオンにした状態で生成できました。
3DGSのメッシュ化をするのは初めてなのでこれがどれくらいのクオリティなのか分かりませんが、手軽にできていいですね。
最後に
Spirula Studioは各機能に丁寧な説明が入っていますし、日本語対応もバッチリで、とても使いやすいソフトでした!
動画や写真から3DGS生成まで一気通貫でできる点が素晴らしいですね。
以前360度動画からの3DGS生成について調べたときにワークフローを図に書いたことがありますが、このソフトを使えばほぼすべてできます!
まだまだ更新も入りそうなので期待です!
























































































