--- id: filterpy version: "1.4.5" license: MIT license_treatment: permissive maintenance: dormant --- # filterpy — Kalman filtering and optimal estimation library License: permissive · Maintenance: dormant · Downloads: 2.1M/mo ## 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 above — 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 pip install filterpy uv add filterpy poetry add filterpy ## Installing 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: unspecified - Install friction: high - Maintenance: dormant - Downloads: 2.1M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags kalman filter python, state estimation filtering, tracking algorithms, extended kalman filter, optimal estimation library, sensor fusion filtering, discrete bayes filter, kalman-filtering, state-estimation, dormant-project [View on SkillFed](https://skillfed.io/packages/filterpy) · [View on PyPI](https://pypi.org/project/filterpy/)