MoVerse: Real-Time Video World Modeling with Panoramic Gaussian Scaffold

July 15, 2026 ยท View on GitHub

MoVerse
โ€‚ โ€‚ โ€‚

๐Ÿ“ข About

TL;DR: We propose MoVerse, a method that builds a navigable 3D world from a single narrow-field-of-view image and renders interactive video in real time on a single RTX 4090. MoVerse separates world construction from observation rendering through a three-stage pipeline, producing coherent and photorealistic free-roaming video walkthroughs.

Features: MoVerse generates high-quality real-time navigable worlds from a single input image, supporting:

  • Panoramic Generation: Expands a single NFOV image into a gravity-aligned, horizontally periodic 360ยฐ ERP panorama via topology-aware latent diffusion
  • 3D Gaussian Scaffold: Lifts the panorama into a panoramic 3D Gaussian scaffold using feed-forward residual prediction in angularโ€“inverse-depth space
  • Autoregressive Video Refinement: Translates scaffold renderings along user-specified camera trajectories into photorealistic video at 8 FPS on a single RTX 4090
  • Free-Roaming Walkthrough: Supports user-controlled camera trajectories with temporally coherent real-time rendering (WASD + mouse controls)
  • Headless Pipeline: Full image-to-video generation from the command line
  • Diverse Scenes: Works across indoor and outdoor scenes โ€” from ancient ruins to cyberpunk streets, anime landscapes to realistic interiors

https://github.com/user-attachments/assets/e0904e7a-4ea9-4ec6-944d-6be1ca20fc26

Frontend demo: scene creation from image + prompt โ†’ live streaming video generation

๐Ÿ—๏ธ Pipeline

Given a single narrow-field-of-view image, MoVerse separates world construction from observation rendering:

INPUT (NFOV image)
  โ†’ STAGE I:   Panoramic Generation (single image โ†’ 360ยฐ ERP)
  โ†’ STAGE II:  3D Gaussian Scaffold (panorama โ†’ splattable 3D asset)
  โ†’ STAGE III: Autoregressive Video Refinement (scaffold โ†’ real-time roaming video)
OUTPUT (navigable world)
MoVerse Pipeline Overview

๐ŸŽฅ Preview

Visit our Project Page to view complete demo videos, interactive 360ยฐ panorama viewers, and 3D Gaussian scaffold visualizations.

๐Ÿ“‹ Requirements

  • GPU: NVIDIA GPU with at least 24 GB VRAM (RTX 4090, A100, H100 tested)
  • OS: Linux (Ubuntu 20.04+ recommended)
  • RAM: 64 GB
  • Python: 3.10
  • Node.js: 18+ (for frontend)
  • ffmpeg: required for video compilation

๐Ÿš€ Quick Start

1. Clone & Install Dependencies

git clone https://github.com/Orange-3DV-Team/MoVerse.git
cd MoVerse

# System packages
sudo apt update
sudo apt install ffmpeg

# Python environment
conda create -n moverse python=3.10 -y
conda activate moverse
pip install -r requirements.txt

# flash-attn (builds CUDA kernels โ€” can take 10+ minutes)
# If the build fails, install a pre-built wheel matching your CUDA version:
#   pip install flash-attn --no-build-isolation
# Or use conda:
#   conda install flash-attn -c conda-forge

# DA3 (Depth Anything 3) โ€” NOT on PyPI, install from source
git clone https://github.com/ByteDance-Seed/Depth-Anything-3.git /tmp/Depth-Anything-3
cd /tmp/Depth-Anything-3 && pip install -e . && cd -

# Frontend
cd world_engine && npm install && cd ..

2. Download Model Weights

Note: FLUX.1-Fill-dev is a gated model. Visit the model page and accept the license terms before downloading.

Note: If you are behind a firewall or in a region without direct HuggingFace access, set HF_ENDPOINT=https://hf-mirror.com before running the script below.

./scripts/download_weights.sh

This downloads all weights to checkpoints/:

