Drop-in component
One import and one JSX element. Pick an orb, set a size, done.
GPU shader orbs for React Native and Expo
33 GPU-rendered shader orbs as drop-in components. Tune them live, let them react to touch, and let adaptive quality keep them smooth. Built for voice and AI interfaces.
npx expo install react-native-shader-orbs react-native-webgpu react-native-reanimated react-native-workletsThis is live: tap it, or press and hold.
Features
One import and one JSX element. Pick an orb, set a size, done.
Each orb exposes its own typed, range-checked knobs (up to 34). Changes ease in with springs, so nothing snaps.
A tap sends a pulse through the orb. Holding makes it swell and speed up, then it eases back on release.
Auto mode renders at a lower resolution and steps it down when the frame rate drops. A frame cap saves battery.
Every orb ships idle, thinking and speaking presets, plus input and output volume to drive it from a voice or mic level.
The orbs on this page are the same WGSL, driven by the same code, rendered through the browser's WebGPU.
One component
Props update the orb live without re-mounting it, and anything you don't set falls back to the orb's own defaults and its mood presets.
import { ShaderOrb, orb01 } from "react-native-shader-orbs";
export default function Screen() {
return (
<ShaderOrb
orb={orb01}
state="speaking"
colors={{ tint: "#66ccff" }}
params={{ speed: 1.2 }}
size={320}
interactive
/>
);
}Gallery
Built for AI agents
Parameter names and ranges differ for every orb, and a wrong guess gives you a black orb. One command gives Claude Code, Cursor, Copilot and Codex an MCP server, a skill and instructions that look the real values up.
npx react-native-shader-orbs-mcp initHow it works
The shaders are written in TypeGPU. A codegen step resolves each one to plain WGSL plus its parameter metadata.
At runtime a fullscreen triangle and one uniform buffer go through react-native-webgpu. All orbs share one GPU device and cached pipelines.
Springs ease every value toward its target, so changing a prop is smooth and doesn't rebuild anything.
Before you start
Expo Go can't load the native WebGPU module.
react-native-webgpu, react-native-reanimated and react-native-worklets.
One physical device, React Native 0.88, Expo SDK 58.
Unless you get XorDev's permission. Details.
FAQ
Install it, render an orb, and tune it live in the playground.