🚀

Apple Vision Pro へOmniverseのSpatial Streamingからストリーミングする環境の構築手順

に公開

1. はじめに

NVIDIAのOmniverseからApple Vision Proを利用したストリーミング環境「Spatial Streaming」が公開されています。(Spatial Streaming for Omniverse Digital Twins Workflow)
今回は「Spatial Straming」環境を構築し、Apple Vision ProでOmniverseのシーンを表示するまでの手順を紹介します。

1-1. Omniverse

OmniverseはNDIVIAが提供しているAPI、SDK、サービスのプラットフォームです。(Omniverse)
NDIVIAのGPUを利用した複数人でのコラボレーションと正確なリアルタイムシミュレーションを行うことができます。

注意 : 2025年10月1日からOmniverse Launcherは廃止されます。今後はOmniverse Kit App Templateからアプリをビルドして利用する方式になります。

1-2. Spatial Straming

Omniverse内のシーンをCloudXRを利用してApple Vision Proで体験するための機能です。(Spatial Streaming for Omniverse Digital Twins Workflow)
OmniverseにCloudXR機能を追加した環境を構築し、Apple Vision Proの受信用アプリを導入します。

1-3. CloudXR

CloudXRはOmniverseでレンダリングされた表示をAndroidやiOSデバイスのXRアプリケーションでストリーミングできる技術です。(CloudXR)
所謂クラウドレンダリング、リモートレンダリングと言われている技術で、PCで作成された高品質なレンダリング結果をGPU性能が低いデバイスで体験することができます。

1-4. Apple Vision Pro

Appleから販売されている空間コンピュータです。(Apple Vision Pro)
Apple Vision Proのレンダリング性能も高いですが、Spatial Streamingを利用することで本体性能以上のレンダリング結果を体験することができるようになります。

2. Spatial Straming環境構築手順

Spatial Stramingの環境を構築してきます。
今回はOmniverseをWindowsのPC上に構築してApple Vision Proと接続する手順となります。
Spatial Streaming実行に必要なWindows環境とApple Vision Pro環境の推奨スペックと、今回試行した時のスペックを以下の表になります。

[Omniverse実行環境]

機器・OSなど 推奨スペック 試行環境
OS Windows 10/11 or Linux (Ubuntu 22.04 以降) Windows 11 pro
GPU NVIDIA RTX 対応 GPU (RTX 3070以上を推奨) NVIDIA A6000
Driver 537.58 566.24

[Apple Vision Pro実行環境]

機器・OSなど 推奨スペック 試行環境
Apple Vision Pro 2.0以上 2.5
  • Windows PCの環境構築にはインターネット接続が必要
  • Apple Vision ProとWindows PCは同一ローカルネットワークに接続が必要
  • Spatial Stramingで快適な体験を行うにはできるだけ高性能なGPUが必要です。

2-1. Apple Vison Proアプリ環境構築

OmniverseのCloudXRをApple Vision Proで受信するためのアプリを導入します。
事前にMac PCにXcodeをインストールし、Apple Vision Proアプリがビルドできるようにしておいて下さい。

注意 : 公式のSpatial Streamingで紹介されているプロジェクト(apple-configurator-sample)では接続ができなかったため、別のCloudXR受信プロジェクト(isaac-xr-teleop-sample-client-apple)を利用して動作を確認しています。

2-1-1. リポジトリのクローン

ビルド用Mac PCにisaac-xr-teleop-sample-client-appleをクローンします。

git clone git@github.com:isaac-sim/isaac-xr-teleop-sample-client-apple.git

2-1-2. ビルドと実行

XcodeでIsaacXRTeleopClient.xcodeprojectプロジェクトを開き、ビルドとApple Vision Proにインストールを行います。

実行後 Session Controls にOmniverse実行中のPCのIPアドレスを入力、Connect押下でCloudXRの受信が開始されます。

2-2. Omniverse環境構築

Spatial Stramingを実行させるOmniverse環境を構築します。

2-2-1. リポジトリをクローン

Windows PC上にkit-app-templateをクローンします。

git clone https://github.com/NVIDIA-Omniverse/kit-app-template.git
cd kit-app-template

公式ページではkit-app-templateのkit-106.0.3バージョンを利用していますが、ライブラリのバージョンエラーのためmainブランチの最新(20250530現在)を利用しています。

2-2-2. templateの生成

Spatial Straming用にアプリのテンプレートを作成します。
下記コマンドで、templateの生成を行います。

.\repo.bat template new