WeightSourcePath
AutoLevelOrange-3DV-Team/MoVersecheckpoints/gimbal360/autolevel.pth
Pano LoRAOrange-3DV-Team/MoVersecheckpoints/gimbal360/pytorch_lora_weights.safetensors
Gaussian PredictorOrange-3DV-Team/MoVersecheckpoints/gaussian_predictor_checkpoint.pth
Self-Forcing VideoOrange-3DV-Team/MoVersecheckpoints/self_forcing_video.pt
TAEHV VAEOrange-3DV-Team/MoVersecheckpoints/taew2_1.pth
FLUX.1-Fill-devblack-forest-labs/FLUX.1-Fill-devcheckpoints/FLUX.1-Fill-dev/
DA3depth-anything/DA3NESTED-GIANT-LARGE-1.1checkpoints/DA3NESTED-GIANT-LARGE-1.1/
Wan2.1-T2V-1.3BWan-AI/Wan2.1-T2V-1.3Bcheckpoints/Wan2.1-T2V-1.3B/

Note: gaussian_predictor_checkpoint.pth includes DINOv3 encoder weights (pretrained=False, strict=False). No separate DepthAnythingV2 download needed.

3. Build Frontend

cd world_engine && npm run build && cd ..

4. Run

Real-Time Streaming Server

bash run_sh/run_web_server_pano_gs.sh

Open http://localhost:8889/moverse/ in your browser. Use WASD or the on screen D-Pad to move, arrows or mouse drag to look around, Shift for speed boost.

The web UI includes a Create New Scene wizard: upload a perspective image, enter a prompt, and the system generates panorama โ†’ depth โ†’ 3DGS automatically.

Headless Pipeline (CLI)

# Full pipeline: image โ†’ panorama โ†’ depth โ†’ 3DGS โ†’ video (gen + render + side-by-side)
./scripts/run_pipeline.sh --example

# Or with your own image
./scripts/run_pipeline.sh \
    --image path/to/input.png \
    --prompt "your scene description" \
    --back_prompt "description of unseen areas" \
    --traj examples/alcove/trajectory.txt \
    --output_dir output

Outputs: video.mp4 (generated), video_render.mp4 (Gaussian render), video_side_by_side.mp4 (comparison).

๐Ÿ“ Project Structure

MoVerse/
โ”œโ”€โ”€ pano_gen/              # Stage I โ€” Panorama generation (FluxFill + AutoLevel + LoRA)
โ”œโ”€โ”€ gaussian_gen/          # Stage II โ€” 3DGS generation (Depth-guided Feed-forward Gaussian Splatting)
โ”œโ”€โ”€ world_engine/          # Stage III โ€” Real-time streaming server + Vue frontend
โ”œโ”€โ”€ scripts/               # Headless pipeline & weight download
โ”œโ”€โ”€ examples/              # Example input image + trajectory
โ”œโ”€โ”€ checkpoints/           # Model weights (gitignored, downloaded by script)
โ”œโ”€โ”€ pipeline/              # CausalInferencePipeline
โ”œโ”€โ”€ configs/               # Inference config
โ”œโ”€โ”€ model/                 # Model definitions
โ”œโ”€โ”€ utils/                 # Utilities (Wan2.1 wrapper, etc.)
โ””โ”€โ”€ demo_utils/            # TAEHV decoder

๐ŸŽฎ Controls

KeyAction
W/A/S/DMove forward/left/back/right
Arrows/Mouse dragLook around
ShiftSpeed boost
Speed Slider (UI)Change movement or rotation speed
Gaussian Size Slider (UI)Change Gaussians' sizes uniformally
Record button (UI)Record gen + render + side-by-side video

Note that controls default to the render view at startup (before clicking the "Start denoising" button) so you can view the gaussian scene fast.

๐Ÿ“– Citation

@article{moverse2026,
  title   = {MoVerse: Real-Time Video World Modeling with Panoramic Gaussian Scaffold},
  author  = {Yang Zhou and Ziheng Wang and Yuqin Lu and Haofeng Liu and Jun Liang and Shengfeng He and Jing Li},
  journal = {arXiv preprint arXiv:2606.13376},
  year    = {2026}
}

๐Ÿ™ Acknowledgements

This codebase builds on Self-Forcing, Wan2.1, gsplat, FLUX.1-Fill-dev, Depth Anything 3, Apple ML-Sharp, GEN3C, CausVid, RAVEN, and MemRoPE.

โญ Star

If you're interested in this project, please give us a Star โญ to receive timely open-source notifications!


Built with โค๏ธ by Orange Team, Youku Moku-Lab, HUJING Digital Media & Entertainment Group