Component · live demo

Aura

The halo behind every voice surface in ONE. It is a WebGL shader whose motion comes from two plain props — the agent's state and a scalar volume. No LiveKit room, no token, no agent session: that is what makes it usable on a public page.

What each state does

State Speed Brightness Reads volume
idle / disconnected10steady 1.0no
listening20pulses 1.5 → 2.0no
thinking / connecting30pulses 0.5 → 2.5no
speaking70steady 1.5yes — scale rides it

Source: hooks/agents-ui/use-agent-audio-visualizer-aura.ts. Volume only moves the shape while speaking — in every other state the aura animates on its own so a 2-8s model call never reads as a hung page.

Where it is used

  • /demo/voice — the voice orb, through VoiceVisualizer variant="shader".
  • SpokenMessageAura — the halo behind a spoken reply in chat.
  • /features/voice — the feature page.

On branded surfaces the colour is not chosen by hand: VoiceShaderAura resolves a design token to #rrggbb via tokenToHex, because the shader's only colour API is a hex regex that fails silently on oklch and paints every tenant LiveKit cyan.

Licence: the shader (agent-audio-visualizer-aura.tsx) is PolyForm Non-Resale 1.0.0, © 2026 UNCRN LLC — not MIT. It is opt-in for that reason.