Compose Graphics (M3 Expressive · AGSL · Canvas)
An advanced skill for building high-end Jetpack Compose visuals: M3 Expressive motion physics, AGSL shaders, and Canvas generative drawing.
Dev & CodingAdvanced★ 395⑂ 29AI score 9/10Last updated: Sep 30, 2026
What it does
Splits advanced Compose visuals into three domains and tells Claude exactly which API to reach for, with compilable examples.
- Decision table: bouncy spring physics →
MotionScheme.expressive(); pixel-level effects →RuntimeShader+Modifier.graphicsLayer; generative drawing →Canvas/DrawScope; GPU blur →Modifier.blur. - Material 3 Expressive:
standard()vsexpressive()spring tokens with actual damping/stiffness values, the spatial-vs-effects distinction, shape morphing withMaterialShapes+Morph, and a clear line between stable material3 1.4.0 and experimental 1.5.0-alpha APIs. - AGSL shaders: working recipes for touch ripple, holographic gradient and liquid glass (chromatic aberration), each with Compose binding code and a mandatory
SDK_INT >= 33gate plus fallback. - Canvas/DrawScope: animated sine wave, 50-particle field, flow fields, plus perf rules (reuse a remembered
Path, gate redraws withderivedStateOf, preferwithFrameMillisoverdelay(16)). - Five anti-patterns: Expressive everywhere, missing SDK gate, Canvas reading state directly, chaining four shaders, allocating inside DrawScope.
Who it's for
- Compose developers adding brand-defining hero motion or shader effects to Android apps
- UI engineers asked to approximate iOS-style glass effects on Android
- Anyone drawing custom charts, particles or generative art on Canvas who needs to hold 60fps
Examples
- "Make this detail card expand with Expressive springs" → code animating height via
slowSpatialSpec()and alpha viadefaultEffectsSpec(). - "Add a touch-ripple shader to this surface" → AGSL source,
RenderEffect.createRuntimeShaderEffectbinding, and an Android 12 fallback. - "Morph a badge from circle to cookie shape" → a custom
Shapethat scales the 0..1-normalizedMorphpath to the draw size.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/AThevon/genjutsu/HEAD/skills/_jutsu/compose-graphics/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/_jutsu/compose-graphics folder from the GitHub repo AThevon/genjutsu into my ~/.claude/skills/compose-graphics/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/AThevon/genjutsu.git && mkdir -p ~/.claude/skills && cp -r genjutsu/skills/_jutsu/compose-graphics ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal.
- Clone the repo:
git clone https://github.com/AThevon/genjutsu.git - Create the skills folder:
mkdir -p ~/.claude/skills - Copy this skill:
cp -r genjutsu/skills/_jutsu/compose-graphics ~/.claude/skills/ - (Recommended) copy the sibling skills it links to:
cp -r genjutsu/skills/_jutsu/compose-motion genjutsu/skills/_jutsu/compose-multiplatform ~/.claude/skills/— or copy the whole_jutsufolder so everyreferences/link resolves. - Restart Claude Code and confirm it appears under
/skills. - Trigger it with requests containing keywords like "AGSL shader", "M3 Expressive", "holographic", or "Canvas generative".
- The doc pins its API claims to a stated verification date — re-check your project's actual
material3andgraphics-shapesversions before trusting version numbers.
View source on GitHub ↗License: NOASSERTION