Registry / data / jarvis-tools

jarvis-tools

JSON →
library2026.4.2pypypi✓ verified 84d ago

jarvis-tools is an open-source Python package for data-driven atomistic materials design, developed by NIST. It provides modules for crystal structure analysis, high-throughput DFT workflows, machine learning descriptors, and access to the JARVIS-DFT and JARVIS-FF databases. Current version is 2026.4.2, released monthly (around end of each month).

pip install jarvis-tools
INSTALL
IMPORT
SIG · JARVIS-TOOLS
J
jarvis-tools
datapythonv2026.4.2
Install
Import
Disk
Pass rate
0/ 10
Env Coverage0 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v2026.4.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
✕ build_error
1/2 runs
py 3.11
✕ build_error
1/2 runs
py 3.12
✕ build_error
1/2 runs
py 3.13
✕ build_error
1/2 runs
py 3.9
✕ build_error
1/2 runs
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Atoms
from jarvis.core.atoms import Atoms
from jarvis.io.vasp.outputs import Atoms
Atoms class moved to jarvis.core.atoms around version 2022.x. Old import path from VASP is incorrect.
Graph
from jarvis.core.graphs import Graph
from jarvis.core import Graph
Graph is not directly in core; must import from jarvis.core.graphs.
get_fractional_coordinates
from jarvis.core.utils import get_fractional_coordinates
Utility functions are under jarvis.core.utils, not directly on Atoms object in older API.

Create a simple atomic structure and print basic properties.

from jarvis.core.atoms import Atoms from jarvis.core.specie import Specie # Create an atomistic structure (diamond silicon) coords = [[0.0, 0.0, 0.0], [0.5, 0.5, 0.5]] elements = ["Si", "Si"] lattice = [[0.0, 0.0, 1.0], [0.0, 1.0, 0.0], [1.0, 0.0, 0.0]] # cubic, a=1.0 atoms = Atoms(lattice_mat=lattice, coords=coords, elements=elements) print(atoms) print("Lattice:", atoms.lattice_mat) print("Number of atoms:", len(atoms)) # Convert to fractional coordinates (using utility) from jarvis.core.utils import get_fractional_coordinates frac = get_fractional_coordinates(atoms.coords, atoms.lattice_mat) print("Fractional coords:", frac)
Debug
Known issues
breakingThe 'Atoms' class was moved from jarvis.io.vasp.outputs to jarvis.core.atoms in 2022. Old imports will break.
fix
Use 'from jarvis.core.atoms import Atoms' instead.
affects: >=2022
breakingThe 'Graph' class is not directly importable from jarvis.core; must be imported from jarvis.core.graphs.
fix
Use 'from jarvis.core.graphs import Graph'.
affects: all
deprecatedFunctions like 'jarvis.core.utils.get_fractional_coordinates' replaced older methods on Atoms (e.g., atoms.fractional_coords). Check deprecation warnings.
fix
Use jarvis.core.utils functions as needed; check documentation for new API.
affects: >=2024
gotchaThe package 'jarvis-tools' should be installed with exact hyphen, not underscore (jarvis_tools). pip install jarvis_tools will fail if not found.
fix
Install via 'pip install jarvis-tools'.
affects: all
gotchaMany JARVIS-DFT database functions require an internet connection and may cache data in ~/.cache/atomgptlab/ by default. If you get connection errors, check network or set JARVIS_CACHE_DIR.
fix
Set environment variable JARVIS_CACHE_DIR to a different path.
affects: all
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'jarvis.core.atoms'
Importing from jarvis.core.atoms but the version is old (<2022) or package not installed correctly.
fix
Upgrade: pip install --upgrade jarvis-tools. Also ensure you have correct import path: from jarvis.core.atoms import Atoms.
AttributeError: 'Atoms' object has no attribute 'coords'
Trying to access atoms.coords directly but newer version uses atoms.cart_coords or requires utility function.
fix
Use atoms.cart_coords or from jarvis.core.utils import get_fractional_coordinates for coordinates.
ValueError: Could not parse POSCAR file
Using an outdated reader for VASP files. The POSCAR parser has been updated and expects specific format.
fix
Use 'from jarvis.io.vasp.inputs import Poscar' and call Poscar.from_file('POSCAR').atoms.
TypeError: lattice_mat must be a 3x3 list or array
Passing lattice vectors incorrectly (e.g., 1D array or wrong shape).
fix
Provide lattice as a list of three vectors, each a list of three floats: [[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]].
Upgrade
Version history
2026.4.2latest on PyPI · released Apr 5, 2026
Audit
Dependencies
numpyrequiredcore numerical operations
scipyrequiredscientific computing
spglibrequiredspace group symmetry
pandasrequireddata handling
pymatgenoptionalmaterials analysis (legacy dependency, may be phased out)
matplotliboptionalplotting (optional but required for some visualization)
Agent activity
24 hits · last 30 days
node
18
Amazon
1
Resources
jarvis-tools — pip install jarvis-tools · libregistry