NeurIPS 2025
3D shape completion methods typically assume scans are pre-aligned to a canonical frame. When such alignment is absent in real data, performance collapses. SIMECO is a SIM(3)-equivariant network that delivers generalizable shape completion.
You can run the demo in one of two ways:
- Google Colab (Recommended): No installation needed; get started instantly in the cloud.
- Local Linux: Set up the environment locally for GPU-accelerated inference.
To run the demo on Google Colab, simply click the badge above. Follow the instructions and execute the cells sequentially with a GPU instance. Please note that setting up the environment and installing dependencies will take about 1-2 minutes.
Note
A CUDA-enabled GPU is required for local inference.
-
Clone the repository:
git clone https://github.com/submission13448/simeco.git && cd simeco && git lfs pull
-
Create a conda environment with all dependencies (this will take approximately 5 minutes):
conda env create -f build/environment.yml && conda activate simeco -
Run the inference code and choose the desired transformation mode (e.g.,
sim3,translation,scaleorrotation). The results will be saved in thedata/resultdirectory.python inference.py --pc_file data/pc/2a05d684eeb9c1cfae2ca9bb680dd18b.npy --aug_mode sim3
Important
We're actively refactoring the codebase through December 2025. Expect occasional breaking changes.
If you have sufficient resources and want to train and evaluate SIMECO end-to-end, follow these steps:
Install the dependencies:
cd extensions/chamfer_dist
python setup.py installWe use the official PCN dataset. The directory structure should be:
│PCN/
├──train/
│ ├── complete
│ │ ├── 02691156
│ │ │ ├── 1a04e3eab45ca15dd86060f189eb133.pcd
│ │ │ ├── .......
│ │ ├── .......
│ ├── partial
│ │ ├── 02691156
│ │ │ ├── 1a04e3eab45ca15dd86060f189eb133
│ │ │ │ ├── 00.pcd
│ │ │ │ ├── 01.pcd
│ │ │ │ ├── .......
│ │ │ │ └── 07.pcd
│ │ │ ├── .......
│ │ ├── .......
├──test/
│ ├── complete
│ │ ├── .......
│ ├── partial
│ │ ├── .......
├──val/
│ ├── complete
│ │ ├── .......
│ ├── partial
│ │ ├── .......
├──PCN.json
└──category.txt
To evaluate a pre-trained SIMECO model using a single GPU:
bash ./scripts/test.sh <GPU_IDS> \
--ckpts <path_to_checkpoint> \
--config <path_to_config.yaml> \
--exp_name <experiment_name>Example:
bash ./scripts/test.sh 0 \
--ckpts ckpt/checkpoint.pth \
--config cfgs/SIMECO.yaml \
--exp_name SIMECOTo train SIMECO from scratch, run with DDP or DP:
DistributedDataParallel (DDP)
bash ./scripts/dist_train.sh <NUM_GPU> <port> \
--config <config> \
--exp_name <name> \
[--resume] \
[--start_ckpts <path>]Example:
bash ./scripts/dist_train.sh 2 12345 \
--config cfgs/SIMECO.yaml \
--exp_name SIMECO DataParallel (DP)
bash ./scripts/train.sh <GPUIDS> \
--config <config> \
--exp_name <name> \
[--resume] \
[--start_ckpts <path>]Example:
bash ./scripts/train.sh 0 \
--config cfgs/SIMECO.yaml \
--exp_name SIMECO If you use SIMECO in a scientific work, please consider citing the paper:
@article{wang2025simeco,
title={Learning Generalizable Shape Completion with SIM(3) Equivariance},
author={Yuqing Wang and Zhaiyu Chen and Xiao Xiang Zhu},
journal={arXiv preprint arXiv:2509.26631},
year={2025}
}Part of our implementation is based on the PoinTr repository. We thank the authors for open-sourcing their great work.
