Bramble: Fast Common Neighbor Analysis

GitHub tag (latest SemVer)

Bramble is a single atom pattern recognition algorithm based on the Common Neighbor Analysis method. It can efficiently construct CNA fingerprints per atom and connect these fingerprints to a (customizable) pattern library to add labels to the fingerprints. Example scripts are available for easy visualization in Matplotlib.


Cobalt nanoparticle of 15625 atoms generated using a simulated annealing procedure. All colored atoms are identified by the CNA algorithm. The unknown atoms, i.e. atoms with an unknown CNA fingerprint, are rendered using a glass material. (source files can be found here)

For fingerprints that are (still) unknown or for atoms that have a more amorphous chemical environment, Bramble comes bundled with a similarity analysis tool. Although relatively computationally expensive to execute, it yields a powerful similarity metric by which the extent that two chemical environments are the same can be probed.


Bramble has been developed at the Eindhoven University of Technology, Netherlands. Bramble and its development are hosted on github. Bugs and feature requests are ideally submitted via the github issue tracker.

Indices and tables