  We present the Shape Part Slot Machine, a new method for assembling novel 3D
shapes from existing parts by performing contact-based reasoning. Our method
represents each shape as a graph of ``slots,'' where each slot is a region of
contact between two shape parts. Based on this representation, we design a
graph-neural-network-based model for generating new slot graphs and retrieving
compatible parts, as well as a gradient-descent-based optimization scheme for
assembling the retrieved parts into a complete shape that respects the
generated slot graph. This approach does not require any semantic part labels;
interestingly, it also does not require complete part geometries -- reasoning
about the slots proves sufficient to generate novel, high-quality 3D shapes. We
demonstrate that our method generates shapes that outperform existing
modeling-by-assembly approaches regarding quality, diversity, and structural
complexity.
