Qivi an expressive particle avatar for AI agents (React + Three.js)

Hi all! I’ve been building Qivi, a particle “face” for AI agents, and wanted to share it here since it’s all Three.js under the hood.

  • Up to 38k points in a single draw call. Shape, expressions, eyes, and mouth are driven by shader uniforms, so React never re-renders per frame
  • Orthographic camera; the particle budget scales with on-screen size
  • Mouth and body react to Web Audio analysis of a mic, an audio element, or a MediaStream
  • SVG fallback for tiny sizes, reduced-motion support, pauses when offscreen

Live demo: Qivi — a companion with character
Try it in StackBlitz: Qivi Quickstart Example - StackBlitz
Code (MIT): GitHub - yogeshhrathod/qivi: Customizable particle-based AI companion for React · GitHub

The promo video was rendered frame-accurately by faking the browser clock in Playwright and stepping 1/30 s per screenshot. Happy to share details if that’s useful to anyone.