グレース大聖堂の体験を構築する

2026/07/23 0:57

グレース大聖堂の体験を構築する

RSS: https://news.ycombinator.com/rss

要約

日本語翻訳:

Grace Cathedral は、Vincent Woo の先進的なガウシアンスプライトキャプチャー技術を活用し、没入型 3D インタラクティブ体験へと変化します。このプロジェクトは PlayCanvas エンジンに基づいて構築され、複雑なレンダリング処理を CPU ボトルネックなしで行うためにハイブリッドな WebGPU と WebGL 2 パイプラインを利用しています。データは SuperSplat (SOG) フォーマットでストリーミングされ、粗いレベルの詳細からまず読み込まれて即時の可視性を確保し、その後デバイス能力に基づいて視覚的忠実度を微調整します。ハイエンドデバイスでは最大 350 万のスプラットをレンダリングし、モバイルではこれを 140 万に制限しています。パフォーマンスは、深さプリパス隠れオブジェクト処理、高 DPI ディスプレイ用の解像度上限設定、レンダリング予算の動的スケール調整などの技術によって維持されています。

この体験は、近接トリガーされたボックスエンティティで最も近い外壁を仮想に彫り取り、隠された内部空間を現す独自の「ピーク効果 (Peek Effect)」を搭載しています。これは高ダイナミックレンジ(HDR)のリムライティングでさらに強化されています。内部では、移動する波シェーダー技術を用いたアニメーションされた隠れたフラグがあり、これは変位された布をシミュレートします。交通はパフォーマンスのために隔離された 3 つのランダムに生成される移動車両スプラットで構成されています。ナビゲーションは事前定義されたウェイトポイントに沿った滑らかなカメラ飛行を実現するために立方スプライン補間を利用し、音声体験は場所に応じて都市の雑音と大聖堂のアンビエンスの間を動的クロスフェードさせます。コミュニティリソースである「ガウシアンスplatting ガイド」などのサポートによりオープンソースプロジェクトとして機能する本作は、最先端のレンダリング技術がインタラクティブな建築的な物語をどのように豊かにするかを示しています。

本文

グレイス大聖堂:インタラクティブな 3D 体験の構築と最適化

サンフランシスコノブヒル地区にあるグレイス大聖堂は、有名なランドマークです。ウィンセント・ウー氏がこの大聖堂とその周辺を「ガウススプラット(Gaussian Splatting)」技術で高品質に捉えたデータを確認した後、「ぜひ協力したい」という思いから、このデータをブラウザ上で自由に操作できるインタラクティブな体験へと変換するプロジェクトが始動しました。

本稿では、このアプリケーションがどのように構築され、最適化されたのかを詳しく解説します。


仕組みの内幕

PlayCanvas Engine は、WebGPU ハイブリッドレンダラーと独自開発の**ストリーミング形式(SOG)**を採用しており、本プロジェクトにとって最適なランタイムとなりました。

WebGPU ハイブリッドレンダラー

外観ビューでは、一度に約 350 万ものガウススプラットをレンダリングしています。カメラ移動に合わせて、これら数百万の要素を描画順序(前後関係)が正確になるようリアルタイムで並べ替える必要があります。

  • WebGL 2 レンダラーの課題

    • 当初は WebGL 2 を使用していたが、頂点シェーダーとフラグメントシェーダーのみを提供し、並べ替えには向かないという弱点があった。
    • CPU ワーカーでガウスを並べ替えて GPU にアップロードする方式を採用したが、処理遅延によりレンダリングに追いつかず、カメラ移動時に**アーティファクト(画面上のちらつき)**が発生していた。
  • WebGPU による解決策

    • WebGPU を利用することで作業を効果的に分割可能になった。
    • Compute シェーダーが GPU 上で剔除(カリング)、射影、並べ替えを行い、描画は頂点・フラグメントシェーダーが担当する方式へ移行。
    • データを GPU に保持することでデータ転送のボトルネックを回避し、パイプライン全体の性能が劇的に向上した。
  • 柔軟な対応

    • ブラウザが WebGPU をサポートしていれば常に高性能パイプラインを使用し、非対応の場合は自動的に WebGL 2 レンダラーにフォールバックする。
    • 両方のレンダリング経路を統合するため、カットアウトや旗のアニメーション、遷移シェーダーには **WGSL(WebGPU)GLSL(WebGL)**の実装をそれぞれ用意し、どちらのバックエンドでも見た目を統一している。

