{"id":22737106,"url":"https://github.com/kibotu/kalmanrx","last_synced_at":"2025-10-16T11:38:17.157Z","repository":{"id":152024092,"uuid":"70574621","full_name":"kibotu/KalmanRx","owner":"kibotu","description":"Smoothen rx value streams for e.g. sensor data using kalman filter.","archived":false,"fork":false,"pushed_at":"2023-03-16T09:00:53.000Z","size":476,"stargazers_count":103,"open_issues_count":1,"forks_count":20,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-14T04:37:23.610Z","etag":null,"topics":["android-library","hacktoberfest","hacktoberfest2023","kalman-filter","rx","rxjava-android"],"latest_commit_sha":null,"homepage":"https://android-arsenal.com/details/1/4539","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kibotu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":"https://paypal.me/janrabe/5"}},"created_at":"2016-10-11T08:52:45.000Z","updated_at":"2025-02-04T06:03:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"5a388ec2-dd57-49fa-b87a-aa2e724e6383","html_url":"https://github.com/kibotu/KalmanRx","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/kibotu/KalmanRx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FKalmanRx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FKalmanRx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FKalmanRx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FKalmanRx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kibotu","download_url":"https://codeload.github.com/kibotu/KalmanRx/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibotu%2FKalmanRx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279184354,"owners_count":26121597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-16T02:00:06.019Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-library","hacktoberfest","hacktoberfest2023","kalman-filter","rx","rxjava-android"],"created_at":"2024-12-10T22:09:43.843Z","updated_at":"2025-10-16T11:38:17.151Z","avatar_url":"https://github.com/kibotu.png","language":"Java","funding_links":["https://paypal.me/janrabe/5","https://www.paypal.me/janrabe/5"],"categories":[],"sub_categories":[],"readme":"[![Donation](https://img.shields.io/badge/buy%20me%20a%20coffee-brightgreen.svg)](https://www.paypal.me/janrabe/5) [![About Jan Rabe](https://img.shields.io/badge/about-me-green.svg)](https://about.me/janrabe) \n# KalmanRx [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-KalmanRx-brightgreen.svg?style=flat)](http://android-arsenal.com/details/1/4539) [![](https://jitpack.io/v/kibotu/KalmanRx.svg)](https://jitpack.io/#kibotu/KalmanRx) [![](https://jitpack.io/v/kibotu/KalmanRx/month.svg)](https://jitpack.io/#kibotu/KalmanRx) [![Javadoc](https://img.shields.io/badge/javadoc-SNAPSHOT-green.svg)](https://jitpack.io/com/github/kibotu/KalmanRx/master-SNAPSHOT/javadoc/index.html) [![Build Status](https://travis-ci.org/kibotu/KalmanRx.svg?branch=master)](https://travis-ci.org/kibotu/KalmanRx) [![API](https://img.shields.io/badge/API-15%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=15)  [![Gradle Version](https://img.shields.io/badge/gradle-5.4.0-green.svg)](https://docs.gradle.org/current/release-notes) [![Kotlin](https://img.shields.io/badge/kotlin-1.3.30-green.svg)](https://kotlinlang.org/) [![Licence](https://img.shields.io/badge/licence-Apache%202-blue.svg)](https://raw.githubusercontent.com/kibotu/KalmanRx/master/LICENSE) [![androidx](https://img.shields.io/badge/androidx-brightgreen.svg)](https://developer.android.com/topic/libraries/support-library/refactor)\n\n## Introduction\n\nRemoves the noise from float streams using [Kalman Filter](https://en.wikipedia.org/wiki/Kalman_filter). Useful to smoothen sensory data e.g.: [gps location](https://github.com/villoren/KalmanLocationManager), or [Accelerometer](https://developer.android.com/guide/topics/sensors/sensors_motion.html#sensors-motion-accel). \n\nis an open-source library for Android that provides a set of classes and utilities for implementing Kalman filtering in reactive programming applications using the RxJava library.\n\nKalman filtering is a mathematical technique that is used to estimate the state of a dynamic system based on a series of noisy measurements. It is commonly used in signal processing, control systems, and navigation applications.\n\nThe KalmanRx library provides a set of reactive operators that can be used to implement Kalman filtering in RxJava applications. These operators allow you to easily filter noisy data streams, estimate the state of dynamic systems, and make predictions about future states.\n\nSome of the key features of the KalmanRx library are:\n\nIntegration with RxJava: The library is designed to work seamlessly with the RxJava library, which allows you to easily combine Kalman filtering with other reactive programming techniques.\nSupport for multiple Kalman filter models: The library provides a set of pre-defined Kalman filter models that can be used to filter different types of data streams, including scalar, vector, and matrix data.\nConfigurable filter parameters: The library allows you to configure the filter parameters, such as the process noise, measurement noise, and initial state, to optimize the filter performance for your specific application.\nReal-time filtering: The library is optimized for real-time applications, and provides a set of utilities to measure the filter performance, detect anomalies, and adjust the filter parameters in real-time.\nOverall, the KalmanRx library can be a useful tool for implementing Kalman filtering in reactive programming applications on the Android platform, especially for developers who are working with dynamic systems and noisy data streams.\n\n![Screenshot](https://raw.githubusercontent.com/kibotu/KalmanRx/master/screenshot.png) ![Screenshot](https://raw.githubusercontent.com/kibotu/KalmanRx/master/screenshot2.png)\n\n## [How to use](https://github.com/kibotu/KalmanRx/blob/master/app/src/main/java/net/kibotu/kalmanrx/app/ui/AccelerationSensorKalmanFragment.java#L16-L19)\n\nLibrary is supporting up to 3 values smoothened from a stream.\n\n(float) stream\n\n```java\nKalmanRx.createFrom1D(floatObservable.map(e -\u003e e.value))\n    .subscribe(value-\u003e{}, Throwable::printStackTrace);\n```\n\n(float, float) stream\n\n```java\nKalmanRx.createFrom2D(floatObservable.map(e -\u003e e.values))\n    .subscribe(values-\u003e{}, Throwable::printStackTrace);\n```\n\n(float, float, float) stream\n\n```java\nKalmanRx.createFrom3D(floatObservable.map(e -\u003e e.values))\n    .subscribe(value-\u003e{}, Throwable::printStackTrace);\n```\n\n## How to install\n\n```groovy\nimplementation 'com.github.kibotu:KalmanRx:-SNAPSHOT'\n```\n\n## How to build\n\n```bash    \ngraldew clean build\n```\n\n### CI \n\n```bash    \ngradlew clean assembleRelease test javadoc\n```\n\n#### Build Requirements\n\n- JDK8\n- Android Build Tools 27.0.3\n- Android SDK 27\n\n### Notes\n\nFollow me on Twitter: [@wolkenschauer](https://twitter.com/wolkenschauer)\n\nLet me know what you think: [jan.rabe@kibotu.net](mailto:jan.rabe@kibotu.net)\n\nContributions welcome!\n\n### License\n\u003cpre\u003e\nCopyright 2016 Jan Rabe\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\u003c/pre\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibotu%2Fkalmanrx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkibotu%2Fkalmanrx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibotu%2Fkalmanrx/lists"}