{"id":20828941,"url":"https://github.com/darvid/wraeblast","last_synced_at":"2025-10-15T19:47:59.502Z","repository":{"id":47146366,"uuid":"403802663","full_name":"darvid/wraeblast","owner":"darvid","description":"A library for interacting with Path of Exile game and economy data, and a unique loot filter generation framework.","archived":false,"fork":false,"pushed_at":"2022-03-24T01:51:13.000Z","size":860,"stargazers_count":30,"open_issues_count":2,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T21:39:57.952Z","etag":null,"topics":["pathofexile"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darvid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-07T01:25:07.000Z","updated_at":"2024-12-05T17:19:29.000Z","dependencies_parsed_at":"2022-09-12T09:51:10.115Z","dependency_job_id":null,"html_url":"https://github.com/darvid/wraeblast","commit_stats":null,"previous_names":[],"tags_count":100,"template":false,"template_full_name":null,"purl":"pkg:github/darvid/wraeblast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Fwraeblast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Fwraeblast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Fwraeblast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Fwraeblast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darvid","download_url":"https://codeload.github.com/darvid/wraeblast/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Fwraeblast/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279109662,"owners_count":26105831,"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-15T02:00:07.814Z","response_time":56,"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":["pathofexile"],"created_at":"2024-11-17T23:18:55.415Z","updated_at":"2025-10-15T19:47:59.469Z","avatar_url":"https://github.com/darvid.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  wraeblast\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/darvid/wraeblast/actions/workflows/library.yml\"\u003e\n    \u003cimg title=\"Library workflow status\" src=\"https://github.com/darvid/wraeblast/actions/workflows/library.yml/badge.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/darvid/wraeblast/actions/workflows/filters.yml\"\u003e\n    \u003cimg title=\"Filters workflow status\" src=\"https://github.com/darvid/wraeblast/actions/workflows/filters.yml/badge.svg?event=workflow_dispatch\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://wraeblast.readthedocs.io\"\u003e\n    \u003cimg title=\"Library Documentation\" src=\"https://readthedocs.org/projects/wraeblast/badge/?version=latest\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/gRtHu7USBw\"\u003e\n    \u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/886072454349467651\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  A library for interfacing with\n  \u003ca href=\"https://pathofexile.com\"\u003ePath of Exile\u003c/a\u003e game and\n  \u003ca href=\"https://poe.ninja\"\u003eeconomy data\u003c/a\u003e, and a\n  \u003ca href=\"https://github.com/darvid/wraeblast/releases\"\u003eset of item\n  filters\u003c/a\u003e geared towards trade league players.\n\u003c/p\u003e\n\n**3.16 Scourge League Update:** The trade filter is expected to be\nupdated within the first few days of the upcoming league. **Wraeblast**\nrelies heavily on economy data, and some of the cluster jewel filtering\nhas to map passive descriptions to seemingly GGG internal, undocumented\ncluster jewel passive names. This work can only be done once the data is\navailable either through data-mining or post-launch. Do note, however,\nthat a **league start filter** is in the works with limited TTS, and\nobviously sans economy data. See the [3.16 Scourge League project board][18]\nto track progress.\n\n\u003c!--ts--\u003e\n   * [Filter Generation](#filter-generation)\n      * [Framework Features](#framework-features)\n      * [Filter Features](#filter-features)\n         * [Demos](#demos)\n         * [Installation](#installation)\n      * [\u003cdel\u003eRationale\u003c/del\u003e Development Manifesto](#rationale-development-manifesto)\n      * [Architecture](#architecture)\n      * [Usage](#usage)\n      * [Roadmap](#roadmap)\n   * [[REDACTED]](#redacted)\n\n\u003c!-- Added by: david, at: Wed 08 Sep 2021 11:38:07 PM EDT --\u003e\n\n\u003c!--te--\u003e\n\n## Filter Generation\n\n**Wraeblast** provides an **experimental**, feature-rich\n[item filter][1] development framework and toolkit, as well as a\ndogfooded [trade league filter][12].\n\n⚠️ **DISCLAIMER**: ⚠️ This is an experimental, proof-of-concept project,\nand the author is not responsible for any loss of currency or efficiency\nas a result of using this project's filters. Please use [FilterBlade][7]\nfor regular gameplay unless you're brave enough to deal with a pre-alpha\nfilter.\n\n### Framework Features\n\n* Economy insights API powered by [poe.ninja][2]\n  * Integration with [pandas][3] for data normalization and analysis\n  * Local caching and rate limiting\n* Powerful extended item filter framework\n  * Internally uses single API to express both standard and extended\n    filter rules\n  * [Jinja2][4]-templated YAML filter format\n  * Some extended filter features include:\n    * Rule tagging\n    * Presets (i.e. feature flags)\n    * Styles\n    * Template environment helpers for 🌈 color manipulation, 📈 economy\n      data quantization and grouping, 🔊 filter alert sound generation\n      (TTS), and more\n* [Matplotlib][5] [colormap][6] integration, enabling procedural\n  generation of *item*-based (not just tier-based like many popular\n  community filters) filter colors.\n* ...and many other technical features under the hood.\n\n### Filter Features\n\n* 📊 **Quantile based variants** for efficient farming.[†](#f1)\n\n  Currently provides two variants: **D2** (2nd decile) and **QU4** (4th\n  quintile). Additional quantiles will probably be included in nightly\n  releases, depending on feedback and experimentation.\n* 🌌 **54 colormaps** (108 if you include reversed colormaps, indicated\n  by an `_r` prefix) included *per quantile variant*.\n\n  There are even more colormap palettes available, it would just be too\n  cost prohibitive to include them all at present. See the\n  [Palettable][13] documentation for colormap previews (only sequential\n  colormaps are used).\n\n  Some form of item filter preview may be added as a feature in the\n  future, but for now either refer to the documentation or just try them\n  out in game.\n* 🔊 **[AWS Polly][14] Neural Text-To-Speech ([NTTS][15])** powered\n  synthesized alert sounds for ✨all✨ valuable filter rules (quantile\n  dependent).\n\n  Get instant, **aural** feedback for currency, fragments, skill gems,\n  cluster jewels, and more. Anything tracked by [poe.ninja][2] can be\n  supported by TTS.\n\n  Filter sounds for relevant items are also generated for varying stack\n  sizes, for more accurate chaos value approximations.\n\n  The `Aria` (New Zealand English, appropriately) voice is currently the\n  default for the trade league filters included with this project, but\n  any voice supported by AWS Polly can be used when developing new\n  filters.\n\n\n\u003ca name=\"f1\"\u003e†\u003c/a\u003e *TLDR:* think of quantiles like strictness, with an\narguably better ranking of item and currency value in a trade league\nthan hard-coded tiers.\n\n#### Demos\n\n* [20% deli, beyond+nemesis map](https://streamable.com/ppi4sd) with `D3` quantile,\n  `TealGrn_r` colormap filter.\n* [Expedition artifacts](https://streamable.com/8ng40x), also using\n  `TealGrn_r` colormap filter.\n* [Various drops](https://streamable.com/kqv021) with `QU4` quantile,\n  `SunsetDark_r` colormap filter.\n* *More coming soon*\n\n#### Installation\n\nDownload the filter variant(s) of your choice from the [releases][16],\nas well as the latest, compressed TTS filter sounds. Extract both\nthe `.filter` and the `FilterSounds` directory to your `Path of Exile`\ndirectory.\n\nFilter syncing is currently not supported, and would be largely useless\nregardless without a way to sync filter sound files.\n\nNote that **updating the filter also requires updating the TTS files**,\nand you can simply choose to overwrite existing files every time, or\ndelete the entire TTS folder before installing the latest version.\n\n### ~~Rationale~~ Development Manifesto\n\n* Path of Exile's current loot system *requires* complex filters for\n  efficient gameplay 🤦\n* Complex filters *require* a 🔨 filter generation/templating layer 🔨\n  (this is exactly what [NeverSink][8] has done)\n* Many community maintained filters (including [NeverSink's][8]) are\n  ✨ awesome ✨ and work well for the majority of the playerbase,\n  but have some shortcomings:\n  * 🚀 Über strict isn't always über enough for softcore juiced map\n    blasters (filter *\"strictness\"* in general is a trap)\n  * 🌈 Filter customization is somewhat limiting and tedious to do\n    through a web interface (*loot filters are code*)\n  * 📈 Economy-based presets and filters leverage a small subset of the\n    available data from [poe.ninja][2]\n  * 🛁 Filter rules take the kitchen sink approach and include a large\n    amount of rules for low-value recipes and items\n  * 🔊 Default alert sounds and sound rules are usually sparse, and\n    adding custom sounds is a time-consuming process\n\n### Architecture\n\n```text\n  ┌────────────────────────┐\n  │                        │\n  │ .yaml.j2 filter source ├────┐\n  │                        │    │  ┌─────────────────────┐  ┌──────────┐\n  └────────────────────────┘    │  │                     │  │          │\n                                ├──┤    rendered .yaml   ├──┤  final   │\n┌─────────────────────────────┐ │  │ intermediate filter │  │ .filter  │\n│                             │ │  │                     │  │          │\n│ .config.json filter options ├─┘  └─────────────────────┘  └──────────┘\n│                             │\n└─────────────────────────────┘\n```\n\n1. Economy insights data (currently just poe.ninja) is fetched and cached\n2. The ``.yaml.j2`` is rendered with the economy data, colormaps, and filter\n   option overrides from the ``.config.json`` file as context, if provided.\n3. The resulting intermediate ``.yaml``  is then parsed by the extended\n   filter parser, and outputs a final ``.filter`` file, and any associated\n   sounds.\n\n### Usage\n\nSee ``wraeblast --help`` and ``wraeblast render_filter --help`` for detailed\ncommand line usage.\n\n```shell\n❯ wraeblast render_filter \\\n    -l Scourge \\\n    -d output \\\n    -O filters/softcore.config.json \\\n    -o softcore.filter -i -vvv filters/softcore.yaml.j2\n```\n\nFor detailed library installation instructions and usage, see the\n[technical documentation][17].\n\n### Roadmap\n\n* [X] Base filter generation functionality that nobody cares about\n* [ ] Basic filters for different play styles: HC SSF, SC SSF, casual,\n  deli farming, harby farming, legion farming, and all-around blasting 🚀\n* [ ] Features for league launches: shimming new item classes without\n      relying on poe.ninja data, early league specific colormaps,\n      thresholds, etc.\n* [ ] Performance improvements\n* [ ] Unit tests and documentation\n* [ ] Filter preview image generation\n* [ ] Filter compression/deduping of rules\n* [ ] Investigate auto-updating, but yet another downloadable tool to\n      do it is out of the question (probably)\n* [ ] Integration with [poeprofit][11] (i.e. dedicated styles and sounds\n  for profitable strategies)\n* [ ] Web frontend for downloading up-to-date filters (sans\n  the complex configuration menus full of knobs and sliders and color\n  pickers)\n* [ ] Become obsolete when PoE 2 comes out 👻\n\n## [REDACTED]\n\nAdditional features and tools are planned and will be incorporated into\nthis project in the near future.\n\n[1]: https://pathofexile.fandom.com/wiki/Guide:Item_filter\n[2]: https://poe.ninja/\n[3]: https://pandas.pydata.org/\n[4]: https://jinja.palletsprojects.com/en/3.0.x/\n[5]: https://matplotlib.org/\n[6]: https://matplotlib.org/stable/tutorials/colors/colormaps.html\n[7]: https://www.filterblade.xyz/\n[8]: https://github.com/NeverSinkDev\n[9]: https://streamable.com/dt2j1b\n[10]: https://streamable.com/lxee3z\n[11]: https://poeprofit.com/\n[12]: https://github.com/darvid/wraeblast/tree/main/filters/trade\n[13]: https://jiffyclub.github.io/palettable/#finding-palettes\n[14]: https://aws.amazon.com/polly/\n[15]: https://docs.aws.amazon.com/polly/latest/dg/NTTS-main.html\n[16]: https://github.com/darvid/wraeblast/releases\n[17]: https://wraeblast.readthedocs.io/en/latest/\n[18]: https://github.com/darvid/wraeblast/projects/7\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarvid%2Fwraeblast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarvid%2Fwraeblast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarvid%2Fwraeblast/lists"}