a Python toolbox for analysing motion tracking data
2026-04-02
Defining behaviour is tricky, but many have tried.
The total movements made by the intact animal (Tinbergen 1951).
We can quantify movements through various tools:


![]()
![]()
![]()

![]()
![]()
![]()












from movement.io import load_dataset
from movement.filtering import rolling_filter
from movement.kinematics import compute_speed
ds = load_dataset(
"path/to/my_data.h5", source_software="DeepLabCut", fps=30
)
ds = ds.sel(time=slice(600, 2400))
ds["position_smooth"] = rolling_filter(
ds["position"], window=5, statistic="median"
)
ds["speed"] = compute_speed(ds["position_smooth"])
ds.to_netcdf("my_data_processed.nc")Sample data: DBTravelator from Holly Morley.
Sample data: EPM from Loukia Katsouri.

![]()
movement as the scikit-image for animal motion data.

If you prefer the R ecosystem, check out the animovement toolbox by Mikkel Roald-Arbøl.







~90k downloads | 42 code contributors | ~370 merged pull requests