Composable Crystals: Controllable Materials Discovery via Concept Learning
Nian Liu, Yuwei Zeng, Ryoji Kubo, Nikita Kazeev, Stephen Gregory Dale, Artem Maevskiy, Pengru Huang, Thomas Laurent, Kostya S. Novoselov, Xavier Bresson

TL;DR
This paper presents a novel, interpretable, concept-based framework for controllable crystal generation that enhances exploration of new materials beyond traditional stochastic methods.
Contribution
It introduces a shared set of reusable crystal concepts learned via a vector-quantized variational autoencoder, enabling guided and controllable crystal design.
Findings
Recomposing concepts improves generation quality by up to 53.2% on V.S.U.N metric.
The framework achieves better control and interpretability in crystal generation.
Numerical experiments demonstrate increased novelty and exploration capabilities.
Abstract
De novo crystal generation, a central task in materials discovery, aims to generate crystals that are simultaneously valid, stable, unique, and novel. Existing methods mainly rely on black-box stochastic sampling, providing limited control over how generated structures move beyond the observed distribution. In this paper, we introduce a concept-based compositional framework for crystal generation. We train a vector-quantized variational autoencoder to automatically discover a shared set of reusable crystal concepts, which serve as building blocks for guided generation. These learned concepts naturally exhibit interpretability from both local atomic environments and global symmetry patterns, and generalize to crystals from different distributions. By recombining such concepts, our framework enables controllable exploration of novel crystals beyond the training distribution, rather than…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
