filterpy
Kalman filtering and optimal estimation library
What it is and what it does
FilterPy is a pedagogical implementation of Kalman filtering and related estimation algorithms in Python. It provides a range of filter types—Kalman, Extended Kalman, Unscented Kalman, Kalman smoothers, Least Squares filters, fading memory filters, g-h filters, and discrete Bayes filters—designed to match textbook equations closely rather than optimize for speed. The library is intended primarily for learning and research.
The package has been dormant since October 2018, with the last release (1.4.5) targeting Python 2.7, 3.4, 3.5, and 3.6. The author's stated plan to create a Python 3.5+ only version 2.0 was never completed, leaving users of modern Python versions in an uncertain state regarding compatibility and ongoing support.
Use it for:
- Learning Kalman filtering theory and algorithms through code that closely mirrors textbook equations.
- Prototyping state estimation and sensor fusion systems before optimizing for production.
- Building discrete Bayes or g-h filter implementations for estimation problems.
- Experimenting with Extended or Unscented Kalman filters for nonlinear state estimation.
- Implementing tracking algorithms for research or educational projects.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
FilterPy provides Kalman filters, Extended Kalman filters, Unscented Kalman filters, and related optimal and non-optimal estimation filters for tracking and state estimation.
No. While FilterPy is permissively licensed and has no known vulnerabilities, the package is dormant (last release October 2018) and targets obsolete Python versions. The author explicitly planned but never completed a migration to Python 3.5+, leaving the current version in an uncertain state on modern Python. For learning Kalman filtering, the accompanying book is a better resource; for production use, consider actively maintained alternatives.
Install
filterpy on PyPI
pip
pip install filterpyuv
uv add filterpypoetry
poetry add filterpyInstalling filterpy
Before you install
Installation friction is high: the package has no runtime dependencies listed, but the last release was in 2018 and the repository shows dormant maintenance (2865 days since release). The codebase targets Python versions that are now unsupported.
License in practice
FilterPy is licensed under MIT (permissive), which allows commercial and private use with minimal restrictions—only requiring attribution and inclusion of the license notice.
Quickstart
pip install filterpy
from filterpy.kalman import KalmanFilter
from filterpy.common import Q_discrete_white_noise
my_filter = KalmanFilter(dim_x=2, dim_z=1)
my_filter.predict()
my_filter.update(measurement)
The package targets Python 2.7, 3.4, 3.5, and 3.6; compatibility with modern Python versions is uncertain. External numerical libraries are required but not declared as package dependencies.
Verify before relying
- Whether the package works correctly on Python versions released after 3.6, given that the latest release (1.4.5) predates modern Python support.
- Current state of the promised 2.0 branch supporting Python 3.5+ only—whether it was ever released or if 1.4.5 remains the only available version.
- What external libraries are actually required at runtime and whether their absence causes import or runtime failures.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | dormant — 2,865 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,123,892/month — #3,274 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: filterpy-1.4.5.zip
Keywords: Kalman, filters, filtering, optimal, estimation, tracking
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
simdkalmanImplements vectorized Kalman filters that run…
permissive · top 15,000 on PyPI
pykalmanpykalman provides Kalman filtering, smoothing,…
permissive · top 15,000 on PyPI
nfoursidImplements the N4SID algorithm for subspace…
permissive · top 15,000 on PyPI
norfairNorfair adds real-time multi-object tracking to…
permissive · top 15,000 on PyPI
controlImplements core operations for analyzing and…
permissive · top 15,000 on PyPI
cvxoptcvxopt is a Python library for solving convex…
unclear · top 5,000 on PyPI
gtsamGTSAM is a Python wrapper around a C++ library…
permissive · top 15,000 on PyPI
pybloom-liveImplements Bloom filters—space-efficient…
permissive · top 15,000 on PyPI
causallibCausallib estimates causal effects from…
permissive · top 5,000 on PyPI