Code and Data


Download (1 MB)

Scripts: Python scripts (in 'scripts/') are used to perform a certain step of our algorithm. Each python script may call C++ apps (in 'code/apps/') or other python scripts.
ScriptRelated appFunction
gen_descriptors.pygen_shape_descriptors,gen_seg_descriptorsGenerate part-aware shape descriptors (Section 4 of the paper).
learn.pyLearn compatibility (Section 5).

    • The code for computing shape descriptors and learning style compatibility does not have external dependencies. However, the visualizer code requires OpenGL and GLUT.
    • Type 'Make' in 'code/' to compile the code. If this step succeeds, three executables should be found in 'code/bin/$ARCH': gen_seg_descriptors, gen_shape_descriptors and point_cloud_viewer.

Data and models

Download (143 MB)

We include two datasets, 'dining' for dining sets, and 'living' for living rooms. Each folder includes the following subdirectories.

models: meshes of all 3D models.

crowdsourcing: human's preferences that are used for training and testing.

features_after_pca: feature vectors after performing PCA.

intermediate_results: all intermediate results generated by the algorithm described in the paper.

A simple example

Download (400 KB)

The example includes three models ('ex/meshes'), with uniform samples ('ex/samples') and segmentations ('ex/segmentation') produced by a previous algorithm.

There are three steps to run the example.
    • Copy/move the code folders 'code/code', 'code/configs' and 'code/scripts' to the root (i.e. at the same level of 'run_example').
    • Copy/move the data folder 'data' to the root.
    • Type 'Make' in './' to run the example. If this step suceeds, our code should produce 'ex/features', 'ex/computing-features' and 'ex/learning'. The summary of the learning process can be found at 'ex/learning/log.txt'.


[PDF 6.6M] [Bib]


Please cite the pages/papers below if you use the code or datasets:

[1] Trimble 3D Warehouse

[2] Style Compatibility For 3D Furniture Models
      Tianqiang Liu, Aaron Hertzmann, Wilmot Li, Thomas Funkhouser
      SIGGRAPH 2015


This code is built upon GAPS library, which is developed by Tom Funkhouser.
[Home] [Project page]