project
Spark 2.0 - World LabsのオープンソースWebベース3Dガウス型スパッタリングレンダリングエンジン
Spark 2.0は、World Labs(Fei-Fei Li氏が設立)が開発したオープンソースのWebベースの3Dガウス・スパッタリングレンダリングエンジンで、Three.jsとWebGL2をベースに構築されています。Spark 2.0は、LoD(Level of Detail)システム、プログレッシブストリーミング、仮想メモリなどの機能を先駆けて導入しました。
Spark 2.0とは何ですか?
Spark 2.0は、World Labs(Fei-Fei Li氏が設立)が開発したオープンソースのWebベースの3Dガウス・スパッタリングレンダリングエンジンで、Three.jsとWebGL2をベースに構築されています。Spark 2.0は、LoD(Level of Detail)システム、プログレッシブストリーミング、仮想メモリ技術を先駆的に導入し、デスクトップ、携帯電話、VRデバイスなど、あらゆるデバイスのブラウザ上で、1億個以上のスプラットを持つ巨大な3Dワールドのリアルタイムレンダリングを可能にしました。粗いシーンから細かいシーンへとスムーズかつ段階的にシーンを読み込むことで、従来のWeb 3Dレンダリングにおける規模とパフォーマンスのボトルネックを打破し、リアルタイムでのインタラクションと、巨大なシーンの没入感のあるスムーズなブラウジングを実現しています。
Spark 2.0の主な機能
- 超大規模シーンレンダリングデスクトップ、携帯電話、VRデバイスなど、あらゆるデバイスのブラウザ上で、1億個以上のスプラットを含む巨大な3D世界のストリーミングとリアルタイムレンダリングをサポートします。
- 複数のオブジェクトのグローバルな構成複数の独立した3DGSオブジェクトを同時にレンダリングし、すべてのスプラットに対して統一されたグローバル深度ソートを自動的に実行することで、異なるオブジェクトが単に重ね合わされるのではなく、空間内で正しくブレンドされるようにします。
- 連続LoD(詳細度レベル)LoDスプラットツリーの階層構造を構築することで、カメラの距離と視野角に基づいて最適な木の切断線が動的に計算され、近距離では高精度、遠距離では低精度を自動的に表示し、ディテールのスムーズでシームレスな移行を実現します。
- プログレッシブストリーミング独自開発の.RADファイル形式を採用しており、シーンを最初に読み込むとすぐに64Kの粗いスプラット画像が表示されます。視点に応じて可視領域のデータをダウンロードして精緻化することで、送信中にスムーズな微調整体験を実現します。
- 仮想メモリ管理: スプラット用のページテーブルとして固定のGPUメモリプールを割り当て、シーン内のユーザーのリアルタイムの位置に基づいてネットワークからデータブロックを自動的に取得して置き換えることで、モバイルデバイスのメモリ制限を克服し、大量のデータにアクセスできるようにします。
- 中心窩に基づくレンダリング最適化フォビエイテッドレンダリング技術は、レンダリング予算を自動的に視野の中心にシフトさせ、画面の端やカメラの後ろの領域のディテールレベルを低下させることで、主観的な画質に影響を与えることなくフレームレートを大幅に向上させます。
- リアルタイム編集と照明調整ブラウザ上で3Dガウススパッタリングシーンのリアルタイム編集、色調整、動的な再照明をサポートしており、オフラインでの前処理なしに変更の効果を確認できます。
- プログラマブル特殊効果システムGLSLベースのコードインターフェースとビジュアルシェーダーグラフノードシステムを提供し、開発者が動的アニメーション、SDFジオメトリクリッピング、透明度調整などの豊富なカスタム視覚効果を作成できるようにサポートします。
Spark 2.0の技術的原理
- 3Dガウス型スパッタリングベースSpark 2.0は3Dガウススプラッティング技術を採用しており、従来の三角形メッシュを数百万個の半透明3D楕円体(スプラット)に置き換えてシーンを表現します。各スプラットは位置、スケール、回転、色、不透明度によって定義され、最終的な画像はGPUによる深度順のブレンドとレンダリングによって生成されます。
- 3段階のレンダリングパイプラインこのシステムは、「グローバルリストの生成 → グローバル深度ソート → インスタンス化と描画」というアーキテクチャを採用しています。複数のオブジェクトスプラットを統一された座標系に変換し、動的な効果(アニメーション、クリッピングなど)を適用します。レンダリング順序は、GPUによる距離計算後、CPUのカーディナリティソートによって決定されます。最後に、単一の描画呼び出しによってすべてのスプラットのラスタライズが完了します。
- 連続LoDスプラットツリー数億個のスプラットによるレンダリング負荷に対処するため、Sparkは階層的なツリー構造をボトムアップで構築し、子ノードを親ノードにマージしてマルチ解像度表現を形成します。実行時には、優先度キューを使用して固定予算(50万~250万スプラット)内で最適な「ツリーカットライン」を動的に計算し、ほぼ微細な解像度から非常に粗い解像度へのスムーズな移行を実現します。
- プログレッシブストリーミングこのシステムは、独自開発の.RADフォーマットを使用してデータをブロック(各64Kスプラット)に分割し、列形式で圧縮します。ファイルヘッダーにはランダムアクセスインデックスが記録され、シーンをリアルタイムで大まかな64Kバージョンとして表示できます。その後、ビューポイントに基づいてHTTP範囲リクエストを介して精緻化されたデータブロックが動的にダウンロードされ、プログレッシブローディングによって、ユーザーはダウンロードしながらシーンを表示できます。
- 仮想メモリ管理: スプラットページテーブルとして固定のGPUメモリプールを割り当て、LoDツリーの走査結果に基づいて現在のビューポートに必要なデータブロックを動的に決定し、ユーザーが移動したときにネットワークから新しいデータを自動的に取得して古いデータを置き換えることで、ブラウザがローカルメモリの制限をはるかに超える膨大な数のスプラットにアクセスできるようにします。
- LoDツリー生成アルゴリズム階層構造を構築するための、トレーニング不要のアルゴリズムが2つ提供されます。Tiny-LoD(空間グリッドの高速マージに基づき、ハッシュではなくソートを使用してキャッシュを最適化し、リアルタイムのウェブページ生成に適しています)とBhatt-LoD(高品質なマージのためのBhattacharyya距離メトリックGaussian類似度に基づき、オフライン処理に適しています)。
Spark 2.0 の使い方
-
環境紹介CDNまたはnpm経由でプロジェクトにSpark 2.0とThree.jsをインストールし、対象ブラウザがWebGL2標準をサポートしていることを確認してください。
-
基本ロード小規模なシナリオでは、直接呼び出し
loadSplatこのメソッドは、PLY、SPZ、またはSplat形式の生の3DGSファイルを読み込み、Three.jsシーンに追加します。 -
大規模シーンの前処理1億個以上のスプラットが発生するような大規模なシナリオでは、コマンドラインツールを使用してください。
spark build-lod元のファイルをオフラインで、プログレッシブストリーミングをサポートする.RAD形式に変換します。 -
ストリーミング配信コードを呼び出します
loadRadこのメソッドは、変換されたファイルを読み込み、スプラットレンダリングの予算と中心窩レンダリングのパラメータを設定して、詳細度とパフォーマンスを制御します。 -
レンダリングの更新アニメーションループ内でスプラットオブジェクトを継続的に呼び出す
updateこの方法は、現在のカメラパラメータを入力として受け取り、深度ソートとLoD(レベル・オブ・ディテール)の詳細切り替えを自動的に実行します。 -
複数オブジェクト構成複数のLoDオブジェクトを同時にロードする場合、Sparkはすべてのオブジェクトのスプラットツリーを自動的に走査し、グローバルレンダリング予算を均等に割り当てることで、シームレスな統合を実現します。
Spark 2.0の主要情報と使用要件
- 製品ポジショニングWorld Labs(Fei-Fei Li氏が設立)は、Three.jsとWebGL2をベースに構築されたオープンソースのWebベース3Dガウス・スパッタリング(3DGS)レンダリングエンジンです。あらゆるデバイスのブラウザで、1億個以上のスプラットを含む大規模な3Dシーンをリアルタイムでレンダリングできます。
- コアテクノロジー① LoDスプラットツリー(連続的な詳細度レベル、レンダリング精度を動的に選択);②プログレッシブストリーミング(.RAD形式、最初にラフバージョンを表示し、必要に応じて洗練);③仮想メモリ(固定GPUメモリプール内のデータブロックを動的に置換)。
- パフォーマンスデスクトップ、iOS、Android、VRを含むすべてのプラットフォームに対応し、デバイスのメモリ制限を克服することで、ダウンロードと操作を同時にスムーズに行えるようにします。
- 環境要件:
-
サポート WebGL2 最新のブラウザ(Chrome、Safari、Firefox、Edgeなど)。
-
WebGPU不要、より幅広い互換性
-
- ハードウェアサポートデスクトップ、モバイル(iOS/Android)、VRデバイス(Quest 3、Apple Vision Proなど)。
Spark 2.0の主な利点
-
超大型の輸送能力一般的に消費者向けデバイスは100万~500万個の飛沫しかサポートできないという制限を打破し、1億個以上の飛沫を含む大規模なシーンをリアルタイムでレンダリングできる。
-
すぐにストリーミング体験をお楽しみいただけます独自開発の.RADフォーマットとプログレッシブ伝送技術を用いることで、数百MBものデータが完全にダウンロードされるのを待つことなく、粗い64Kバージョンでシーンをリアルタイムで表示します。
-
すべてのプラットフォーム間でシームレスな互換性を実現WebGL2をベースに構築されているため、デスクトップ、iOS、Android、VRデバイスに対応しており、APIサポートの違いを気にする必要はありません。
-
インテリジェントなディテールバランス独自の連続LoDスプラットツリーシステムは、視距離と視線に基づいて精度を動的に調整し、近景は鮮明に、遠景はぼやけて表示されるように、スムーズな移行と途切れのない表示を実現します。
-
複数オブジェクトのグローバル融合複数の独立した3DGSオブジェクトを同時に読み込むことをサポートし、オブジェクト全体にわたるグローバルな深度ソートを自動的に実行することで、従来のレンダラーにおける「テクスチャの重ね合わせ」問題を解決します。
-
シームレスなメモリ拡張仮想メモリのページテーブル機構を使用することで、データブロックがネットワークから自動的にスワップされ、ブラウザはローカルGPUメモリの制限をはるかに超える膨大な量のリソースにアクセスできるようになります。
Spark 2.0プロジェクトのアドレス
- プロジェクト公式サイト:https://www.worldlabs.ai/blog/spark-2.0
- GitHubリポジトリ:https://github.com/sparkjsdev/spark/
Spark 2.0 競合製品比較
| 比較対象寸法 | Spark 2.0 | Luma AI |
|---|---|---|
| 製品形態 | 開発者が必要に応じて詳細にカスタマイズ、プライベートにデプロイ、統合できるオープンソースのJavaScriptライブラリ。 | 標準化されたアップロード・閲覧ホスティングサービスを提供するクローズドソースのSaaSプラットフォーム。 |
| リアルタイム編集 | ブラウザ内で、スプラット属性のリアルタイム変更、色調整、SDFの切り抜き、および動的効果をサポートします。 | 固定ビューでの閲覧とプリセットパスのみが提供され、リアルタイムでのパラメータ調整はサポートされていません。 |
| データ主権 | PLY/SPZ/Splatなどの複数の入力フォーマットをサポートし、.RAD規格にも対応しているため、データの完全な自律性を実現します。 | 閉鎖的なエコシステムであり、プラットフォームが生成する特定のフォーマットのみをサポートし、エクスポートは制限されています。 |
| シーンスケール | LoDシステムによるインテリジェントなメモリ管理により、超大規模な都市レベルのシーンをスムーズに閲覧できます。 | プラットフォームの処理能力と契約者数の制限により、極めて大規模なシナリオでは、キューイング処理や品質を落とした処理が必要になる場合があります。 |
| コスト構造 | 無料かつオープンソースなので、サーバーの帯域幅とストレージの費用だけを負担すれば済みます。 | 利用状況、エクスポート解像度、API呼び出し回数に基づいたサブスクリプション型の料金体系。 |
| オフライン機能 | 完全オフライン環境またはプライベートCDN展開をサポートし、外部ネットワークへの依存は不要です。 | Lumaクラウドサービスへの継続的なインターネットアクセスが必要であり、プラットフォームの可用性に依存します。 |
Spark 2.0の応用シナリオ
-
デジタルツインと都市ガバナンスこれは、都市レベルのデジタルツイン基盤を構築するために使用され、数千万個のスプラットを含むスマートシティの3Dモデルをブラウザ上でリアルタイムに閲覧することを可能にし、重いクライアントソフトウェアを導入することなく遠隔での検査と管理を実現します。
-
VR/AR没入型体験VR/ARヘッドセットでの大規模な没入型ローミングに対応し、Quest 3やApple Vision Proで大規模な仮想文化観光や世界構築シナリオをスムーズに探索できます。
-
リアルタイムコンテンツ作成これは、ウェブページをベースとしたリアルタイムのコラボレーションやコンテンツ作成に使用され、ブラウザ上でAIが生成した3D世界のリアルタイム編集、再照明、動的効果の調整を直接サポートします。
-
オンライン展示会と電子商取引美術館、美術展、不動産などのオンライン展示に利用されており、プログレッシブストリーミング技術により、ユーザーはフルダウンロードを待つことなく、大規模なデジタルシーンを瞬時に閲覧できる。
-
ウェブゲームとバーチャルイベントオープンワールド型のウェブゲームやバーチャルコンサートなどに使用され、プレイヤーがプレイしながらダウンロードできるストリーミングシーン読み込みを可能にし、超大規模な仮想環境のリアルタイムインタラクティブレンダリングをサポートします。