SuperSDF: Learning-based Sparse Signed Distance Field Super-Resolution
Sagar Panwar*, Nissim Maruani*, Céline Loscos, Mathieu Desbrun,Pierre Alliez
SuperSDF is a learning-based method for signed distance field super-resolution that reconstructs high-fidelity meshes from coarse inputs, without mesh supervision or auxiliary surface representations. Using a sparse voxel network near the surface, our approach learns how to directly refine the input SDF, outperforming prior methods in quality, efficiency, and scalability. More details in our SIGGRAPH 2026 paper.
Getting Started
- Start by cloning the repository and fVDB submodule:
git clone --recursive https://github.com/Sagar160/SSU.git
- Create the
ssuconda environment (tested with CUDA 12.1):
conda env create -f dev_env.yml conda activate ssu
- Our code requires building fVDB, which can take a while (please refer to the original README for more details). Run:
cd openvdb/fvdb export MAX_JOBS=$(free -g | awk "/^Mem:/{jobs=int($4/2.5); if(jobs<1) jobs=1; print jobs}") pip install . cd ../..
Demo 🚀
For a hands-on experience, please refer to the demo notebook located at demo/demo.ipynb. You can load the trained model directly to test results and run inference on your own data.
Implementation
Please consider this config file: config_test.yaml
conda activate ssu
cd ssu/run
python main.py --config config_test.yamlNow you can play with the parameters and run different experiements.
if you want to change model, can be done in main.py file.
Downloading data
mkdir data
cd data
pip install gdown
gdown 1YyYOgn8uxGH6Nz_gGk8OR7IuLKUF89Zeuntar
pip install py7zr py7zr x groundtruth.7z
Remove unecessary file
rm groundtruth.7z
Benchmarking
Our benchmarking methodology is directly inspired by PoNQ. We employ a nearly identical evaluation framework to ensure consistency and comparability in our results.
cd ssu/benchmarking
python get_prediction.py --config config_eval.yamlConfiguration File Overview
📊 Logging
logging: Enable or disable logging to Weights & Biases (WandB).
📁 Data
dataset_grids: Specific grid data to be loaded.mask_threshold: The threshold value used for masking.sdf_scaling_value: The value applied for SDF scaling.unique_random_direction: Boolean; determines if a random direction is assigned to each voxel.
⚙️ Training
use_pre_train_model: Toggle to use a pretrained model.pre_train_model_name: The name or path of the pretrained model to load.
🧪 Evaluation
only_eval: Set to true if you only want to run evaluation (e.g., if training completed but evaluation failed).run_eval: Determines whether to run evaluation at the end of a session.normalize: The specific normalization method used for evaluation.
Model Architecture
We experimented with a U-Net-inspired architecture for hierarchical feature extraction and multi-scale reconstruction.
📑 Acknowledgments
We would like to express our gratitude to the following project teams and organizations for their invaluable support and contributions to this work:
- TITANE Project-Team: For their expertise and guidance in geometric modeling and 3D vision.
- Inria Centre at Université Côte d'Azur: For providing the research environment and resources necessary for this project.
