ase
Atomic Simulation Environment
What it is and what it does
ASE is a mature Python framework for computational materials science and quantum chemistry workflows. It provides a unified interface for constructing atomic structures, running geometry optimizations and molecular dynamics, and analyzing results—typically by delegating calculations to external quantum chemistry engines while handling structure manipulation, trajectory I/O, and visualization through its own modules.
The package is built on numpy, scipy, and matplotlib, making it a natural fit for researchers already working in the scientific Python ecosystem. It includes a GUI for trajectory inspection, a database module for storing and querying simulation results, and optimization algorithms like BFGS. Users write Python scripts to define molecular systems, attach calculators, run simulations, and extract energies or forces.
Use it for:
- Geometry optimization of molecular structures using external quantum chemistry codes via ASE's calculator interface.
- Building and manipulating atomic structures programmatically, then exporting to standard formats (XYZ, trajectory files).
- Running molecular dynamics or structure searches and storing results in ASE's database for later analysis and querying.
- Visualizing atomic trajectories and structures using the ASE GUI after simulation completion.
- Batch processing multiple structures or parameter sweeps by scripting ASE workflows in Python.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ASE provides Python tools for setting up, running, and analyzing atomistic simulations—building molecular geometries, optimizing structures, and interfacing with quantum chemistry calculators.
Yes, if you work in computational materials science or quantum chemistry and need a Python interface to structure manipulation and calculator orchestration. The low install friction, active maintenance, and broad adoption in the materials science community make it a solid foundation. The LGPL-2.1-or-later license is permissive for research and open-source use but requires attention if you plan to ship proprietary derivatives. No known security vulnerabilities.
Install
ase on PyPI
pip
pip install aseuv
uv add asepoetry
poetry add aseInstalling ase
Before you install
Low friction install with a pure-Python wheel. Actively maintained with a recent release 54 days ago. Requires Python 3.10 or later and four core scientific dependencies (numpy, scipy, matplotlib, typing_extensions), all widely available.
License in practice
Licensed under LGPL-2.1-or-later (copyleft). Derivative works and modifications must be distributed under the same or compatible license; proprietary closed-source applications cannot incorporate ASE without compliance.
Quickstart
pip install ase
from ase import Atoms
from ase.optimize import BFGS
h2 = Atoms('H2', positions=[[0, 0, 0], [0, 0, 0.7]])
opt = BFGS(h2, trajectory='h2.traj')
opt.run(fmax=0.02)
Requires Python 3.10 or later. External quantum chemistry calculator (e.g., NWChem) must be installed separately for actual energy/force calculations.
Verify before relying
- Whether Flask and spglib are pre-installed or must be added separately for their respective features.
- Performance characteristics and typical runtime for large-scale simulations or high-dimensional structure optimizations.
Package facts
| License | LGPL-2.1-or-later (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — numpy, scipy, matplotlib, typing_extensions |
| Maintenance | actively maintained — 54 days since the last release |
| First released | |
| Downloads | 1,710,465/month — #3,626 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ase-3.29.0-py3-none-any.whl
Tags
More Physics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
pydicomPydicom reads, modifies, and writes DICOM…
permissive · top 5,000 on PyPI
albumentationsAlbumentations applies image transformations to…
permissive · top 5,000 on PyPI
CoolPropCoolProp provides thermodynamic and transport…
permissive · top 5,000 on PyPI
pyquaternionProvides quaternion representation,…
permissive · top 5,000 on PyPI
ase-db-backendsProvides database backend implementations for…
unclear · top 15,000 on PyPI
dpdatadpdata converts and manipulates atomistic…
copyleft · top 15,000 on PyPI
fairchem-coreProvides pretrained machine learning models for…
permissive · top 15,000 on PyPI
matscipyMatscipy provides domain-specific computational…
copyleft · top 15,000 on PyPI
MDAnalysisMDAnalysis reads and analyzes molecular…
copyleft · top 15,000 on PyPI
pyocseAutomates simulation workflows for organic…
permissive · top 15,000 on PyPI
pdb2pqrPDB2PQR prepares protein structures from PDB…
permissive · top 15,000 on PyPI
lammpslammps provides pre-built Python bindings to…
copyleft · top 15,000 on PyPI
vesin-torchComputes neighbor lists for atomistic systems…
permissive · top 15,000 on PyPI
pyscfPySCF is a Python framework for quantum…
permissive · top 15,000 on PyPI