実行後コマンドライン上でテンプレートの設定を行います。
矢印キーで項目を選択します。
今回の試行では以下のように設定しました。

質問 回答
? Do you accept the governing terms? Yes
? Select what you want to create with arrow keys ↑↓: Application
? Select desired template with arrow keys ↑↓: [omni_usd _composer]: USD Composer
? Enter name of application kit file [name-spaced, lowercase, alphanumeric]: my_company.my_usd_composer
? Enter application display_name: My USD Composer
? Enter version: 0.1.0
? Enter name of extension [name-spaced, lowercase, alphanumeric]: my_company.my_usd_composer_setup_extension
? Enter extension_display_name: My USD Composer Setup Extension
? Enter version: 0.1.0
? Do you want to add application layers? Yes
? Browse layers with arrow keys ↑↓: [omni default streaming]: Omniverse Kit App Streaming (Default)

2-2-3. 拡張機能の設定

テンプレートの作成が完了するとkit-app-template\source\appsに設定したテンプレート名の.kitファイルが作成されます。(今回の試行ではmy_company.my_usd_composer.kitが作成されています。)
my_company.my_usd_composer.kitをコードエディタ(VSCodeなど)で開き、Spatial Straming用の拡張機能を追加します。
テンプレート作成時にKit Base Editorを選択した場合には設定内容が異なるためドキュメントを参照して下さい。(Set Up Omniverse SDK)

今回はテンプレート作成時にUSD Composerを選択したので以下を追加します。
[dependencies]セクションに以下を追加します。

# XR extensions for AVP development
#"omni.kit.xr.ogn" = {}
"omni.kit.xr.profile.ar" = {}

# XR Simulator Extensions
"omni.kit.xr.system.simulatedxr" = {}

# Environment Core
"omni.kit.environment.core" = {}

mainブランチの最新(20250530現在)では"omni.kit.xr.ogn" = {}は拡張機能エラーのためコメントアウトしています。

[settings]セクションに以下を追加します。

# XR Settings for AVP development
xr.cloudxr.version = 4.1
xr.depth.aov = "GBufferDepth"
xr.simulatedxr.enabled = true

# Performance Settings
persistent.renderer.raytracingOmm.enabled = true
rtx-transient.resourcemanager.enableTextureStreaming = false
xr.ui.enabled=false

# Default AR mode to "Stage" render quality
defaults.xr.profile.ar.renderQuality = "off"

# Enable CloudXR 4.1 by default
defaults.xr.profile.ar.system.display = "CloudXR41"

# Set near clipping plane for AR to 0.15 meters
persistent.xr.profile.ar.render.nearPlane = 0.15

# Avoid some glass artifacts
persistent.rtx.sceneDb.allowDuplicateAhsInvocation = false

設定後.kitファイルを保存してビルドを行います。

2-2-4. templateのビルド

コマンドプロンプトから下記を実行します。

.\repo.bat build

ビルドが成功すると以下のようにBUILD (RELEASE) SUCCEEDED が表示されます。

2-2-5. templateの立ち上げ

ビルド完了後、以下のコマンドからUSD Composerアプリを起動します。

.\repo.bat launch -d

起動後に以下の画像のような表示になる場合がありますが、ARタブを右下に移動させて全体を表示させて下さい。

2-3. Spatial Stramingの実行

USD Composer内のシーンとSpatial Stramingを設定します。
Configurator SamplesタブからSpatial Stramingで表示したいシーンを読み込みます。

次にARタブの以下の項目を設定します。

項目 設定値
Selected Output Plugin OpenXR
OpenXR Runtime CloudXR Runtime

設定後Start ARボタンからCloudXRを実行します。

次に「2-1. Apple Vison Proアプリ環境構築」でビルドしたApple Vision Proアプリisaac-xr-teleop-sample-client-appleを起動し、USD Composerを実行しているPCのIPアドレスを入力します。
Connectボタン押下でPCと接続されます。
Spatial Stramingが開始されるとApple Vision ProにUSD Composerの映像が、PC側に2眼のレンダリング結果が表示されます。

3. 実行結果

USD ComposerにKoenigsegg_Ragnarokを読み込んで実行してみた結果が次の動画になります。

https://youtu.be/79K-7kW0hE8

4. おわりに

OmniverseとApple Vision Pro間でのSpatial Streamingを試行し、環境構築手順をまとめました。
今後もOmniverseやApple Vision Proを含めた関連技術について調査していきます。

参考情報

ホロラボのテックブログ

Discussion