JuliaCon Local Paris 2025

CrystalNets.jl: efficient periodic graph canonization made accessible for the scientific community
2025-10-03 , Robert Faure Amphitheater
Language: English

CrystalNets.jl is a library dedicated to the topological identification of crystalline materials, a seminal problem in materials science. This requires solving the periodic graph canonization problem, a superset of the well-known graph isomorphism problem, but also several other issues ranging from bond detection in chemical structures to the design of an optimized sparse rational system solver. CrystalNets.jl boasts a unique combination of crystal structures coverage and order-of-magnitude performance improvements compared to other topological analysis tools. We will discuss the design of the library, as well as the development of its web interface which allows an easy access to the performance of the Julia code, even for non-programmers in the scientific community.


Crystals form a very large class of materials, whose structural organization consists in an atomic pattern periodically repeated across the three dimensions of space. The topology of a material is the information that can be derived from the graph of its chemical bonds: in the case of crystals, this graph is thus periodic. The study of the topology of materials is a crucial matter in materials science, since it is a primary mean of classification, and families of structures sharing a topology can exhibit similar properties. Yet, identifying the topology of a crystalline material is computationally difficult, since it requires solving the problem of periodic graph canonization.
Graph canonization consists in finding, for a given graph, a unique "canonical" representation; in some sense, its "name". It is a harder problem than graph isomorphism, which consists in checking whether two graphs are identical up to the renaming of their vertices, since the the latter can be solved by computing the canonical representations of the two graphs and checking whether they are identical. Yet, it is unknown whether the simpler problem of graph isomorphism can be solved in polynomial time.

CrystalNets.jl is a Julia library that implements a full topology identification toolkit, taking as an input the chemical representation of a material and outputting the name of its topology if it is known in the scientific literature, or its canonical representation otherwise. It thus fully solves the periodic graph canonization problem, but also encompasses many options for the extraction of the graph from the chemical input. Its algorithm is polynomial in the vast majority of real crystal cases, but falls back to a slower strategy when needed to ensure coverage of all possible structures. Its can analyze databases of millions of structures easily, significantly outperforming similar tools in both accuracy and speed.
We will discuss the design and implementation of the library and some related tools for the study of periodic graphs.

In order to make it more accessible for the scientific community, a web interface was developed to allow an intuitive access to the powerful algorithms of CrystalNets.jl for anyone. We will also discuss the implementation of this interface, and the efforts to make the performance of this Julia program reach a wider audience.

GitHub repository: https://github.com/coudertlab/CrystalNets.jl
Documentation: https://coudertlab.github.io/CrystalNets.jl/dev
Web interface: https://progs.coudert.name/topology

Post-doctorate researcher at Collège de France in computational chemistry, and Julia teacher at École des Mines - PSL.