UI LAB · COMPOSE MULTIPLATFORM · WEBASSEMBLY
Explorations
Twenty-one experiments in what Jetpack Compose can render when it's pushed — runtime shaders, canvas physics, backdrop-blur glass, gesture springs, kinetic typography, and a design system that switches between Material 3 Expressive and Liquid Glass at runtime. One Kotlin codebase, compiled to WebAssembly for this page and building unchanged for Android and iOS.
Aurora Veil
Northern lights in a runtime shader — noise ribbons over a star field.
shader · sksl02Gooey Metaballs
Liquid blobs that chase the pointer and merge.
canvas · gesture03Glass Deck
A frosted-glass player with live backdrop blur, à la haze.
glass · blur04Constellation
A particle field that links its neighbours and bends to your touch.
particles05Flow Field
Two thousand particles surfing Perlin noise, leaving phosphor trails.
particles · noise06Kinetic Type
Per-glyph choreography on a live text layout.
typography07Orbit Menu
A radial menu on spring physics — spin it, fling it.
gesture · physics08Elastic Deck
Rubber-band card swiping with tilt and springy re-stacking.
gesture · spring09Magnetic Dock
Dock icons swell under the pointer, macOS style.
gesture · spring10Liquid Gauge
A vessel of sloshing sine waves — drag to fill.
canvas · waves11Blob Morph
Harmonic blobs breathing between random species.
canvas · morph12Doom Fire
The 1993 PSX fire automaton, drag to torch.
canvas · retro13Ink Reveal
Scene changes blooming from your tap as spreading ink.
transition · mask14Isometric City
A cube city assembling itself on staggered springs.
canvas · fake-3d15Signal Tree
A recursive tree growing live, swaying in Perlin wind.
generative16Chart Morph
One dataset morphing between bars, line and radial.
dataviz · motion17Brushed Knob
A machined rotary knob with magnetic detents.
gesture · skeuomorph18Portal
A ticket that expands into a full scene on springs.
transition · spring19Marquee Wall
An endless tilted wall of drifting poster tiles.
fake-3d · motion20Ripple Shader
Tap-driven refraction ripples in pure SKSL.
shader · gesture21Chameleon
A complete mini-app (feed, component gallery, settings) built from one adaptive UI kit — Material 3 Expressive or Liquid Glass, switched live, with an in-app teardown of how it works.
design-system · toolkitHow it's built
Everything is drawn by Compose Multiplatform 1.11 (Kotlin 2.3, Skia via WasmGC) — no HTML, no CSS, no Material components. The demos sit on four small reusable libraries extracted along the way: aurora-glass (backdrop blur in the spirit of Chris Banes' haze),aurora-shaders (SKSL/AGSL runtime shaders with graceful fallbacks),aurora-particles (a pooled particle engine), and aurora-motion(springs, choreography, Perlin noise) — plus aurora-adaptive, the dual-design-language component kit behind demo 21.
Source lives incompose-explorations/in this site's repo, with research notes on the scene that inspired it and on the M3 × Liquid Glass adaptive system indocs/.