Add an animated gradient or noise background to an Android app screen with one composable.
Apply an image filter like a water ripple or halftone effect to an existing image in the UI.
Build a visually distinctive app background without embedding a WebGL web view.
Fine-tune a shader's animation speed, scale, rotation, and position through shared controls.
| androidpoet/mirage | arsenoal/syncforge | azxcvn/mpvrx-cn | |
|---|---|---|---|
| Stars | 37 | 37 | 36 |
| Language | Kotlin | Kotlin | Kotlin |
| Setup difficulty | easy | moderate | easy |
| Complexity | 2/5 | 4/5 | 1/5 |
| Audience | developer | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Shader rendering requires a device on Android 13 or newer, older devices need a manual fallback in the calling code.
Mirage is a library for Android developers who build user interfaces with Jetpack Compose, Google's modern toolkit for writing Android screens in Kotlin code instead of separate layout files. It bundles 29 visual effects, such as animated gradients, noise textures, and image filters, that run entirely on the phone's graphics processor using a technology called AGSL, which is Android's own shader language built into recent versions of the operating system. Before Mirage, getting shader style effects like this on Android usually meant embedding a WebGL powered web view, which is heavier and less native feeling. Mirage instead uses Android's built in RuntimeShader feature directly, so there is no web view, no separate graphics surface to manage, and no extra dependencies beyond Compose itself. The library offers two kinds of building blocks. Procedural effects are regular Compose components, like a mesh gradient or a Voronoi pattern, that fill whatever space they are given. Image filters are Compose modifiers that can be attached to any existing piece of content, such as adding a water ripple or a halftone print style effect on top of an image. Every effect exposes its own settings, along with shared controls for animation speed, a starting animation offset, and how the graphic is scaled, rotated, and positioned within its bounds. Static, non-animated shaders cost nothing extra per frame, and animated ones only need to update a single time value each frame. Using the library requires a device running Android 13 or newer to actually render the shaders, though the library itself can be included starting from Android 5 (API 21) as long as the calling code checks the device's version first and falls back to something simpler on older phones. The library is distributed through Maven Central and is released under the Apache 2.0 license.
A Jetpack Compose library offering 29 ready-made GPU shader effects like animated gradients and image filters for Android apps.
Mainly Kotlin. The stack also includes Kotlin, Jetpack Compose, AGSL.
Apache 2.0 license: free to use, modify, and distribute, including commercially, as long as you keep license and attribution notices.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.