ストリーミング SOG(SOG)

スプラットデータは、我々が開発した開放的な圧縮フォーマットに、オンデマンド読み込み用の LOD(詳細度レベル)を組み合わせたストリーミング SOG 形式で配信されています。

  • コンテンツ構成

    • 外観用と内観用に別々のスプラットセットを用意している。
    • 外観側:400 メートル以内の領域全体をカバーするストリーミング LOD セットと、それ以遠の地形用静的な低詳細度セットを組み合わせている。
    • メモリ効率化のため、各モードは各自のセットのみを読み込み、もう一方をメモリから解放している(一度に一つのビューしか保持しない)。
  • 起動時の最適化(TTFP 短縮)

    • **「最初の画素が表示されるまでの時間(TTFP)」**を最優先に設計している。
    • ロード直後は単一の粗い LOD で開始するため、ローディング画面閉鎖までに必要なデータ量は最小限に抑えることができる。
    • 以降はデバイスごとの予算内において、エンジンによって詳細さが段階的にストリーミングされる(デスクトップでは 350 万、モバイルでは 140 万のスプラット)。
  • 表示のスムーズ化

    • モード切り替え時に表示が途切れないよう配慮している。
    • 次のスプラットセットが粗い LOD を読み込む間、最後のフレームを保持してフェードアウトさせ、新しいビューへフェードインすることで詳細度が高まっていくように制御する。

すべてのデバイスで快適に動作するように最適化

ストリーミングやデバイスごとのスプラット予算以外にも、控えめな性能のハードウェアでも滑らかな体験、スマホでは冷却かつ静かな動作を実現するための工夫が施されています。

  • オンデマンドレンダリング
    • アプリケーションは変化がある時だけ描画を行う。
    • カメラ移動、LOD チャンクの到着、カットアウトのアニメーション、車の通過などのイベントが発生しない場合は描画を停止する。
  • 解像度の上限設定
    • 高 DPI ディスプレイではデバイスピクセルレシオを制限する。
    • モバイル端末では追加の画素コストに見合わない表示効果のため、レンダリングスケールをさらに低減している。
  • 深度プレパスによる奥行き隠蔽
    • 内部の衝突メッシュを遮蔽物としても活用する。
    • スプラットを描画する前に深度情報のみを描画し、壁に隠れたスプラットフラグメントを Early-Z テストで除外できるようにしている。

情景を生き生きと表現

「Peek(覗く)」エフェクト

外側の軌道上で「Peek」機能をオンにすると、カメラに近い部分の壁が切り取られ、中を覗けるようになります。切断された縁には薄い発光輪郭が表示されます。

  • 技術的実装

    • Engine の
      gsplat
      シェーダーチャンクシステムに基づいて構築されている。
    • プロジェクトは
      gsplatModifyVS
      gsplatModifyPS
      チャンクを置き換えることで、スプラットとフラグメントの処理を変更できる。
    • カットアウト自体はエディタ内ではトリガーボリウム下グループ化されたボックスエンティティに過ぎない。
    • カメラ移動に合わせて、最も近いトリガーのカットアウトが開き、他のが閉じるようにスムーズに移行する。
  • コスト削減のための 2 段階処理

    1. 第 1 段階(スプラットごとの処理):WebGPU の Compute パスとして、各スプラットの中心をサイン距離関数を使ってカットアウトボックスと比較。完全に開いたボックス内は剔除し、切断面付近のみをフラグ付けする。
    2. 第 2 段階(フラグメント処理):フラグ付けされたスプラットに対してピクセル精度で同じテストを実行。世界位置を深度から復元し、アルファ値をフェードさせ、縁を描画する。
    • 縁の色は HDR 値として出力するため、ブーミング効果により発光して描画される。
    • これらのチャンクは外観ビューがアクティブな間だけインストールされるため、ウォークモードではエフェクトのコストは一切かからない。

