{"id":17969088,"url":"https://github.com/adryzz/customfilter","last_synced_at":"2026-04-01T20:45:35.619Z","repository":{"id":117714223,"uuid":"455864574","full_name":"adryzz/CustomFilter","owner":"adryzz","description":"Use any expression as a tablet driver filter!","archived":false,"fork":false,"pushed_at":"2023-07-13T14:26:20.000Z","size":37,"stargazers_count":9,"open_issues_count":3,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T16:37:14.562Z","etag":null,"topics":["fast","filter","gaomon","huion","math","opentabletdriver","pog","tablet","veikk","wacom","xp-pen"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adryzz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-02-05T12:32:08.000Z","updated_at":"2025-02-20T04:28:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"c9dd4c2f-82b2-49c3-8f70-9c7ea0a7ad65","html_url":"https://github.com/adryzz/CustomFilter","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/adryzz/CustomFilter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adryzz%2FCustomFilter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adryzz%2FCustomFilter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adryzz%2FCustomFilter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adryzz%2FCustomFilter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adryzz","download_url":"https://codeload.github.com/adryzz/CustomFilter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adryzz%2FCustomFilter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291796,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["fast","filter","gaomon","huion","math","opentabletdriver","pog","tablet","veikk","wacom","xp-pen"],"created_at":"2024-10-29T14:42:19.183Z","updated_at":"2026-04-01T20:45:35.600Z","avatar_url":"https://github.com/adryzz.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CustomFilter\nThe best [OpenTabletDriver](https://github.com/OpentabletDriver/OpenTabletDriver) filter to ever grace this planet!\n\n[![Total Download Count](https://img.shields.io/github/downloads/adryzz/CustomFilter/total.svg)](https://github.com/adryzz/CustomFilter/releases)\n\nAllows you to use any mathematical expression that can be evaluated to a number as a filtering stage!\n\nUses [AngouriMath](https://github.com/asc-community/AngouriMath) to automatically compile your expressions into code at runtime, to achieve the best performance possible.\n\nAll the math is done on [complex numbers](https://en.wikipedia.org/wiki/Complex_number), but the end result is just the [real](https://docs.microsoft.com/en-us/dotnet/api/system.numerics.complex.real?view=net-6.0) part of it\n\n## Simple mode\n\n![image](https://user-images.githubusercontent.com/46694241/169646212-e162bbdf-99c4-428b-97a0-283034d05fed.png)\n\nThe Simple Mode is the fastest but is limited in the number of samples you can use.\nHere's the supported parameters for both expressions:\n\n`x` = The X coordinate\n\n`y` = The Y coordinate\n\n`p` = The pressure\n\n`tx` = The tilt X component\n\n`ty` = The tilt Y component\n\n`d` = The hover distance\n\n`lx` = The last X coordinate\n\n`ly` = The last Y coordinate\n\n`lp` = The last pressure\n\n`ltx` = The last tilt X component\n\n`lty` = The last tilt Y component\n\n`ld` = The last hover distance\n\n`mx` = Max X coordinate\n\n`my` = Max Y coordinate\n\n`mp` = Max pressure\n\n`cx` = Last computed X coordinate\n\n`cy` = Last computed Y coordinate\n\n`cp` = Last computed pressure\n\n#### Example: EMA smoothing\n![image](https://user-images.githubusercontent.com/46694241/152674407-eaccdf71-6fb2-448a-9eb4-6bc1c820bac0.png)\n\n\u003e ## Multi-Sample mode (broken and disabled by default)\n\u003e ![image](https://user-images.githubusercontent.com/46694241/152674423-eaded8d6-6158-4cf9-8e23-ed28ebb846e5.png)\n\n\u003e The Multi-Sample mode is slower than the Simple Mode, but it allows for more complex expressions.\n\n\u003e It will automatically store the last `n` samples from your tablet, so that you can retrieve them with ease.\n\n\u003e (e.g. the last X axis sample will be saved as `x0`, the one before as `x1` and so on, same goes with the Y axis).\n\n\u003e **Remember to tell the filter how many samples you are going to use, as storing more than what's needed will slow down execution.**\n\n\u003e As always, other than the last samples we've just seen, you can always access these values: \n\n\u003e - `x` = The X coordinate.\n\u003e - `y` = The Y coordinate.\n\u003e - `mx` = The max X coordinate.\n\u003e - `my` = The max Y coordinate.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadryzz%2Fcustomfilter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadryzz%2Fcustomfilter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadryzz%2Fcustomfilter/lists"}