Skip to content

kalbee

kalbee logo


kalbee is a clean, modular Python library for Kalman Filters and state estimation algorithms. It provides a unified interface for 10 different filter types, a smoother, diagnostic metrics, and a built-in experiment runner to compare filter performance.

Highlights

Category What you get
10 Filters KF, EKF, UKF, Particle Filter, Ensemble, Information, Alpha-Beta-Gamma, Adaptive KF, Square-Root KF, Vectorized KF
Estimators Interacting Multiple Model (IMM) filter
Motion Models Ready-made constant-velocity, constant-acceleration, and coordinated-turn \((F, Q)\) builders
Tracking SORT-style multi-object tracker with Hungarian association and gating
Learning Offline EM to fit \(Q\)/\(R\) from data by maximum likelihood
Smoother Rauch-Tung-Striebel (RTS) backward smoother
Diagnostics RMSE, NEES, NIS, Log-Likelihood
Experiments One-liner to compare filters on synthetic signals
Stability Joseph form covariance updates, Cholesky factor stabilization, and symmetry checks

Quick Start

pip install kalbee
from kalbee import run_experiment

# Compare filters on a sine wave
report = run_experiment(
    signal="sine",
    filters=["kf", "ekf", "ukf", "pf"],
    noise_std=0.5,
)
print(report.summary())
  • Getting Started — Installation, core concepts, first filter
  • Filters — Deep dive into each filter with theory + code
  • Features — Motion models, multi-object tracking, EM parameter learning, smoother, metrics, experiment runner, maneuvering target, and YOLO object tracking
  • Architecture — Design philosophy and extensibility