隠された旗

同じチャンクを利用して、ある場所に隠された旗のアニメーションも行っています。 著作者によって定義されたボックス内のスプラットは、

travelling wave(移動する波)
に乗っており、ポール端から振幅が徐々に増大し、各スプラットは変位した布地の表面に従うように傾きます。

旗はどこにあるでしょうか? 🔍

SuperSplat Editor で元の捕捉データから停車中の車を抽出・複製し、移動する交通流を作成しました。

  • 3 台の車のスプラットがランダムな間隔で生成され、大聖堂を異なる速度で通り過ぎます。
  • 屋内では無効化され、そのスプラットを内部レンダリング予算に戻します。

カメラナビゲーション

外観軌道コントローラ

  • 大聖堂にフィットした丸い角を持つボックス形状のエンベロープを中心に移動します。
  • 水平および垂直方向の運動は、壁面・隅々・屋根に沿った弧長でパラメータ化されており、不連続なく均一なカメラ速度を実現します。
  • ズームは表面からの距離(Standoff)を調整し、減衰入力はリリース後に慣性を持たせます。

カメラフライト

  • 作者によって定義されたウェイポイントグラフを使って大聖堂の建築物を周回するルートを作成します。
  • 内部では衝突メッシュを使って可視ノードを選択し、外部では軌道エンベロープに対するクリアランスをチェックします。
  • 最短経路探索で生成されたルートは、位置・方向・焦点距離・画角を補間する三次スプラインに変換されます。
  • 注釈を閉じることで、飛行が前のカメラ状態へ巻き戻されます。

サウンドとその他のディテール

レイヤー状のサウンドスケープがカメラに追従します。

  • 屋外:高低差に応じて 2 つの都市ループがクロスフェードする。
  • 屋内:大聖堂の環境音が引き継がれ、足音は歩いている間だけ再生される。
  • ローディング画面:テーマに沿った CSS で描かれた薔薇窓が表示されます。

これらの細かいディテールが合わさることで、グレイス大聖堂の捕捉データは「生きている、探索可能な場所」へと変貌を遂げました。


オープンソース基盤

グレイス大聖堂体験のすべてはオープンソース技術で構築されています。

  • PlayCanvas Engine:ブラウザ内でシーンをレンダリング。
  • SuperSplat:捕捉データの編集・最適化ツール。
  • 開放的な SOG フォーマット:データをストリーミング可能かつコンパクトに圧縮。

これらは我々が公開し、誰でも使用・検証・改善できる技術です。

