Freud is a Python library for powerful, efficient trajectory analysis in scientific Python, targeting molecular dynamics and particle-based simulations. Version 3.5.0 supports Python >=3.12, uses abi3 wheels, and is released on a regular cadence (quarterly or more).
Install & Compatibility
Where this runs
tested against v3.4.0 · 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
muslpy 3.10–3.95 runs
build_error
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 7.9s · import 1.212s · 230MB
233MB installed
● package 233MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Top-level package. Use freud.box, freud.density, freud.order etc.
import freud
Box is a class in freud.box module.
from freud.box import Box
RDF is in freud.density, not top-level.
from freud.density import RDF
NeighborList is in freud.locality.
from freud.locality import NeighborList
Create a box, random points, compute RDF and neighbor list.
import freud
import numpy as np
# Create a simulation box and random points
box = freud.box.Box.cube(10.0)
points = np.random.uniform(-5, 5, (100, 3))
# Compute radial distribution function
rdf = freud.density.RDF(bins=100, r_max=5.0)
rdf.compute(system=(box, points))
print(rdf.r, rdf.rdf)
# Compute neighbors
nlist = freud.locality.LinkCell().compute(system=(box, points), num_neighbors=6)
print(nlist.nlist.id_i, nlist.nlist.id_j)
Upgrade
Version history
Breaking-change detection hasn't run for this library yet.
Audit
Security & dependencies
CVE tracking and dependency tree are planned for a later release.