{"_id":"1eurofilter","_rev":"11-507c5ffa9362f072c3c5e5e121918cfd","name":"1eurofilter","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.2":{"name":"1eurofilter","version":"1.0.2","keywords":["1 euro filter","1€ filter","filtering","noise"],"author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","_id":"1eurofilter@1.0.2","maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"dist":{"shasum":"63a7e275b98da7f344cdc6fbf3f39fecec5e6aba","tarball":"https://registry.npmjs.org/1eurofilter/-/1eurofilter-1.0.2.tgz","fileCount":8,"integrity":"sha512-Tf1ynvI+r1jYNRn9VQEUrj97Oqv8hHKeRLTVfwErWpttFjR9MyxlJnB3zyaPXz/zDesGbZYbGwxIErcdHsTs1A==","signatures":[{"sig":"MEYCIQDP2H7lrVPjxjQDT6YVzoR+TyTzC6VgAGASGgNGtxfIigIhAJKR9TWHv+xiLNSgMpBkYfk5MbMNkWjhAQQtwOvGeDyy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31404},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4ec268fb9860024989e9185faeb0f0c7df392e08","_npmUser":{"name":"casiez","email":"gery.casiez@gmail.com"},"repository":{"url":"https://github.com/casiez/OneEuroFilter/typescript","type":"git"},"_npmVersion":"9.8.0","description":"Algorithm to filter noisy signals for high precision and responsiveness.","directories":{},"_nodeVersion":"20.5.0","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.4.7"},"_npmOperationalInternal":{"tmp":"tmp/1eurofilter_1.0.2_1691263021729_0.8099415174900557","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"1eurofilter","version":"1.0.3","keywords":["1 euro filter","1€ filter","filtering","noise"],"author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","_id":"1eurofilter@1.0.3","maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"homepage":"https://github.com/casiez/OneEuroFilter#readme","bugs":{"url":"https://github.com/casiez/OneEuroFilter/issues"},"dist":{"shasum":"c444ff1081ebc93acccb8a28f51f765fe11a5dce","tarball":"https://registry.npmjs.org/1eurofilter/-/1eurofilter-1.0.3.tgz","fileCount":8,"integrity":"sha512-7yaTzZt9hwEocEIpTaOQdYyws/X0CI0HxpBxuC+W20WpV9f3k8yVfVIoNBrZLvad0rqPFZanYy6fkG8HjcP1aw==","signatures":[{"sig":"MEUCIAosPgppHVX8mOe9hbIUYLBSp6O3tXZYzHdqwaZ70rrTAiEAjJW7q19MoaYEvORlbtKr88ZK9/gUukJcY9+ayi09voA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31394},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4ec268fb9860024989e9185faeb0f0c7df392e08","_npmUser":{"name":"casiez","email":"gery.casiez@gmail.com"},"repository":{"url":"git+https://github.com/casiez/OneEuroFilter.git","type":"git"},"_npmVersion":"9.8.0","description":"Algorithm to filter noisy signals for high precision and responsiveness.","directories":{},"_nodeVersion":"20.5.0","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.4.7"},"_npmOperationalInternal":{"tmp":"tmp/1eurofilter_1.0.3_1691263229243_0.01914361226965977","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"1eurofilter","version":"1.1.0","keywords":["1 euro filter","1€ filter","filtering","noise"],"author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","_id":"1eurofilter@1.1.0","maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"homepage":"https://github.com/casiez/OneEuroFilter#readme","bugs":{"url":"https://github.com/casiez/OneEuroFilter/issues"},"dist":{"shasum":"16acf36469c49a458111fee3e3053fbfcaa9a26c","tarball":"https://registry.npmjs.org/1eurofilter/-/1eurofilter-1.1.0.tgz","fileCount":8,"integrity":"sha512-jMncDaIvqWwao/Dj0vSlgqYlRR7iy+EUY2Y0sSI6DvgaK6qh5WQGT7uAcc8GWm4YPYPVyn/Z8vHtLIUlsrvflw==","signatures":[{"sig":"MEUCIArz56MecUCT0Cwerw9czKoU231paGrj7deI4VwLnJPtAiEAx7fxDjz8XHaTkK8nRIQWDqtnjevNHn0CBdIXdTGwZw4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31758},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"54313e36616c517ca778887ac7851b9605a08887","_npmUser":{"name":"casiez","email":"gery.casiez@gmail.com"},"repository":{"url":"git+https://github.com/casiez/OneEuroFilter.git","type":"git"},"_npmVersion":"9.8.1","description":"Algorithm to filter noisy signals for high precision and responsiveness.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.7.0"},"_npmOperationalInternal":{"tmp":"tmp/1eurofilter_1.1.0_1695843247717_0.21110393699147578","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"1eurofilter","version":"1.1.1","keywords":["1 euro filter","1€ filter","filtering","noise"],"author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","_id":"1eurofilter@1.1.1","maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"homepage":"https://github.com/casiez/OneEuroFilter#readme","bugs":{"url":"https://github.com/casiez/OneEuroFilter/issues"},"dist":{"shasum":"40f1dbd1f4c047f844e24775876801e8f5dd9d63","tarball":"https://registry.npmjs.org/1eurofilter/-/1eurofilter-1.1.1.tgz","fileCount":8,"integrity":"sha512-byHRpc3pGEjUNRhxtk8gRhRovyOwYcUt5WO+7Jwpfc++boSDT+rLJhw3Y/ZOK6jhsFCoOpKqJZ3SJkSI0FshlQ==","signatures":[{"sig":"MEUCIQCKcYyZUaT/RgKIWRM5ggtRv3DalUrv53BbJy4gM+bR1QIgU19lfHDmVKQk4QfdllElPDiZw9/QN4V5loiy7m1Ffh8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31600},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"264291f92e54fca15bb7c63ec8030e209b077a79","_npmUser":{"name":"casiez","email":"gery.casiez@gmail.com"},"repository":{"url":"git+https://github.com/casiez/OneEuroFilter.git","type":"git"},"_npmVersion":"9.8.1","description":"Algorithm to filter noisy signals for high precision and responsiveness.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.7.0"},"_npmOperationalInternal":{"tmp":"tmp/1eurofilter_1.1.1_1695888366211_0.09564545785637968","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"1eurofilter","version":"1.2.0","keywords":["1 euro filter","1€ filter","filtering","noise"],"author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","_id":"1eurofilter@1.2.0","maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"homepage":"https://github.com/casiez/OneEuroFilter#readme","bugs":{"url":"https://github.com/casiez/OneEuroFilter/issues"},"dist":{"shasum":"f8cd8e92478f0f0e25d990b6c5a2c0f43ac618eb","tarball":"https://registry.npmjs.org/1eurofilter/-/1eurofilter-1.2.0.tgz","fileCount":8,"integrity":"sha512-DGOPfEaG+XyzSMuasvTyi4aOSPovI8bhTfCC4lav9kxTN16K5joSjlYO5QUYWwdWiPT9wk5LEbAtjO6MagDOkA==","signatures":[{"sig":"MEUCIQC/wBO6zC567+ymvT5dnfY77PPvK7tvwn1BXuvDM7MPRQIgDq4xTB4hK2l/r1gUYO/jXlXsdQUGZScO32TOQzrohZ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34437},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"465596204c4957e688e2ca130eeaa346b479bbb8","_npmUser":{"name":"casiez","email":"gery.casiez@gmail.com"},"repository":{"url":"git+https://github.com/casiez/OneEuroFilter.git","type":"git"},"_npmVersion":"9.8.1","description":"Algorithm to filter noisy signals for high precision and responsiveness.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.7.0"},"_npmOperationalInternal":{"tmp":"tmp/1eurofilter_1.2.0_1696755288894_0.6627840260285425","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"1eurofilter","version":"1.2.1","keywords":["1 euro filter","1€ filter","filtering","noise"],"author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","_id":"1eurofilter@1.2.1","maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"homepage":"https://github.com/casiez/OneEuroFilter#readme","bugs":{"url":"https://github.com/casiez/OneEuroFilter/issues"},"dist":{"shasum":"c5b3e95b765931b7b15035e89b208f6e915d62d4","tarball":"https://registry.npmjs.org/1eurofilter/-/1eurofilter-1.2.1.tgz","fileCount":8,"integrity":"sha512-9+gIcAiSf47F1Lbp+kY6qrVG0U0JFK8FjlGsclcqX3Q/dm0wrdDcDAEI8x7SI0+QU8GIKs8MVll953HhmXgwig==","signatures":[{"sig":"MEYCIQDM2AhI01mh3Mtcsk7YVqBHyM3U13WX+jpO9YZlorQX3wIhAI/oEsyE3+MmC2OkWRR0UkiVubs4yHSj5m7YUMQY0v5p","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38180},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"465596204c4957e688e2ca130eeaa346b479bbb8","_npmUser":{"name":"casiez","email":"gery.casiez@gmail.com"},"repository":{"url":"git+https://github.com/casiez/OneEuroFilter.git","type":"git"},"_npmVersion":"9.8.1","description":"Algorithm to filter noisy signals for high precision and responsiveness.","directories":{},"_nodeVersion":"20.6.0","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^20.7.0"},"_npmOperationalInternal":{"tmp":"tmp/1eurofilter_1.2.1_1696755985510_0.06987264951166372","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"1eurofilter","version":"1.2.2","keywords":["1 euro filter","1€ filter","filtering","noise"],"author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","_id":"1eurofilter@1.2.2","maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"homepage":"https://github.com/casiez/OneEuroFilter#readme","bugs":{"url":"https://github.com/casiez/OneEuroFilter/issues"},"dist":{"shasum":"e7f41aa5730277841da065070ff03bc5c7d33c8a","tarball":"https://registry.npmjs.org/1eurofilter/-/1eurofilter-1.2.2.tgz","fileCount":8,"integrity":"sha512-Yr9Zr1xpGs75a3grHjmGytXmq96uMa0GTx9bU6T0d3ZSkpt5eDJozTBt+ep0YI725+eWkNhHtvvUUUS3F2879A==","signatures":[{"sig":"MEYCIQDiOKb2fbGFB364NPFshGi5FYXQmDX+8DWc2VO46KMVkQIhAJCxFiNMKOr023wnZYjOqfvKDi9BTu3PgUYMyPFqR5pl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38180},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fc82397dacf283831fcee5b43fc5b18fd5544980","_npmUser":{"name":"casiez","email":"gery.casiez@gmail.com"},"repository":{"url":"git+https://github.com/casiez/OneEuroFilter.git","type":"git"},"_npmVersion":"10.8.2","description":"Algorithm to filter noisy signals for high precision and responsiveness.","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.2.0"},"_npmOperationalInternal":{"tmp":"tmp/1eurofilter_1.2.2_1723566394490_0.40607502458778644","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"1eurofilter","version":"1.3.0","description":"Algorithm to filter noisy signals for high precision and responsiveness.","main":"dist/index.js","types":"dist/index.d.ts","author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","repository":{"type":"git","url":"git+https://github.com/casiez/OneEuroFilter.git"},"keywords":["1 euro filter","1€ filter","filtering","noise"],"devDependencies":{"@types/node":"^25.2.3"},"_id":"1eurofilter@1.3.0","gitHead":"ab97d036d0bf0a608db9a73a449642abd78651d6","bugs":{"url":"https://github.com/casiez/OneEuroFilter/issues"},"homepage":"https://github.com/casiez/OneEuroFilter#readme","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-3t57UlTR7J2Uyq7kwfzgQg+auO6Yb3G09GKFeBVJQvaK/Otn0dcW20RNMt4d05G0/XcEQoORW87rGo3RFiyHYg==","shasum":"c8a47d42287207fd2a3d7f613a785897dc357ec8","tarball":"https://registry.npmjs.org/1eurofilter/-/1eurofilter-1.3.0.tgz","fileCount":8,"unpackedSize":38347,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHzdFcLdPamhs1Qif3qXAtBNlqa08IfFSiYxyBpM1eCmAiEA4kfOM9XNbzmd7+pgOFQIK/fYPtEeIQCdUn9FtqQeMFY="}]},"_npmUser":{"name":"casiez","email":"gery.casiez@gmail.com"},"directories":{},"maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/1eurofilter_1.3.0_1771151260267_0.08583974233422698"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-05T19:17:01.725Z","modified":"2026-02-15T10:27:40.558Z","1.0.0":"2023-08-04T10:26:05.085Z","1.0.1":"2023-08-04T11:51:35.727Z","1.0.2":"2023-08-05T19:17:01.925Z","1.0.3":"2023-08-05T19:20:29.414Z","1.1.0":"2023-09-27T19:34:07.950Z","1.1.1":"2023-09-28T08:06:06.487Z","1.2.0":"2023-10-08T08:54:49.043Z","1.2.1":"2023-10-08T09:06:25.663Z","1.2.2":"2024-08-13T16:26:34.641Z","1.3.0":"2026-02-15T10:27:40.465Z"},"bugs":{"url":"https://github.com/casiez/OneEuroFilter/issues"},"author":{"name":"Géry Casiez and Alix Goguey"},"license":"BSD-3-Clause","homepage":"https://github.com/casiez/OneEuroFilter#readme","keywords":["1 euro filter","1€ filter","filtering","noise"],"repository":{"type":"git","url":"git+https://github.com/casiez/OneEuroFilter.git"},"description":"Algorithm to filter noisy signals for high precision and responsiveness.","maintainers":[{"name":"casiez","email":"gery.casiez@gmail.com"}],"readme":"[![NPM Version](https://badge.fury.io/js/1eurofilter.svg?style=flat)](https://npmjs.org/package/1eurofilter)\n[![npm downloads](https://img.shields.io/npm/dm/1eurofilter.svg?style=flat-square)](https://npm-stat.com/charts.html?package=1eurofilter)\n\n# 1€ filter typescript version\n\nProvides a typescript implementation for the [1€ filter](https://gery.casiez.net/1euro/).\n\n## Install\n\n```npm install 1eurofilter```\n\n## Minimal example\n\n```\nimport {OneEuroFilter} from '1eurofilter'\n\nlet frequency = 120; // Hz\nlet mincutoff = 1.0; // Hz\nlet beta = 0.1;      \nlet dcutoff = 1.0; \n\nlet f = new OneEuroFilter(frequency, mincutoff, beta, dcutoff);\n\nlet noisyvalue = 2.1;\nlet timestamp = 0.0; // in seconds\n\nlet filtered = f.filter(noisyvalue, timestamp);\n\n```\n\n\n## Doc\n\n### constructor\n\n• **new OneEuroFilter**(`freq`, `mincutoff`, `beta`, `dcutoff`)\n\nConstructs a 1 euro filter.\n\n#### Parameters\n\n| Name | Type | Default value | Description |\n| :------ | :------ | :------ | :------ |\n| `freq` | `number` | `undefined` | An estimate of the frequency in Hz of the signal (> 0), if timestamps are not available. |\n| `mincutoff` | `number` | `1.0` | Min cutoff frequency in Hz (> 0). Lower values allow to remove more jitter. |\n| `beta` | `number` | `0.0` | Parameter to reduce latency (> 0). |\n| `dcutoff` | `number` | `1.0` | Used to filter the derivates. 1 Hz by default. Change this parameter if you know what you are doing. |\n\n\n### filter\n\n▸ **filter**(`value`, `timestamp`): `number`\n\nReturns the filtered value.\n\n#### Parameters\n\n| Name | Type | Description |\n| :------ | :------ | :------ |\n| `value` | `number` | Noisy value to filter |\n| `timestamp` | `number` | (optional) timestamp in seconds |\n\n### reset\n\n▸ **reset**(): `void`\n\nResets the internal state of the filter.\n\n### setBeta\n\n▸ **setBeta**(`beta`): `void`\n\nSets the Beta parameter\n\n#### Parameters\n\n| Name | Type | Description |\n| :------ | :------ | :------ |\n| `beta` | `number` | Parameter to reduce latency (> 0). |\n\n### setDerivateCutoff\n\n▸ **setDerivateCutoff**(`dcutoff`): `void`\n\nSets the dcutoff parameter\n\n#### Parameters\n\n| Name | Type | Description |\n| :------ | :------ | :------ |\n| `dcutoff` | `number` | Used to filter the derivates. 1 Hz by default. Change this parameter if you know what you are doing. |\n\n### setFrequency\n\n▸ **setFrequency**(`freq`): `void`\n\nSets the frequency of the signal\n\n#### Parameters\n\n| Name | Type | Description |\n| :------ | :------ | :------ |\n| `freq` | `number` | An estimate of the frequency in Hz of the signal (> 0), if timestamps are not available. |\n\n### setMinCutoff\n\n▸ **setMinCutoff**(`mincutoff`): `void`\n\nSets the filter min cutoff frequency\n\n#### Parameters\n\n| Name | Type | Description |\n| :------ | :------ | :------ |\n| `mincutoff` | `number` | Min cutoff frequency in Hz (> 0). Lower values allow to remove more jitter. |\n\n### setParameters\n\n▸ **setParameters**(`freq`, `mincutoff`, `beta`): `void`\n\nSets the parameters of the 1 euro filter.\n\n#### Parameters\n\n| Name | Type | Description |\n| :------ | :------ | :------ |\n| `freq` | `number` | An estimate of the frequency in Hz of the signal (> 0), if timestamps are not available. |\n| `mincutoff` | `number` | Min cutoff frequency in Hz (> 0). Lower values allow to remove more jitter. |\n| `beta` | `number` | Parameter to reduce latency (> 0). |\n\n\n## Related publication\n\n[![DOI](https://img.shields.io/badge/doi-10.1145%2F2207676.2208639-blue)](https://doi.org/10.1145/2207676.2208639)\n\n```\n@inproceedings{10.1145/2207676.2208639,\n    author = {Casiez, G\\'{e}ry and Roussel, Nicolas and Vogel, Daniel},\n    title = {1 € Filter: A Simple Speed-Based Low-Pass Filter for Noisy Input in Interactive Systems},\n    year = {2012},\n    isbn = {9781450310154},\n    publisher = {Association for Computing Machinery},\n    address = {New York, NY, USA},\n    url = {https://doi.org/10.1145/2207676.2208639},\n    doi = {10.1145/2207676.2208639},\n    pages = {2527–2530},\n    numpages = {4},\n    keywords = {noise, jitter, lag, precision, filtering, responsiveness, signal},\n    location = {Austin, Texas, USA},\n    series = {CHI '12}\n}\n```\n\n","readmeFilename":"Readme.md"}