{"id":13730150,"url":"https://github.com/sudara/melatonin_blur","last_synced_at":"2025-04-05T09:05:04.690Z","repository":{"id":206017932,"uuid":"715602497","full_name":"sudara/melatonin_blur","owner":"sudara","description":"Fast cross-platform CPU blurs and shadows for JUCE","archived":false,"fork":false,"pushed_at":"2024-12-13T23:33:33.000Z","size":431,"stargazers_count":114,"open_issues_count":20,"forks_count":17,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-29T08:04:24.923Z","etag":null,"topics":["juce-framework","juce-modules","stack-blur"],"latest_commit_sha":null,"homepage":"https://melatonin.dev/blog/implementing-marios-stack-blur-15-times-in-cpp/","language":"C++","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/sudara.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"sudara"}},"created_at":"2023-11-07T13:28:24.000Z","updated_at":"2025-03-18T00:32:52.000Z","dependencies_parsed_at":"2023-11-07T15:29:04.312Z","dependency_job_id":"3695801f-8be3-4229-a8e0-cb4668d03599","html_url":"https://github.com/sudara/melatonin_blur","commit_stats":null,"previous_names":["sudara/melatonin_blur"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudara%2Fmelatonin_blur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudara%2Fmelatonin_blur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudara%2Fmelatonin_blur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudara%2Fmelatonin_blur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sudara","download_url":"https://codeload.github.com/sudara/melatonin_blur/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312077,"owners_count":20918344,"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","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":["juce-framework","juce-modules","stack-blur"],"created_at":"2024-08-03T02:01:10.567Z","updated_at":"2025-04-05T09:05:04.414Z","avatar_url":"https://github.com/sudara.png","language":"C++","funding_links":["https://github.com/sponsors/sudara"],"categories":["UI"],"sub_categories":[],"readme":"![Figma - 2023-11-09 42@2x](https://github.com/sudara/melatonin_blur/assets/472/0cb16190-bce7-4d9a-8a7c-d15846946354)\n\n![](https://github.com/sudara/melatonin_blur/actions/workflows/tests.yml/badge.svg)\n\nMelatonin Blur is a batteries-included, cross-platform CPU blur and shadow compositing library for\nthe [JUCE C++ framework](https://juce.com/).\n\n*Batteries-included* means it aims to give you everything out of the box:\n\n* 👩‍🎨 Figma/CSS-accurate drop and inner shadows on paths\n* 🔠 Drop and Inner Text shadows\n* 💅🏼 Supports both filled and stroked paths\n* 🌇 ARGB image blurs\n* 🚀 Fast! (see [benchmarks](#more-benchmarks))\n* 🔎 Retina-friendly (context scale-aware)\n* 🍰 Trivial to layer multiple shadows\n* ⚙️ Behind-the-scenes multi-layer caching\n* 😎 Debug optimized for high quality of life\n* 🤖 Over 1000 correctness tests passing on macOS/windows\n* 🚂 Compatible down to macOS 10.13 (progressive speedups on recent versions)\n\nThe goal: modern vector interfaces in JUCE (100s of shadows) without having to resort to deprecated solutions with lower quality of life (looking at you, OpenGL on macOS!).\n\nhttps://github.com/sudara/melatonin_blur/assets/472/3e1d6c9a-aab9-422f-a262-6b63cbca5b71\n\nMelatonin Blur provides a 10-30x speedup over using Stack Blur alone.\n\n\u003cimg src=\"https://github.com/sudara/melatonin_blur/assets/472/598115b8-9c9d-42d8-b868-e921978cda17\" width=\"550\" /\u003e\n\nOn macOS, it depends on the built-in Accelerate framework.\n\nOn Windows, it *optionally* depends on the Intel IPP library. If IPP is not present, it will fall back to a JUCE FloatVectorOperations implementation for single channel (shadows, etc) and Gin's Stack Blur for ARGB.\n\nInterested in how the blurring\nworks? [I wrote an in-depth article about re-implementing Stack Blur 15+ times](https://melatonin.dev/blog/implementing-marios-stack-blur-15-times-in-cpp/).\n\n## Installation\n\nThe docs have outgrown a README file, [visit the new documentation](https://melatonin.dev/manuals/melatonin-blur/installation/cmake/)\n\n[![](https://github.com/user-attachments/assets/8eb5a814-1457-4fd0-a979-e9c1cfd800cb)](https://melatonin.dev/manuals/melatonin-blur/installation/cmake/)\n\n## Usage\n\nThere's all the usage information you could want over at [the official docs](https://melatonin.dev/manuals/melatonin-blur/usage/drop-shadows/)\n\n[![](https://github.com/user-attachments/assets/3abedb03-4c15-4c3e-b04e-f7d36eb144aa)](https://melatonin.dev/manuals/melatonin-blur/usage/drop-shadows/)\n\n\n## Acknowledgements\n\n* Mars, for being my reliable rubber duck! Inner Shadow caching and compositing geometry broke my brain.\n* Roland Rabien for JUCE Stack Blur workhorse via [Gin](https://github.com/figbug/gin).\n* LukeM1 on the forums\n  for [figuring out the `drawImageAt` optimization](https://forum.juce.com/t/faster-blur-glassmorphism-ui/43086/76).\n* Ecstasy on the Discord for the motivation and feedback around stroked paths and default constructors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudara%2Fmelatonin_blur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsudara%2Fmelatonin_blur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudara%2Fmelatonin_blur/lists"}