ご自身の体験を構築したいですか?キャプチャから配信までの完全なワークフローについては [Gaussian splatting ガイド](https://docs.gaussian-splatting.com/guide/) をご覧ください。SuperSplat Editor で捕捉データを準備し、「Your First Splat App」チュートリアルに従って、Engine API、PlayCanvas エディタ、React、Web Components のいずれか最适合するアプローチを選定できます。🚀

ご質問や、自分が作ったものとの共有、あるいは他のクリエイターとの交流をお望みの方は、PlayCanvas と SuperSplat の Discord コミュニティにご参加ください。お待ちしております! 👋

ぜひご自身でもグレイス大聖堂を体験し、オープンウェブの可能性をご確認ください。

同じ日のほかのニュース

一覧に戻る →

2026/07/27 3:23

ヒパーカードとクラシックの macOS を継承・発展させたプラットフォーム「Decker」

## Japanese Translation: Decker は、クリエイターが標準的な Web ブラウザ内でインタラクティブなドキュメント、ゲーム、デジタル雑誌を構築できるようにする革新的でオープンソースのマルチメディアプラットフォームです。クラシックな MacOS の美意識や HyperCard の伝統に触発され、深いUndo履歴、バッチ編集、音声およびピクセルアートのサポートなど、モダンな機能を備えたノスタルジックなデザインの独自の世界観を提供します。その際立った特徴は、スタンドアロンの HTML 出力形式であり、プロジェクトが完了すると、視聴者が特定のソフトウェアやプラグインをインストールする必要なく、あらゆるデバイス上で自動的に実行されます。 プラットフォームは独自のスクリプト言語「Lil」を導入しており、統合された SQL 風のクエリによる複雑なロジックのサポート、クリップボードシステムを通じてアクセス可能なカスタムウィジェット、暗黙のスカラーベクトル演算などの機能を提供します。広告、テレメトリー、ゲーミフィケーションを徹底的に排除することでユーザーのプライバシーを最優先し、MIT オープンソースライセンスの下で運用されています。さらに、行ベースのテキスト形式のソースフォーマットにより、Git や SVN などのバージョン管理ツールとのシームレスな統合が可能となっています。コミュニティからの継続的なサポート、年間ゲームジャム、Linux/BSD での将来リリースへの計画、そして無頭環境での実行を可能にするスタンドアロンインタプリタ「Lilt」を通じて、Decker は多様なクリエイティブ分野におけるモジュラー設計と知識共有が容易な強力なツールキットを提供しています。

2026/07/27 2:58

詳細を引き渡すのは画策にはなりません。

## 日本語翻訳: Docket は、人工知能の代替品ではなく、深い人間活動にとって不可欠な専用メモツールであると位置付けています。中心的なメッセージは、真の専門知識と新しい洞察は、技術が模倣できない詳細への細やかな注意力に依存しており、現実をより密接に検討するにつれ、状況はより複雑でニュアンス豊かになり、そのため深層の個人的知識なしに自動化システムにのみ頼ると、能動化ではなく非効率に終わるということです。 本テキストは、タスクを機械に任せるだけで安易な結果が得られるという夢論に対して反発し、熟達には自動化からの思考のパラダイムシフトであり、特定の詳細への集中した関与へと向かう必要があると主張しています。この人間専門知識が欠如すると、ユーザーは複雑な現実を効果的にナビゲートする能力を失います。したがって、企業および個人は、高品質な結果に必要な認知的努力をサポートし、代替するのではなく、Docket のようなツールを最優先する必要があります。結局のところ、良い結果を獲得するには、人間が具体的な分析に直接関与することが求められ、技術が私たちの批判的思考の能力を減らすのではなく援助するように確保する必要があります。

2026/07/27 5:31

プラズマトンネルが、死にゆく人工衛星が地球へ落ちるメカニズムを明らかに

## Japanese Translation: シュトゥットガルト大学のドイツ研究者らは、大気圏再突入時に人工衛星の破片が必ずしも完全には燃え尽きないことを示し、従来の安全上の前提に疑問を投げかけた。5,000–8,000 °C の高温プラズマ風洞および約 3 km/s の速度で電気アークを使用することにより、インコネルのような耐久性のある材料は炎天下の下降にも耐えることが、アルミニウム合金(例:Al-7075)は溶けることが、100 グラムのシリンダー実験で実証された。これには、2024 年 3 月、ISS のインコネル製バッテリーパレットが再突入条件を生き延びてフロリダの家屋の屋根を損傷させたという出来事が裏付けられている。現在地球軌道上を運行中および無効となっている人工衛星は約 18,000 に及ぶとされ、今後計画される打ち上げも数百機以上に達するため、現在の風洞能力では実規模の衛星破壊を再現することができず、重要な知識のギャップが生じている。破壊の大部分は標高 60–80 km の間で起こり、空中観測では酸化アルミニウムなどの排出物が検出されており、これが大気オゾンの減少に寄与し、上部大気の熱平衡を変化させる可能性がある。欧州で定められた再突入時の生存確率 ≤1/10,000 という規制はもはや十分ではなく、地上へ到達する人間由来の物体の増加量を管理し、インフラストラクチャおよび惑星の健康を保護するためのより強力な安全プロトコルの導入を促している。

グレース大聖堂の体験を構築する | そっか~ニュース