XR + Gaussian Splatting#
Authors: Connor Smith (NVIDIA), Mimi Liao (NVIDIA)
Supported platforms: x86_64
Language: Python
Last modified: July 17, 2025
Latest version: 1.0.0
Minimum Holoscan SDK version: 3.1.0
Tested Holoscan SDK versions: 3.1.0
Contribution metric: Level 4 - Experimental
This application demonstrates rendering a 3D scene using Gaussian Splatting in XR.
We provide setup steps to run and view the scene with the default Monado OpenXR simulator below. Users with an OpenXR compatible headset may bring their own OpenXR runtime for XR viewing.
0. Training a Gaussian Splatting Model#
The below instructions are based on the gsplat colmap example.
0.1. Clone the gsplat repo#
git clone https://github.com/nerfstudio-project/gsplat.git
0.2. Install dependencies and download the data#
cd gsplat/examples
# Install torch
pip install torch
# Install gsplat
pip install git+https://github.com/nerfstudio-project/gsplat.git
# Install dependencies
pip install -r requirements.txt
# Download the data
python datasets/download_dataset.py
0.3. Train the model#
CUDA_VISIBLE_DEVICES=0 python simple_trainer.py default \
--data_dir data/360_v2/garden/ --data_factor 4 \
--result_dir ./results/garden
note: Training time is observed to take about 30 minutes on Intel i9 CPU + NVIDIA RTX A5000 dGPU
0.4. Set up the checkpoint paths in config.yaml
#
1. Run the application#
Terminal 1: Launch Container and Start Monado Service#
# If you're already in the container, skip this step
./holohub run-container xr_gsplat
# Inside the container, start the Monado service
monado-service
Terminal 2: Build and Run the Application#
# Enter the same container (replace <container_id> with actual ID from 'docker ps')
docker exec -it <container_id> bash
# Build and run the application
./holohub run xr_gsplat