filterpy
Kalman filtering and optimal estimation library
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- 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).
License · maintenance · safety
MIT (permissive) — FilterPy is licensed under MIT (permissive), which allows commercial and private use with minimal restrictions—only requiring attribution and inclusion of the license notice.
last release 2018-10-10 (2865 days) · last repo commit 2024-02-07 · 3,859 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,123,892 downloads/mo, #3,274 on PyPI
Alternatives
Verify before relying
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)- 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.
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 on it.
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
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.
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.
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)
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 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: UnixProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Topic :: Scientific/EngineeringTopic :: Scientific/Engineering :: MathematicsTopic :: Scientific/Engineering :: PhysicsTopic :: Utilities |
Evidence: filterpy-1.4.5.zip
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “kalman filter python”
- filterpyFilterPy provides Kalman filters, Extended Kalman filters, Unscented…
- simdkalmanImplements vectorized Kalman filters that run many independent…
- pykalmanpykalman provides Kalman filtering, smoothing, and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also simdkalman · pykalman · nfoursid · norfair · control · cvxopt · gtsam · pybloom-live · causallib