Skip to content
Auto-encoding & Generating 3D Point-Clouds.
Branch: master
Clone or download
Latest commit e982763 Aug 15, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc/images no message Dec 6, 2017
external mdb Dec 23, 2017
notebooks minor removal Aug 15, 2018
src updating with GAN-training notebooks Aug 14, 2018
.gitignore mdb Dec 23, 2017
.gitmodules mdb Dec 23, 2017 mdb Nov 27, 2017 README Aug 15, 2018 mdb Nov 27, 2017 adding evaluation metrics Mar 18, 2018

Learning Representations and Generative Models For 3D Point Clouds

Created by Panos Achlioptas, Olga Diamanti, Ioannis Mitliagkas, Leonidas J. Guibas.



This work is based on our arXiv tech report. We proposed a novel deep net architecture for auto-encoding point clouds. The learned representations were amenable to semantic part editting, shape analogies, linear classification and shape interpolations.


If you find our work useful in your research, please consider citing:

  title={Learning Representations and Generative Models For 3D Point Clouds},
  author={Achlioptas, Panos and Diamanti, Olga and Mitliagkas, Ioannis and Guibas, Leonidas J},
  journal={arXiv preprint arXiv:1707.02392},



Our code has been tested with Python 2.7, TensorFlow 1.3.0, TFLearn 0.3.2, CUDA 8.0 and cuDNN 6.0 on Ubuntu 14.04.


Download the source code from the git repository:

git clone

To be able to train your own model you need first to compile the EMD/Chamfer losses. In latent_3d_points/external/structural_losses we have included the cuda implementations of Fan et. al.

cd latent_3d_points/external

with your editor modify the first three lines of the makefile to point to 
your nvcc, cudalib and tensorflow library.


Data Set

We provide ~57K point-clouds, each sampled from a mesh model of ShapeNetCore with (area) uniform sampling. To download them (1.4GB):

cd latent_3d_points/

The point-clouds will be stored in latent_3d_points/data/shape_net_core_uniform_samples_2048

Use the function snc_category_to_synth_id, defined in src/in_out/, to map a class name such as "chair" to its synthetic_id: "03001627". Point-clouds of models of the same class are stored under a commonly named folder.


To train a point-cloud AE look at:


To train a latent-GAN based on a pre-trained AE look at:


To train a raw-GAN:


To use the evaluation metrics (MMD, Coverage, JSD) between two point-cloud sets look at:



This project is licensed under the terms of the MIT license (see for details).

You can’t perform that action at this time.