Gaussian Adaptive Streamer

March 27, 2026 · View on GitHub

Gaussian Adaptive Streamer is a prototype system for adaptive streaming of 3D Gaussian Splatting scenes over modern web transport protocols. The project combines HTTP/3-based delivery, DASH-style adaptive streaming, and server-side Gaussian model handling to efficiently stream large neural rendering datasets to a client.Gaussian Adaptive Streamer

Requirements

  • Nvidia GPU with driver.
  • FFMPEG with h642_nvenc encoder
  • Python dependencies are listed in requirements.txt.

Directory structure

Create a models directory in the project root and place all models inside it:

project_root/
├── static
    └── models/
       ├── modelID/
   ├── modelName.ply
   └── preview.jpg
       └── anotherModelID/
           ├── anotherModelName.ply
           └── anotherPreview.jpg
└── requirements.txt

These models and previews will be loaded automatically when starting the server.

Installation

Create a clean Python environment and install the project dependencies.

1. Create environment

conda create -n render python=3.12 -y
conda activate render

2. Install dependencies

python -m pip install --upgrade pip
python -m pip install -r requirements.txt

3. Verify PyTorch + CUDA

python -c "import torch; print('Torch:', torch.__version__); print('CUDA available:', torch.cuda.is_available())"

4. Notes

  • The requirements.txt installs CUDA 11.8 PyTorch wheels from the official PyTorch wheel index.
  • This project was developed and tested with CUDA 11.8. There is no guarantee that other CUDA versions will work.

  • GPU execution also depends on a compatible NVIDIA driver. Systems with incompatible drivers may fail to initialize CUDA.

  • The environment was tested with Python 3.12. Other Python versions may not have compatible wheels for the specified PyTorch/CUDA combination.

If GPU support fails, verify:

  • nvidia-smi works

  • the installed driver version supports CUDA 11.8

  • the correct PyTorch CUDA wheels were installed.

Running the Server

Start the streaming server:

python http3_server.py --certificate certificates/ssl_cert.pem --private-key certificates/ssl_key.pem

Start Google Chrome with flags:

Linux:

 google-chrome \
  --enable-experimental-web-platform-features \
  --ignore-certificate-errors-spki-list=BSQJ0jkQ7wwhR7KvPZ+DSNk2XTZ/MS6xCbo9qu++VdQ= \
  --origin-to-force-quic-on=localhost:4433 \
  https://localhost:4433/models-ui

If super resolution is not working, try:

google-chrome \
  --enable-experimental-web-platform-features \
  --enable-unsafe-webgpu \
  --ignore-gpu-blocklist \
  --ignore-certificate-errors-spki-list=BSQJ0jkQ7wwhR7KvPZ+DSNk2XTZ/MS6xCbo9qu++VdQ= \
  --origin-to-force-quic-on=localhost:4433 \
  https://localhost:4433/models-ui

Note:

  • For trying the experimental version with dash.js as player type instead of /models-ui, go to /player-dash.
  • Close Google Chrome before running this command.

Preview

Model Selection

Model selection

Viewer

Viewer

Experiment

Experiment