simdkalman
Kalman filters vectorized as Single Instruction, Multiple Data
What it is and what it does
simdkalman provides a vectorized implementation of Kalman filtering designed to run many independent filters simultaneously over batches of time series. Instead of looping over individual series, it uses NumPy's array operations to process all series at once, trading a single loop for parallel computation. The package exposes a KalmanFilter class that accepts standard Kalman parameters (state transition, process noise, observation model, observation noise) and provides smooth() and predict() methods to filter and forecast data.
The main use case is when you have many independent time series that need the same Kalman filter applied—for example, smoothing sensor readings from 1000 independent devices, or filtering multiple stock prices with the same model. In such cases, vectorization can yield substantial speedups. The package depends only on NumPy and installs as a pure Python wheel, making it lightweight. Maintenance is dormant (last release 972 days ago), but the code is marked Production/Stable and carries no known vulnerabilities.
Use it for:
- Smooth and denoise batches of independent time series (e.g., sensor data from multiple devices) with a single Kalman filter applied to all.
- Forecast multiple independent sequences forward in time using the same learned or fixed Kalman model.
- Accelerate Kalman filtering workloads where the bottleneck is running the same filter many times over different data.
- Estimate hidden state trajectories for multiple parallel processes (e.g., tracking multiple objects with the same motion model).
- Implement expectation-maximization (EM) for Kalman filter parameter learning when you have many independent observation sequences.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Implements vectorized Kalman filters that run many independent filters in parallel over multiple time series using NumPy's array operations, enabling fast filtering and smoothing of batched observations.
Yes, if you need to apply Kalman filters to many independent time series in parallel. The vectorized design and low install friction make it a good fit for batch filtering tasks. However, maintenance is dormant—no updates in 972 days—so evaluate whether you need ongoing support or can work with a stable but no-longer-maintained codebase. No known vulnerabilities and MIT licensing present no barriers.
Install
simdkalman on PyPI
pip
pip install simdkalmanuv
uv add simdkalmanpoetry
poetry add simdkalmanInstalling simdkalman
Before you install
Low friction: pure Python wheel with only NumPy as a runtime dependency. Maintenance is dormant—last release was 972 days ago—but the repository remains active and the package is marked Production/Stable.
License in practice
MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you include the license notice.
Quickstart
pip install simdkalman
import simdkalman
import numpy as np
kf = simdkalman.KalmanFilter(
state_transition=np.array([[1,1],[0,1]]),
process_noise=np.diag([0.1, 0.01]),
observation_model=np.array([[1,0]]),
observation_noise=1.0)
data = np.random.normal(size=(200, 1000))
smoothed = kf.smooth(data)
pred = kf.predict(data, 15)
Verify before relying
- Whether the package works reliably with modern Python versions (3.9+) despite dormant maintenance status.
- Performance claims of 100x speedup over pykalman and 70x over filterpy are from examples/benchmark.py; real-world gains depend on problem structure.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | dormant — 972 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 89,369/month — #13,664 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: simdkalman-1.0.4-py2.py3-none-any.whl
Keywords: kalman, kalman-filter, smoothing, em, timeseries, ekf
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
filterpyFilterPy provides Kalman filters, Extended…
permissive · top 5,000 on PyPI
nfoursidImplements the N4SID algorithm for subspace…
permissive · top 15,000 on PyPI
pykalmanpykalman provides Kalman filtering, smoothing,…
permissive · top 15,000 on PyPI
numpy-rmsCalculates Root Mean Square (RMS) values over…
permissive · top 15,000 on PyPI
tbatsImplements BATS and TBATS exponential smoothing…
permissive · top 15,000 on PyPI
dtaidistanceComputes distance measures between time series…
permissive · top 15,000 on PyPI
dartsDarts provides forecasting and anomaly…
permissive · top 15,000 on PyPI
gtsamGTSAM is a Python wrapper around a C++ library…
permissive · top 15,000 on PyPI
fastdtwfastdtw computes approximate Dynamic Time…
permissive · top 15,000 on PyPI
numpy-minmaxFinds the minimum and maximum values in a NumPy…
permissive · top 15,000 on PyPI