EvoWorld
January 13, 2026 Β· View on GitHub
Official implementation of
EvoWorld: Evolving Panoramic World Generation with Explicit 3D Memory
EvoWorld is a generative world model that explicitly reconstructs and utilizes a 3D memory for egocentric video generation. Starting from a single panoramic image and a sequence of camera poses, EvoWorld synthesizes future frames with strong 3D consistency by projecting an evolving 3D point cloud onto future views as conditioning for a video diffusion model.
Table of Contents
- π§ Installation
- π¦ Pretrained Weights & Dataset
- β‘ Quickstart
- Single-clip generation
- 3-clip iterative generation
- π§ͺ Inference (full test set)
- π Evaluation
- ποΈ Training
- πΊοΈ Spatial360 Dataset
- π Acknowledgements
π§ Installation
git clone git@github.com:JiahaoPlus/EvoWorld.git --recursive
cd EvoWorld
conda create -n evoworld python=3.11
conda activate evoworld
pip install -r requirements.txt
conda install -c conda-forge "cudnn>=9,<10"
π¦ Pretrained Weights & Dataset
We have released:
- Model weights (Hugging Face): Evoworld_Unity_Curve_Path
- Corresponding dataset (Google Drive): Unity_Curve_Path_Data, UE5_Curve_Path_Data
How to use
1. Download model weights and dataset
- Download model weights from Hugging Face and place them in the
MODELS/directory. - Download the dataset from Google Drive.
- After downloading the dataset, extract it (adjust paths as needed):
tar -xvf /path/to/dataset.tar -C data/ - Update the model path in
run_single_segment.shandrun_unified_pipeline.shto point to your downloaded weights.
2. Run model on provided example
- For single clip generation, run:
bash run_single_segment.sh - For 3-clip iterative generation, run:
bash run_unified_pipeline.sh - Make sure the model path in these scripts matches your downloaded weights in
MODELS/.
3. Run model across the whole test set
- Change your model path in
inference_unity_curve.shto the downloaded weights. - Execute:
bash inference_unity_curve.sh
4. Get evaluation metrics
- Run:
bash calculate_metrics.sh
β‘ Quickstart
Single-clip generation (one clip)
bash run_single_segment.sh
3-clip iterative generation (memory carried across 3 clips)
bash run_unified_pipeline.sh
Notes:
run_single_segment.shruns a single-clip example.run_unified_pipeline.shruns three clips iteratively, reusing the evolving 3D memory.- Ensure the model path inside these scripts points to your downloaded weights in
MODELS/.
πΊοΈ Spatial360 Dataset
We have released the Unity Curve Path and UE5 Curve Path subset β remaining subsets are coming soon!
ποΈ Training
To reproduce our performance, run the train script:
# Train EvoWorld
bash train.sh
π§ͺ Inference (full test set)
Update your model path in inference_unity_curve.sh and run:
bash inference_unity_curve.sh
π Evaluation
Compute evaluation metrics on the outputs:
bash calculate_metrics.sh
π Acknowledgements
This codebase builds upon: