GaMO: Geometry-aware Multi-view Diffusion Outpainting for Sparse View 3D Reconstruction

January 12, 2026 ยท View on GitHub

Project Page ๏ฝœ ArXiv

Official implementation of GaMO (version 1)

๐Ÿ”” Note: A fully integrated version with merged environments and a one-click end-to-end pipeline is planned to be released in 2026 February.

๐Ÿ› ๏ธ TODO

  • โœ… Release multi-stage code and environment setups
  • โœ… Provide example dataset: Replica_6/office_2
  • โฌœ Merge multiple conda environments and resolve dependency incompatibilities
  • โฌœ Integrate a one-click bash script for end-to-end pipeline execution
  • โฌœ Add more evaluation datasets

Environment Setup

โš ๏ธ Note: The project currently requires 3 separate conda environments because certain modules depend on incompatible library versions. A unified environment YAML will be released in the next update.


Pretrained Models (Required)

Before running GaMO, make sure the pretrained weights exist under:

gamo/check_points/

Required:


Additional optional downloads (depending on your environment):

  • Stable-Diffusion-2-1-base
    โ†’ place under: gamo/check_points/
    (Download) โ†’ Stable-Diffusion-2-1-base

  • MASt3R model weights
    โ†’ place under: gamo/submodules/MASt3R-SLAM/thirdparty/mast3r/weights/
    (Download) โ†’ MASt3R GitHub


Installation

1. Create conda environments

# 1. 3DGS environment
conda env create -f env/env_3dgs.yml

# 2. GaMO environment
conda env create -f env/env_GaMO.yml

# 3. Mask / Init environment
conda env create -f env/env_opamask.yml

2. Install editable modules

# For 3dgs and opamask
conda activate 3dgs
pip install -e 3dgs/submodules/diff-gaussian-rasterization
pip install -e 3dgs/submodules/simple-knn

# For GaMO
conda activate GaMO
pip install -e gamo/submodules/MASt3R-SLAM
pip install -e gamo/submodules/MASt3R-SLAM/thirdparty/mast3r
pip install -e gamo/submodules/MASt3R-SLAM/thirdparty/in3d

Data Preparation

Dataset must follow:

3dgs/data/Input/Duster/{ROOT}/{SCENE}/
โ”œโ”€โ”€ images/
โ”œโ”€โ”€ images_test/
โ””โ”€โ”€ sparse/
    โ”œโ”€โ”€ 0/
    โ””โ”€โ”€ test/

Example:

3dgs/data/Input/Duster/Replica_6/office_2/


Pipeline Execution

Step 0 โ€” Initial DUSt3R pointcloud (opamask env)

conda activate opamask
bash Point.sh Replica_6 office_2
mkdir -p 3dgs/data/Input/Duster/Replica_6/office_2/sparse/0
cp dust3r_results/Replica_6/office_2/sparse/0/points3D.ply \
   3dgs/data/Input/Duster/Replica_6/office_2/sparse/0/

Step 1 โ€” Initial 3DGS Training (3dgs env)

conda activate 3dgs
bash Pipeline.sh --step 1 Replica_6 office_2

Step 2 โ€” Mask + GaMO Outpainting

# masks
conda activate opamask
bash Pipeline.sh --step 1b Replica_6 office_2

# GaMO Outpaint
conda activate GaMO
bash Pipeline.sh --step 2 Replica_6 office_2

Step 3 โ€” Alignment + Seed Init

conda activate GaMO
bash Pipeline.sh --step 3 Replica_6 office_2

conda activate opamask
bash Pipeline.sh --step 3.5 Replica_6 office_2

Step 4 โ€” Final Refinement + Rendering (3dgs)

conda activate 3dgs
bash Pipeline.sh --step 4 Replica_6 office_2
bash Pipeline.sh --step 5 Replica_6 office_2

Summary Table

StepEnvironmentCommandDescription
0opamaskPoint.shInitial DUSt3R pointcloud
13dgs--step 1Scale cameras, train GS
1bopamask--step 1bRender masks
2GaMO--step 2GaMO diffusion outpainting
3GaMO--step 3Alignment / seed init
3.5opamask--step 3.5DUSt3R refined pointcloud
43dgs--step 4Final GS training
53dgs--step 5Final GS rendering

Contact

If you encounter issues, open a GitHub Issue. """


Citation

If you find our work useful, please cite this paper and give us a โญ๏ธ.

@article{gamo2024,
    author    = {Huang, Yi-Chuan and Chien, Hao-Jen and Lin, Chin-Yang and Chen, Ying-Huan and Liu, Yu-Lun},
    title     = {GaMO: Geometry-aware Multi-view Diffusion Outpainting for Sparse-View 3D Reconstruction},
    journal   = {arXiv preprint arXiv:2406.01570},
    year      = {2024}
}