gitwtfhub

wtf is mirage?

androidpoet/mirage — explained in plain English

Analysis updated 2026-05-18

37KotlinAudience · developerComplexity · 2/5LicenseSetup · easy

TL;DR

A Jetpack Compose library offering 29 ready-made GPU shader effects like animated gradients and image filters for Android apps.

Mindmap

mindmap
  root((Mirage))
    What it does
      GPU shader effects
      Runs on AGSL
      No WebGL needed
    Effect types
      Procedural composables
      Image filter modifiers
    Shared controls
      Animation speed
      Sizing and rotation
      Grain overlay
    Requirements
      Android 13 for rendering
      minSdk 21 to include
      Maven Central distribution

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Add an animated gradient or noise background to an Android app screen with one composable.

REASON 2

Apply an image filter like a water ripple or halftone effect to an existing image in the UI.

REASON 3

Build a visually distinctive app background without embedding a WebGL web view.

REASON 4

Fine-tune a shader's animation speed, scale, rotation, and position through shared controls.

What's in the stack?

KotlinJetpack ComposeAGSL

How it stacks up

androidpoet/miragearsenoal/syncforgeazxcvn/mpvrx-cn
Stars373736
LanguageKotlinKotlinKotlin
Setup difficultyeasymoderateeasy
Complexity2/54/51/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 5min

Shader rendering requires a device on Android 13 or newer, older devices need a manual fallback in the calling code.

Apache 2.0 license: free to use, modify, and distribute, including commercially, as long as you keep license and attribution notices.

Wtf does this do

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.

Yoink these prompts

Prompt 1
Show me how to add the mirage dependency to my Android project's build.gradle.kts file.
Prompt 2
Help me use MeshGradient as a full screen animated background in Jetpack Compose.
Prompt 3
Explain how to apply the water image filter modifier to an Image composable.
Prompt 4
Write a version check fallback for devices below Android 13 that don't support these shaders.

Frequently asked questions

wtf is mirage?

A Jetpack Compose library offering 29 ready-made GPU shader effects like animated gradients and image filters for Android apps.

What language is mirage written in?

Mainly Kotlin. The stack also includes Kotlin, Jetpack Compose, AGSL.

What license does mirage use?

Apache 2.0 license: free to use, modify, and distribute, including commercially, as long as you keep license and attribution notices.

How hard is mirage to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is mirage for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.