When building any device — from solar cells to batteries — you inevitably bring different materials together. Each of those joins is an interface, and understanding its atomic structure is critical for predicting how the device will perform.
The problem? Predicting interface structures at the atomic scale is notoriously difficult.
To tackle this, we have developed RAFFLE: an open-source library for automated interface structure prediction, designed to make the process faster, smarter, and more accessible.
📄 Read the full article (npj Computational Materials):
https://doi.org/10.1038/s41524-025-01749-5
💻 Get the code (also via pip):
https://github.com/ExeQuantCode/RAFFLE/

What RAFFLE Does
- Automates interface structure prediction with minimal setup
- Written in Python (with Fortran backend available)
- Seamlessly integrates with ASE, so it slots easily into existing workflows
- Generates diverse candidate interfaces from a given host structure
- Uses active learning: iteratively feeding back energies and structures to refine predictions of the potential energy landscape
- Compatible with any self-consistent calculator — from DFT to empirical potentials to ML interatomic models (e.g. MACE-MP-0, CHGNet)
- Supports both stochastic and deterministic structure generation
Why It Matters
This work builds on our earlier demonstration that RAFFLE can predict the phase stability of interfaces (Phys. Rev. Lett. 132, 066201). With this release, RAFFLE is now a practical tool for:
- Structure search of interface reconstructions
- High-throughput studies of material interfaces
- Exploring entirely new classes of interface-stabilised materials
Compatibility
RAFFLE is a Fortran library provided with a Python wrapper. As such, RAFFLE can be called as either a (most supported) Python library, a Fortran library, or a Fortran executable with an input file.
Additionally, ARTEMIS (the group’s abrupt interface generation tool) is being redeveloped to include a Python wrapper to enable a seamless workflow between the two packages. ARTEMIS can be used to generate host structures that can be fed into RAFFLE for subsequent structure search.
ARTEMIS currently supports Python library use, but it still under development, so bugs and crashes are known to occur. Please report them as issues in the GitHub issue tracker so that they can be addressed by the group.



