Spherical CNNs on Unstructured Grids Using Parameterized Differential Operators
Clone or download
Latest commit 0cd6c1d Dec 24, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
baseline/exp3_2d3ds clean up Oct 1, 2018
doc clean up Oct 1, 2018
experiments final cleanup Dec 24, 2018
meshcnn final cleanup Dec 24, 2018
.gitignore update Jul 7, 2018
LICENSE clean up Oct 1, 2018
README.md Update README.md Dec 24, 2018
gen_mesh.py clean up Oct 1, 2018


UGSCNN: Spherical CNNs on Unstructured Grids

By: Chiyu "Max" Jiang, Jingwei Huang, Karthik Kashinath, Prabhat, Philip Marcus, Matthias Niessner

[Project Website] [Paper]



This repository is based on our ICLR 2019 paper: UGSCNN: Spherical CNNs on Unstructured Grids. The project webpage presents an overview of the project.

In this project, we present an alternative convolution kernel for deploying CNNs on unstructured grids, using parameterized differential operators. More specifically we evaluate this method for the spherical domain that is discritized using the icosahedral spherical mesh. Our unique convolution kernel parameterization scheme achieves high parameter efficiency compared to competing methods. We evaluate our model for classification as well as semantic segmentation tasks. Please see experiments/ for detailed examples.

Our deep learning code base is written using PyTorch in Python 3, in conjunction with standard ML packages such as Scikit-Learn and Numpy.

Generate or download mesh files

To acquire the mesh files used in this project, run the provided script gen_mesh.py.

python gen_mesh.py

To locally generate the mesh files, the Libigl library is required. Libigl is mainly used for computing the Laplacian and Derivative matrices that are stored in the pickle files. Alternatively the script will download precomputed pickles if the library is not available.

Run experiments

To run experiments, please find details instructions in under individual experiments in experiments. For most experiments, simply running the script run.sh is sufficient to start the training process:

chmod +x run.sh

The script will automatically download data files if needed.


We used code from open-source repositories, including S2CNN, Libigl, among others.


Please contact Max Jiang if you have further questions!