case study / active
MaxQ
An Android music player with visuals computed entirely in shader code.
stack
Problem
Most Android music visualizers are slow, generic, and rely on effect pipelines that wreck frame rates on mid-range hardware.
Approach
All visual geometry is computed in AGSL shader space. The CPU never touches rendering math. Jank was traced to MainScaffold collecting playbackState ticks — fixed by isolating the state collection boundary.
Outcome
Fluid shader visuals with consistent frame budget. Supabase auth and analytics pipeline in progress.
Key decisions
SDF refraction in shader: no bitmaps, no image processing, pure geometry.
Tiered API fallback: full AGSL on API 33+, RenderEffect blur on 31–32, tinted surface on 26–30.
Performance is priority 1, visual complexity is priority 2.