MLatom is a package for atomistic simulations with machine learning and quantum chemical methods such as DFT, wavefunction based, and semi-empirical approximations. You can use it as a Python library, via input files or command line. It is an open-source software under the MIT license (modified to request proper citations).
Official website: MLatom.com with manuals and tutorials.
MLatom is supported by Aitomistic, which enables simulations with MLatom online on the Aitomistic Hub (registration free), with AI assistant Aitomia helping with autonomous atomistic simulations. Aitomistic also distributes add-ons to MLatom, which supercharge MLatom with the most advanced features and ML models, often before they are published.
The package was founded by Pavlo O. Dral on 10 September 2013. Pavlo continues to develop and supervise the development of the package.
Do not miss MLatom updates – subscribe to us on the Aitomistic channels, including email newsletter and your favorite social media platform.
Quick installation:
python3 -m pip install -U mlatom
See detailed installation instructions on recommended dependences and other tips.
Full release notes.
- MLatom 3.18.0 - FSSH, KRR in Julia, MDtrajNet-1 - universal model for directly predicting MD trajectories, ECTS - a diffusion model for generating TSs.
- MLatom 3.17.1-3.17.2 (26.03-21.05.2025) - + QST2 and QST3, NEB, more options for RMSD calculations and UV/vis plots, code refactoring for higher efficiency, major bug fixes, etc.
- MLatom 3.16.2 (18.12.2024) - bug fixes, quality of life improvements (calculation of bond lengths, angles, RMSD, geometry optimization followed by frequency calculations in the same file, etc.).
- MLatom 3.16.1 (11.12.2024) - DFTB and TD-DFTB via interface to DFTB+.
- MLatom 3.16.0 (04.12.2024) - TDDFT and TDA calculations via PySCF interface, TDDFT via Gaussian, and parsing of Gaussian output files into MLatom data format (overview)
- MLatom 3.15.0 (27.11.2024) - fine-tuning of the foundational ANI potentials ANI-1x, ANI-1ccx, ANI-1ccx-gelu, and ANI-2x.
- MLatom 3.14.0 (20.11.2024) - UV/vis spectra from single-point convolution and nuclear-ensemble approach. Updated interface to MACE to support its latest 0.3.8 version.
- MLatom 3.13.0 (06.11.2024) - IR spectra calculations with AIQM1, AIQM2, UAIQM with semi-empirical baseline, and a range of QM methods (DFT, semi-empirical, ab initio wavefunction), with empirical scaling for better accuracy, special spectra module with plotting routines in Python.
- MLatom 3.12.0 (08.10.2024) - AIQM2, ANI-1ccx-gelu.
- MLatom 3.11.0 (23.09.2024) - DENS24 functionals, simpler choice of methods, IR spectra, important bug fixes (particularly for active learning) (overview).
- MLatom 3.10.0-1 (21-22.08.2024) - active learning for surface hopping MD, multi-state ANI for excited states, gapMD for efficient exploration of the conical intersection regions, quality of life improvements such as viewing molecules, databases, and trajectories in Jupyter, easier load of molecules (overview).
- A-MLatom/MLatom@XACS update (24.07.2024) - Raman spectra
- MLatom 3.9.0 (23.07.2024) - periodic boundary conditions
- MLatom 3.8.0 (17.07.2024) - directly learning dynamics
- MLatom 3.7.0-1 (03-04.07.2024) - active learning & batch parallelization of MD
- A-MLatom/MLatom@XACS update (27.06.2024) - universal and updatable AI-enhanced QM methods (UAIQM)
- A-MLatom/MLatom@XACS update (20.06.2024) - IR spectra
- MLatom 3.6.0 (15.05.2024) - + new universal ML models (ANI-1xnr, AIMnet2, DM21)
- MLatom 3.5.0 (08.05.2024) - quasi-classical trajectory/molecular dynamics
- MLatom 3.4.0 (29.04.2024) - usability improvements with focus on geometry optimizations
- MLatom 3.3.0 (03.04.2024) - surface-hopping dynamics
- MLatom 3.2.0 (19.03.2024) - diffusion Monte Carlo and energy-weighted training
- MLatom 3.1.0 (12.29.2023) - MACE interface
- MLatom 3.0.0 (12.09.2023)
We highly welcome the contributions to the MLatom project. You may also create your own private derivatives of the project by following the license requirements.
If you want to contribute to the main MLatom repository, the easiest way is to create a fork and then send a pull request. Alternatively, you can ask us to create a branch for you. After we receive a pull request, we will review the submitted modifications to the code and may clean up of the code and do other changes to it and eventually include your modifications in the main repository and the official release.

