matscipy
Generic Python Materials Science tools
What it is and what it does
Matscipy is a Python library for materials science computation built on top of ASE (Atomic Simulation Environment). It provides domain-specific routines for modeling plasticity, dislocations, fracture mechanics, electro-chemistry, tribology, and elastic properties, along with low-level utilities like efficient neighbor lists, atomic strain calculation, ring analysis, and correlation functions. The library is designed for researchers and engineers who need to simulate and analyze atomic-scale material behavior; it wraps ASE's Atoms and Calculator objects to add specialized analysis and computation capabilities.
The package depends on numpy, scipy, ase, and packaging at runtime. Installation uses pre-built wheels on most platforms (Python 3.10–3.13, Windows/Linux/macOS), reducing compile friction, though source installation requires a working C compiler. The library is actively maintained (last commit August 2026) and marked Production/Stable, making it suitable for research workflows where reproducibility and domain-specific accuracy matter.
Use it for:
- Simulate dislocation dynamics and plasticity in crystalline materials under stress.
- Analyze fracture mechanics and crack propagation in atomic-scale models.
- Calculate elastic properties (stiffness tensors, phonon modes) from atomic configurations.
- Study tribological phenomena (friction, wear) at the atomic scale.
- Compute neighbor lists and atomic strain fields efficiently for large systems.
- Perform electro-chemistry simulations involving surface interactions and ion dynamics.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Matscipy provides domain-specific computational tools for materials science simulations built on the Atomic Simulation Environment (ASE), covering plasticity, fracture mechanics, electro-chemistry, tribology, and elastic properties analysis.
Yes, if you are doing materials science research or simulation involving atomic-scale plasticity, fracture, tribology, or elastic property analysis. The library is actively maintained, has no known vulnerabilities, and provides specialized tools not easily replicated elsewhere. LGPL 2.1 licensing permits use in non-free code but requires source disclosure of modifications to matscipy itself. Medium install friction is acceptable given pre-built wheels; source compilation is only needed for development or unsupported platforms.
Install
matscipy on PyPI
pip
pip install matscipyuv
uv add matscipypoetry
poetry add matscipyInstalling matscipy
Before you install
Medium install friction due to compiled dependencies (numpy, scipy, ase). Pre-built wheels available for Windows, Linux, and macOS arm64/x86_64 on Python 3.10–3.13. Active maintenance with last commit 2026-08-05 and 238 repository stars.
License in practice
Licensed under GNU LGPL 2.1 (copyleft). Permits linking into non-free programs but requires source code distribution of modifications to the library itself and allows users to relink modified versions.
Quickstart
pip install matscipy
import matscipy
from ase import Atoms
from matscipy.calculators import EAM # example domain-specific tool
Requires a working C compiler if installing from source (git+https://github.com/libAtoms/matscipy.git); editable installs require --no-build-isolation and virtual environment outside source tree.
Verify before relying
- Performance characteristics and scalability limits for large atomic systems not documented in excerpt.
- Specific version compatibility constraints with ase, numpy, scipy beyond 'requires' metadata.
- Whether optional dependencies (quippy, atomistica, chemview) are needed for core functionality or only specialized workflows.
Package facts
| License | GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted… (full text in the JSON record) (copyleft) |
| Python support | supports the current Python release (>=3.9.0) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 4 — numpy, scipy, ase, packaging |
| Maintenance | actively maintained — 267 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 219,313/month — #9,328 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: matscipy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl; matscipy-1.2.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; matscipy-1.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; matscipy-1.2.0-cp310-cp310-musllinux_1_2_aarch64.whl; matscipy-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl; matscipy-1.2.0-cp310-cp310-win_amd64.whl; matscipy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl; matscipy-1.2.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; matscipy-1.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; matscipy-1.2.0-cp311-cp311-musllinux_1_2_aarch64.whl; matscipy-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl; matscipy-1.2.0-cp311-cp311-win_amd64.whl; matscipy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl; matscipy-1.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; matscipy-1.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; matscipy-1.2.0-cp312-cp312-musllinux_1_2_aarch64.whl; matscipy-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl; matscipy-1.2.0-cp312-cp312-win_amd64.whl; matscipy-1.2.0-cp313-cp313-macosx_11_0_arm64.whl; matscipy-1.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
aseASE provides Python tools for setting up,…
copyleft · top 5,000 on PyPI
fairchem-coreProvides pretrained machine learning models for…
permissive · top 15,000 on PyPI
chgnetCHGNet is a pretrained graph neural network…
permissive · top 15,000 on PyPI
mace-torchMACE trains and evaluates machine learning…
permissive · top 15,000 on PyPI
dscribeDScribe transforms atomic structures into…
permissive · top 15,000 on PyPI
vesin-torchComputes neighbor lists for atomistic systems…
permissive · top 15,000 on PyPI
pyxtalPyXtal generates crystal structures with…
permissive · top 15,000 on PyPI
vesinVesin computes neighbor lists for atomistic…
permissive · top 15,000 on PyPI
dpdatadpdata converts and manipulates atomistic…
copyleft · top 15,000 on PyPI