There are several alternative methods to determine bonding between atoms. Some of the algorithms use heuristics refined over time, like those in Jmol and OpenBabel, while others are based on more mathematical foundations, such as the methods of Brunner, 21 , Hoppe, O'Keefe et al, and Isayev et al. For a full review and comparison of these, we refer the reader to Ref. 16. Of course the choice of bonding method impacts the choice of topology determination, but it is not entirely clear what is the "best" method at the moment -and it might depend on the category of systems studied. However, CrystalNN was found to perform well on a benchmark across multiple families of crystalline systems. One method, that was developed at the same time as CrystalNN and is also implemented in pymatgen is the ChemEnv 25 algorithm, which has been field-tested by an analysis of the coordination environments in 8,000 oxides 26 of the Inorganic Crystal Structure Database (ICSD). ChemEnv features different possible strategies for the determination of bonding and coordination environments of atoms in a crystal. However, even with the "simplest" strategy (SimplestChemenvStrategy), we found that the computational cost of ChemEnv analysis is larger than other methods, making it unsuitable to apply at the scale of hundred thousands of structures. To give an idea, the application of CrystalNN to the database took under four hours, with a timing of 81 ms per structure on average; ChemEnv analysis (performed on a random subset of 5000 structures) was 25 times slower, with 2.0 s per structure.