MoVerse: Real-Time Video World Modeling with Panoramic Gaussian Scaffold
July 15, 2026 ยท View on GitHub
๐ข 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)
๐ฅ 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-devis 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.combefore running the script below.
./scripts/download_weights.sh
This downloads all weights to checkpoints/:
| Weight | Source | Path |
|---|---|---|
| AutoLevel | Orange-3DV-Team/MoVerse | checkpoints/gimbal360/autolevel.pth |
| Pano LoRA | Orange-3DV-Team/MoVerse | checkpoints/gimbal360/pytorch_lora_weights.safetensors |
| Gaussian Predictor | Orange-3DV-Team/MoVerse | checkpoints/gaussian_predictor_checkpoint.pth |
| Self-Forcing Video | Orange-3DV-Team/MoVerse | checkpoints/self_forcing_video.pt |
| TAEHV VAE | Orange-3DV-Team/MoVerse | checkpoints/taew2_1.pth |
| FLUX.1-Fill-dev | black-forest-labs/FLUX.1-Fill-dev | checkpoints/FLUX.1-Fill-dev/ |
| DA3 | depth-anything/DA3NESTED-GIANT-LARGE-1.1 | checkpoints/DA3NESTED-GIANT-LARGE-1.1/ |
| Wan2.1-T2V-1.3B | Wan-AI/Wan2.1-T2V-1.3B | checkpoints/Wan2.1-T2V-1.3B/ |
Note:
gaussian_predictor_checkpoint.pthincludes 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
| Key | Action |
|---|---|
| W/A/S/D | Move forward/left/back/right |
| Arrows/Mouse drag | Look around |
| Shift | Speed 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!