For the complete documentation index, see llms.txt. Markdown variants are available by appending .md to any URL or sending an Accept: text/markdown header. An agent skill is available at /.well-known/agent-skills/site-skill.md.
/
0
Sponsor

ORB-27

a weather-radar mosaic, fronts of coloured pixels sweeping the ball

Installation

$ pnpm dlx shadcn@latest add https://shadercn.vercel.app/r/orb-27.json

Usage

import { Orb27 } from "@/components/orbs/orb-27";
<Orb27 size={280} state="idle" />

Props

Component Props

PropTypeDefaultDescription
state"idle" | "thinking" | "speaking""idle"Drive preset the orb eases toward
sizenumber280Rendered size in CSS pixels
paramsPartial<Record<string, number>>-Shader param overrides, see Shader Props
colorsPartial<Record<string, string>>-Shader colour overrides as hex strings
statePresetsPartial<Record<OrbState, Record<string, number>>>-Replace the built-in per-state param presets
stateColorsPartial<Record<OrbState, Record<string, string>>>-Replace the built-in per-state colours
stateVolumesPartial<Record<OrbState, { input?: number; output?: number }>>-Pin the drive volumes a state settles on
volumes{ input?: number; output?: number }-Drive the orb directly, bypassing synthesis
pausedbooleanfalseFreeze the frame loop
pauseOffscreenbooleantrueStop rendering while scrolled out of view
maxDprnumber2Upper bound on the device pixel ratio
classNamestring-Class on the wrapper element
styleCSSProperties-Inline style on the wrapper element
ariaLabelstring-Accessible name for the canvas

Shader Props

Pass any of these through params; each is a single f32 uniform read by the shader.

ParamLabelRangeStepDefault
speedFront speed0.015100.050.6
spinRoll050.030.04
radiusRadius0.1530.0150.9
scaleGrid zoom0.380.052.4
cellsGrid8120134
dotDot size0.10.50.010.36
swirlSwirl080.051.5
vortexVortex size0.120.010.45
freqStorm scale0.280.051.6
warpBend030.020.5
loQuiet threshold010.0050.12
hiPeak threshold010.0050.82
curveResponse curve0.540.051.4
ditherClass dither00.60.0050.12
sparseQuiet density010.010.16
densityFill01.50.011
twinkleTwinkle rate0300.53
grainPaper grain010.010.1
lightKey light010.010.18
rimRim010.010.35

Colours are passed through colors as hex strings.

ColourLabelDefault
paperPaper#efe9dc
c0Quiet#a9a9a6
c1Class 1#2e5df0
c2Class 2#38d9ec
c3Class 3#22c35c
c4Class 4#e8322a
c5Class 5#f5d020
c6Peak#e030c0

Credits

Shader by XorDev, ported from orbkit (WebGL/GLSL) to WebGPU/WGSL.