- Docs
- Components
- 3D & Shaders
- AI Blob
A glowing glass orb that listens, thinks and speaks with your AI
| Name | Type | Default | Description |
|---|---|---|---|
size | number | 400 | Width and height of the orb in pixels. |
colors | string[] | ["#ff006e", "#8338ec", "#3a86ff", "#06ffa5"] | Two to four colours that flow around the rim. |
state | "idle" | "listening" | "thinking" | "speaking" | "idle" | What the assistant is doing. Listening brightens the rim and halo, thinking spins the colours and pulses the core, speaking swells with the voice. |
volume | number | — | Audio level from 0 to 1 that drives the swell and the core. |
getVolume | () => number | — | Called every frame to read a live audio level (0 to 1), for example the RMS of a Web Audio analyser. |
autoVolume | boolean | true | Simulates a voice while listening or speaking when no volume is given. |
reactivity | number | 1 | How strongly the volume swells and brightens the orb. |
animationSpeed | number | 1 | Speed of the inner motion. |
colorSpeed | number | 1 | Speed at which the colours travel around the rim. |
glowIntensity | number | 0.8 | Overall brightness of the orb. |
noiseScale | number | 3 | Detail of the shimmer along the rim. |
innerScale | number | 1 | Size of the glowing core. |
coreIntensity | number | 1 | Brightness of the glowing core. |
rimWidth | number | 1 | Thickness of the bright outline. |
rimIntensity | number | 1 | Brightness of the coloured rim. |
glints | number | 1 | Strength of the white highlights on the glass. |
halo | number | 1 | Size of the soft glow around the orb. |
wobble | number | 0 | Lets the outline sway like a soft bubble. |
hoverTilt | number | 1 | How far the orb turns toward the pointer. |
interactive | boolean | true | Tap the orb to make it squish and flare. |
blend | "auto" | "glow" | "ink" | "auto" | Glow suits dark pages, ink draws clean colour on light pages. Auto picks from the background behind the orb. |
intro | boolean | true | Pops the orb in with a soft spring. |
paused | boolean | false | Stops the motion. Reduced-motion users get a still orb. |
resolution | number | 1 | Render resolution multiplier, lower for slower devices. |
ref | { tap } | — | tap(angle?, strength?) squishes the orb from an angle in degrees. |
className | string | — | Classes for the root element. |
style | CSSProperties | — | Inline styles for the root element. |
sizenumberWidth and height of the orb in pixels.
400colorsstring[]Two to four colours that flow around the rim.
["#ff006e", "#8338ec", "#3a86ff", "#06ffa5"]state"idle" | "listening" | "thinking" | "speaking"What the assistant is doing. Listening brightens the rim and halo, thinking spins the colours and pulses the core, speaking swells with the voice.
"idle"volumenumberAudio level from 0 to 1 that drives the swell and the core.
—getVolume() => numberCalled every frame to read a live audio level (0 to 1), for example the RMS of a Web Audio analyser.
—autoVolumebooleanSimulates a voice while listening or speaking when no volume is given.
truereactivitynumberHow strongly the volume swells and brightens the orb.
1animationSpeednumberSpeed of the inner motion.
1colorSpeednumberSpeed at which the colours travel around the rim.
1glowIntensitynumberOverall brightness of the orb.
0.8noiseScalenumberDetail of the shimmer along the rim.
3innerScalenumberSize of the glowing core.
1coreIntensitynumberBrightness of the glowing core.
1rimWidthnumberThickness of the bright outline.
1rimIntensitynumberBrightness of the coloured rim.
1glintsnumberStrength of the white highlights on the glass.
1halonumberSize of the soft glow around the orb.
1wobblenumberLets the outline sway like a soft bubble.
0hoverTiltnumberHow far the orb turns toward the pointer.
1interactivebooleanTap the orb to make it squish and flare.
trueblend"auto" | "glow" | "ink"Glow suits dark pages, ink draws clean colour on light pages. Auto picks from the background behind the orb.
"auto"introbooleanPops the orb in with a soft spring.
truepausedbooleanStops the motion. Reduced-motion users get a still orb.
falseresolutionnumberRender resolution multiplier, lower for slower devices.
1ref{ tap }tap(angle?, strength?) squishes the orb from an angle in degrees.
—classNamestringClasses for the root element.
—styleCSSPropertiesInline styles for the root element.
—