Usage
Every orb takes the same small prop surface. Shader parameters are optional — leave them out and the orb follows the preset for its current state.
Basic
import { Shdr01 } from "@/components/ui/shdr-01";
export function AgentAvatar() {
return <Shdr01 size={280} state="idle" />;
}Driving it from your agent
Map your own connection state onto the orb's three states. The orb handles the transition — params glide, and the animation phase stays continuous.
const orbState =
status === "connecting" ? "thinking"
: isAgentSpeaking ? "speaking"
: "idle";
return <Shdr01 size={320} state={orbState} />;Props
| Prop | Type | Default | Notes |
|---|---|---|---|
| size | number | 280 | Rendered diameter in CSS pixels. |
| state | "idle" | "thinking" | "speaking" | "idle" | Drives the synthesized volume signals. |
| params | Partial<Record<string, number>> | — | Any key here overrides the state preset for that param. |
| colors | Partial<Record<string, string>> | — | Hex overrides, where the orb declares colors. |
| paused | boolean | false | Freeze on the current frame. |
| pauseOffscreen | boolean | true | Stop rendering while scrolled out of view. |
| maxDpr | number | 2 | Device-pixel-ratio ceiling. |
| wrapper | OrbWrapper | "none" | Decoration drawn around the orb: none, glass, ring, dotted, ticks, reticle, grid, halftone, scanlines. |
| wrapperColor | string | "currentColor" | What the wrapper draws its lines in. Glass ignores it. |
| className | string | — | Applied to the outermost element. |
| style | CSSProperties | — | Merged onto the outermost element's style. |
| ariaLabel | string | — | When set the orb is role=img; otherwise it is aria-hidden. |
Sizing
size sets both width and height. To size from CSS instead, drop size and give the canvas a class — the runtime tracks the element box with a ResizeObserver and re-renders at the new resolution.
<Shdr01 className="size-full" state="speaking" />
Shader parameters — SHDR-01
cut-glass orb with a dispersive, turbulent interior. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.5 |
| spin | Spin rate | 0 – 5 | 0.25 |
| camDist | Camera distance | 1 – 50 | 7 |
| focal | Lens | 0.15 – 15 | 2.25 |
| tilt | Field tilt | 0 – 4 | 0.5 |
| turb | Turbulence | 0 – 5 | 0.3 |
| sheets | Sheet density | 1 – 60 | 7 |
| disperse | Dispersion | 0 – 5 | 1 |
| stria | Striation depth | 0 – 10 | 1 |
| envRadius | Envelope radius | 0.15 – 15 | 2.6 |
| envCore | Envelope core | 0.3 – 1.02 | 1 |
| fill | Body fill | 0 – 100 | 1.5 |
| stepClamp | Step clamp | 0.3 – 300 | 20 |
| scatter | Diffusion | 0 – 0.5 | 0.02 |
| exposure | Exposure | 1.5 – 1500 | 60 |
| contrast | Contrast | 0.15 – 15 | 1 |
| saturation | Saturation | 0 – 4 | 1 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-02
ornate scrollwork on a rolling dome. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.5 |
| swirl | Swirl | 0 – 3 | 0.06 |
| radius | Radius | 0.15 – 3 | 0.9 |
| swell | Input swell | 0 – 1 | 0.06 |
| zoom | Pattern zoom | 0.15 – 40 | 4.4 |
| bulge | Sphere bulge | 0 – 10 | 0.35 |
| warpFreq | Warp frequency | 0.05 – 10 | 1.5 |
| hueShift | Hue shift | 0 – 6.283 | 0 |
| coreClamp | Flare size | 0.003 – 3 | 0.12 |
| falloff | Fill | 0.05 – 4 | 1 |
| gain | Exposure | 0.015 – 10 | 0.55 |
| rim | Rim light | 0 – 3 | 0.12 |
| rimPow | Rim tightness | 0.15 – 15 | 2.2 |
| alphaGain | Alpha gain | 0.05 – 15 | 2.4 |
| baseVis | Base visibility | 0 – 1.5 | 0.08 |
Shader parameters — SHDR-03
a turbulent belt of light girdling the ball, contoured in rainbow. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.6 |
| wander | Belt tilt drift | 0 – 5 | 0.3 |
| feedback | Tilt feedback | 0 – 40 | 1.5 |
| camDist | Camera distance | 1 – 50 | 5 |
| focal | Lens | 0.15 – 15 | 1.05 |
| shellR | Shell radius | 0.2 – 20 | 3 |
| shellW | Shell weight | 0.005 – 1 | 0.12 |
| plane | Belt tightness | 0 – 1 | 0.15 |
| turb | Warp | 0 – 4 | 0.55 |
| width | Belt width | 0.0005 – 0.4 | 0.004 |
| pulse | Belt breathing | 0 – 1 | 0 |
| surge | Belt surge | 0 – 1 | 0 |
| hue | Contour hue | 0 – 60 | 25 |
| spread | Colour spread | 0 – 3 | 1 |
| envRadius | Envelope radius | 0.15 – 20 | 3.3 |
| envCore | Envelope core | 0.3 – 1.02 | 0.92 |
| fill | Body fill | 0 – 40 | 0.1 |
| stepClamp | Step clamp | 5 – 20000 | 1500 |
| scatter | Diffusion | 0 – 0.1 | 0.0006 |
| exposure | Exposure | 20 – 100000 | 1500 |
| contrast | Contrast | 0.15 – 15 | 1.2 |
| saturation | Saturation | 0 – 4 | 1.25 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-04
a hollow shell of light, faceted by a voxel lattice. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.6 |
| camDist | Camera distance | 1 – 60 | 9 |
| focal | Lens | 0.15 – 15 | 1.35 |
| shellR | Shell radius | 0.3 – 20 | 5 |
| pitch | Facet size | 0.005 – 1.5 | 0.3 |
| turb | Displacement | 0 – 5 | 0.45 |
| slack | Trace slack | 0.01 – 0.9 | 0.1 |
| width | Surface width | 0.0005 – 0.3 | 0.003 |
| hueGain | Position hue | 0 – 6 | 1 |
| floorLevel | White floor | 0 – 4 | 0.8 |
| envScale | Silhouette margin | 1 – 2 | 1.16 |
| exposure | Exposure | 20 – 40000 | 3000 |
| contrast | Contrast | 0.15 – 15 | 1.3 |
| saturation | Saturation | 0 – 4 | 1.3 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-05
rainbow rings travelling through a lattice of lenses. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| ring | Ring speed | 0 – 8 | 0.9 |
| swirl | Swirl | 0 – 3 | 0.05 |
| slide | Lattice slide | 0 – 4 | 0.12 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Lattice scale | 0.3 – 20 | 5 |
| bulge | Dome bulge | 0 – 4 | 0.3 |
| lens | Lens strength | 0 – 4 | 1 |
| poleSoft | Wall softness | 0.0008 – 0.5 | 0.02 |
| freq | Ring frequency | 0.05 – 8 | 1 |
| spread | Colour split | 0 – 4 | 1 |
| gain | Brightness | 0.05 – 4 | 1.1 |
| contrast | Contrast | 0.15 – 6 | 1 |
| saturation | Saturation | 0 – 4 | 1.15 |
| floorLevel | Body fill | 0 – 2 | 0.12 |
| light | Key light | 0 – 3 | 0.4 |
| rim | Rim sheen | 0 – 3 | 0.45 |
Shader parameters — SHDR-06
a hundred glowing lattices stacked through the ball, interfering. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.5 |
| drift | Layer walk | 0 – 0.3 | 0.02 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Pattern scale | 0.3 – 20 | 4 |
| bulge | Dome bulge | 0 – 4 | 0.3 |
| depth | Stack depth | 0 – 1.6 | 0.7 |
| freq | Lattice spacing | 0.05 – 5 | 0.7 |
| glowSize | Glow size | 0.002 – 1 | 0.05 |
| hueRate | Hue per layer | 0 – 0.5 | 0.037 |
| exposure | Exposure | 0.05 – 200 | 4 |
| contrast | Contrast | 0.15 – 10 | 1.1 |
| saturation | Saturation | 0 – 4 | 1.2 |
| light | Key light | 0 – 3 | 0.45 |
| rim | Rim sheen | 0 – 3 | 0.4 |
Shader parameters — SHDR-07
a twist wave travelling out through the ball around a lit column. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Cell shimmer | 0.015 – 10 | 0.5 |
| wave | Wave speed | 0 – 8 | 0.7 |
| twist | Twist | 0 – 8 | 1 |
| spin | Roll | 0 – 3 | 0.1 |
| tilt | Axis lean | -1.5 – 1.5 | 0.3 |
| camDist | Camera distance | 1 – 50 | 7 |
| focal | Lens | 0.15 – 15 | 2.25 |
| turb | Cell turbulence | 0 – 5 | 1 |
| column | Column release | 0 – 1 | 0 |
| stepScale | Step scale | 0.005 – 1.5 | 0.1 |
| hueDepth | Depth hue | 0 – 10 | 0.75 |
| hueStep | Step hue | 0 – 10 | 0.45 |
| envRadius | Envelope radius | 0.15 – 15 | 2.6 |
| envCore | Envelope core | 0.3 – 1.02 | 0.88 |
| fill | Body fill | 0 – 100 | 0.15 |
| stepClamp | Step clamp | 3 – 5000 | 400 |
| scatter | Diffusion | 0 – 0.5 | 0.01 |
| exposure | Exposure | 1.5 – 5000 | 60 |
| contrast | Contrast | 0.15 – 15 | 1.3 |
| saturation | Saturation | 0 – 4 | 1.15 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-08
mother-of-pearl contour bands, each layer its own hue. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Boil | 0.015 – 10 | 0.35 |
| flow | Band drift | 0 – 5 | 0.25 |
| swirl | Swirl | 0 – 3 | 0.06 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Pattern scale | 0.3 – 20 | 5.5 |
| bulge | Dome bulge | 0 – 4 | 0.3 |
| warp | Warp | 0 – 3 | 1 |
| beat | Warp beat | 0 – 1 | 0 |
| thick | Band width | 0.02 – 2 | 0.2 |
| split | Chromatic split | 0 – 1 | 0.1 |
| iris | Iridescence | 0 – 2 | 0.7 |
| irisScale | Iridescence scale | 0 – 2 | 0.315 |
| view | Angle shift | 0 – 3 | 1.34 |
| floor | Body fill | 0 – 3 | 0.8 |
| gain | Brightness | 0.05 – 5 | 1.1 |
| contrast | Contrast | 0.15 – 10 | 1.15 |
| light | Key light | 0 – 3 | 0.75 |
| rim | Rim sheen | 0 – 3 | 0.5 |
Shader parameters — SHDR-09
torn rings of rainbow light worn as the ball's latitudes. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.6 |
| spin | Roll | 0 – 3 | 0.12 |
| tilt | Tilt | -1.5 – 1.5 | 0.4 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Ring spacing | 0.3 – 20 | 3.5 |
| warp | Tear | 0 – 3 | 0.45 |
| seed | Ring seed | 0 – 3 | 0.9 |
| glow | Ring glow | 0 – 1 | 0.05 |
| lineSoft | Ring width | 0.002 – 1 | 0.05 |
| inner | Inner falloff | 0.2 – 12 | 3 |
| fringe | Rainbow fringe | 0 – 2 | 0.1 |
| fringeSoft | Fringe width | 0.001 – 1 | 0.003 |
| ringPhase | Ring hue step | 0 – 3 | 0.8 |
| exposure | Exposure | 0.05 – 20 | 1.1 |
| contrast | Contrast | 0.15 – 10 | 1.1 |
| saturation | Saturation | 0 – 4 | 1.2 |
| light | Key light | 0 – 3 | 0.5 |
| rim | Rim sheen | 0 – 3 | 0.4 |
Shader parameters — SHDR-10
a lattice of light knitted into the ball's own skin. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.6 |
| scroll | Climb | 0 – 8 | 1.2 |
| camDist | Camera distance | 1 – 50 | 7 |
| focal | Lens | 0.15 – 15 | 2 |
| shellR | Shell radius | 0.2 – 20 | 2.6 |
| wrap | Wraps around | 1 – 14 | 8 |
| climb | Band spacing | 0.05 – 12 | 4 |
| turb | Warp | 0 – 3 | 0.35 |
| layer | Layer offset | 0 – 2 | 0.5 |
| cell | Lattice weight | 0 – 2 | 0.45 |
| stepScale | Step scale | 0.02 – 3 | 0.15 |
| hueStep | Layer hue | 0 – 3 | 0.4 |
| spread | Colour spread | 0 – 3 | 1 |
| envRadius | Envelope radius | 0.15 – 20 | 2.9 |
| envCore | Envelope core | 0.3 – 1.02 | 0.92 |
| fill | Body fill | 0 – 40 | 0.1 |
| stepClamp | Step clamp | 5 – 5000 | 300 |
| scatter | Diffusion | 0 – 0.2 | 0.004 |
| exposure | Exposure | 0.05 – 500 | 30 |
| contrast | Contrast | 0.15 – 15 | 1.15 |
| saturation | Saturation | 0 – 4 | 1.2 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-11
quantum orbital, rainbow chroma. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.9 |
| rotSpeed | Rotation speed | 0 – 5 | 0.5 |
| radius | Radius | 0.15 – 3 | 0.9 |
| swell | Input swell | 0 – 1 | 0.07 |
| posScale | Orbital zoom | 0.15 – 10 | 0.5 |
| flowSpeed | Flow speed | 0 – 10 | 0.35 |
| flowAmp | Flow amount | 0 – 4 | 0.45 |
| flowScale | Flow scale | 0.3 – 10 | 0.3 |
| precess | Precession | 0 – 4 | 0.3 |
| radialPow | Radial power | 0.5 – 15 | 0.5 |
| radialDecay | Radial decay | 0.3 – 30 | 1 |
| probPow | Probability curve | 0.1 – 3 | 0.4 |
| probGain | Probability gain | 0.15 – 15 | 3 |
| waveFreq | Wave frequency | 0 – 20 | 4 |
| chromaSpread | Chroma spread | 0 – 1.5 | 0.18 |
| glow | Glow | 0 – 5 | 0.9 |
| metalDark | Metal darkness | 0 – 3 | 0 |
| baseVis | Base visibility | 0 – 1.5 | 0.12 |
Shader parameters — SHDR-12
a ball of glossy toy bricks, studs up — it rebuilds itself while it thinks. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| spin | Spin | 0 – 5 | 0.25 |
| tilt | Tilt | 0 – 4 | 0.55 |
| rebuild | Rebuild rate | 0 – 20 | 0.4 |
| gap | Missing bricks | 0 – 0.8 | 0.07 |
| studs | Studs | 8 – 48 | 18 |
| radius | Radius | 0.15 – 3 | 0.95 |
| patch | Colour patches | 0 – 1 | 0.35 |
| stud | Stud relief | 0 – 1 | 0.85 |
| seam | Seams | 0 – 1 | 0.6 |
| gloss | Gloss | 0 – 3 | 1 |
| light | Key light | 0 – 3 | 1 |
| gain | Gain | 0.05 – 5 | 1 |
| contrast | Contrast | 0.15 – 10 | 1 |
Shader parameters — SHDR-13
plasma globe: crawling lightning filaments. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 1 |
| spin | Spin rate | 0 – 5 | 0.2 |
| camDist | Camera distance | 1 – 50 | 7 |
| focal | Lens | 0.15 – 15 | 2.25 |
| envRadius | Globe radius | 0.15 – 15 | 2.6 |
| swell | Input swell | 0 – 1 | 0.15 |
| tilt | Axis tilt | 0 – 4 | 0.4 |
| fils | Filament density | 0.5 – 12 | 6 |
| writhe | Writhe | 0 – 3 | 0.9 |
| writheFreq | Writhe frequency | 0.2 – 8 | 1.6 |
| sharp | Arc sharpness | 0.5 – 60 | 4 |
| soft | Arc core softness | 0.002 – 0.5 | 0.06 |
| whiten | Core whitening | 0 – 0.2 | 0.008 |
| coreGain | Nucleus glow | 0 – 5 | 1.6 |
| tipGain | Glass flare | 0 – 6 | 1.8 |
| fill | Body haze | 0 – 2 | 0.02 |
| stepClamp | Step clamp | 0.3 – 300 | 40 |
| scatter | Diffusion | 0 – 0.5 | 0.012 |
| exposure | Exposure | 0.1 – 200 | 11 |
| contrast | Contrast | 0.15 – 15 | 1 |
| saturation | Saturation | 0 – 4 | 1.2 |
| alphaGain | Alpha gain | 0.05 – 15 | 2.5 |
| edge | Edge sharpness | 0 – 1 | 1 |
Shader parameters — SHDR-14
a lit plasma dome quantized to chunky two-tone pixels. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Wave speed | 0.015 – 10 | 0.5 |
| spin | Roll | 0 – 5 | 0.15 |
| radius | Radius | 0.15 – 3 | 0.9 |
| cells | Grid cells | 32 – 320 | 140 |
| levels | Tone steps | 2 – 8 | 3 |
| scale | Wave scale | 0.3 – 12 | 1.5 |
| plasma | Wave amount | 0 – 3 | 0.9 |
| light | Key light | 0 – 3 | 0.9 |
| rim | Rim light | 0 – 3 | 0.35 |
| gain | Brightness | 0.05 – 5 | 1 |
| contrast | Contrast | 0.15 – 10 | 1.1 |
Shader parameters — SHDR-15
an iridescent particle-track web worn as the ball's skin. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.5 |
| wander | Axis wander | 0 – 3 | 0.15 |
| camDist | Camera distance | 1 – 50 | 7 |
| focal | Lens | 0.15 – 15 | 2.25 |
| fieldScale | Web density | 1 – 20 | 2.4 |
| turb | Weave | 0 – 5 | 0.8 |
| stepScale | Skin depth | 0.0015 – 0.4 | 0.015 |
| disperse | Dispersion | 0 – 5 | 1 |
| envRadius | Envelope radius | 0.15 – 15 | 2.6 |
| envCore | Envelope core | 0.3 – 1.02 | 1 |
| fill | Body fill | 0 – 100 | 0.3 |
| stepClamp | Step clamp | 3 – 5000 | 150 |
| scatter | Diffusion | 0 – 0.5 | 0.01 |
| exposure | Exposure | 1.5 – 1500 | 50 |
| contrast | Contrast | 0.15 – 15 | 1.35 |
| saturation | Saturation | 0 – 4 | 1.35 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-16
sunlight through water — a caustic net crawling over the ball, fringing into colour where it moves. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| flow | Water flow | 0.015 – 10 | 0.9 |
| spin | Turn | 0 – 5 | 0.08 |
| swellRate | Surge rate | 0 – 8 | 0.6 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Net scale | 3 – 30 | 9 |
| warp | Ripple depth | 0 – 3 | 0.8 |
| edge | Line sharpness | 0.5 – 10 | 2.2 |
| split | Colour fringe | 0 – 3 | 0.6 |
| swell | Surge depth | 0 – 1 | 0.15 |
| gain | Sun power | 0.05 – 6 | 1.6 |
| contrast | Tone knee | 0.15 – 6 | 1.1 |
| light | Floor light | 0 – 3 | 0.9 |
| rim | Rim sheen | 0 – 3 | 0.6 |
Shader parameters — SHDR-17
a grainy many-coloured storm with band shear and lightning. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Storm speed | 0.015 – 10 | 0.9 |
| spin | Roll | 0 – 5 | 0.12 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Weather scale | 0.3 – 12 | 2.4 |
| bands | Band count | 0 – 20 | 6 |
| shear | Band shear | 0 – 5 | 1.1 |
| warp | Warp | 0 – 8 | 2.2 |
| churn | Churn | 0 – 8 | 1.4 |
| gain | Brightness | 0.05 – 5 | 1.15 |
| contrast | Contrast | 0.15 – 10 | 1.35 |
| grain | Field grain | 0 – 2 | 0.4 |
| filmGrain | Film grain | 0 – 2 | 0.35 |
| grainSize | Grain size | 1 – 8 | 2 |
| rainbow | Iridescence | 0 – 2 | 0.65 |
| flashRate | Flash rate | 0 – 10 | 1.6 |
| flash | Flash power | 0 – 5 | 1.2 |
| light | Key light | 0 – 3 | 0.85 |
| rim | Rim light | 0 – 3 | 0.5 |
Shader parameters — SHDR-18
a crystal folded out of one eighth of space, tumbling. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| wander | Tumble | 0 – 5 | 0.5 |
| camDist | Camera distance | 1 – 50 | 4 |
| focal | Lens | 0.15 – 15 | 1.5 |
| fold | Octant fold | 0 – 1 | 1 |
| crease | Diagonal crease | 0 – 1 | 1 |
| freq | Crystal frequency | 0.1 – 20 | 5 |
| stepScale | Step scale | 0.02 – 2 | 0.3 |
| hue | Depth hue | 0 – 4 | 1.5 |
| spread | Colour spread | 0 – 3 | 1 |
| envRadius | Envelope radius | 0.15 – 15 | 2.1 |
| envCore | Envelope core | 0.3 – 1.02 | 0.9 |
| fill | Body fill | 0 – 20 | 0.02 |
| stepClamp | Step clamp | 1 – 2000 | 40 |
| scatter | Diffusion | 0 – 0.2 | 0.004 |
| exposure | Exposure | 0.2 – 500 | 18 |
| contrast | Contrast | 0.15 – 15 | 1.2 |
| saturation | Saturation | 0 – 4 | 1.25 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-19
beads swelling and shrinking in their cells, packed over the ball. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.5 |
| swirl | Swirl | 0 – 3 | 0.05 |
| slide | Drift | 0 – 4 | 0.1 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Packing scale | 0.3 – 30 | 10 |
| bulge | Dome bulge | 0 – 4 | 0.3 |
| grow | Dot size | -0.2 – 1.2 | 0.185 |
| vary | Size variation | 0 – 0.4 | 0.13 |
| skew | Generator detune | 0 – 3 | 0.62 |
| jitter | Dot wander | 0 – 1.5 | 0.1 |
| edge | Rim hardness | 1 – 200 | 50 |
| bead | Bead shading | 0 – 1 | 0 |
| gain | Brightness | 0.05 – 4 | 1 |
| contrast | Contrast | 0.15 – 6 | 1 |
| saturation | Saturation | 0 – 4 | 1.1 |
| floorLevel | Body fill | 0 – 2 | 0.06 |
| light | Key light | 0 – 3 | 0.3 |
| rim | Rim sheen | 0 – 3 | 0.35 |
Shader parameters — SHDR-20
a water film rushing down the ball, fountain-style. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Ripple speed | 0.015 – 10 | 0.5 |
| flow | Fall rush | 0 – 20 | 3 |
| camDist | Camera distance | 1 – 50 | 7 |
| focal | Lens | 0.15 – 15 | 2.25 |
| tilt | Flow tilt | 0 – 4 | 0.15 |
| stretch | Fall stretch | 0.03 – 3 | 0.3 |
| foam | Foam | 0 – 3 | 0.3 |
| wall | Film sharpness | 0.15 – 20 | 3 |
| stepScale | Step scale | 0.015 – 1.5 | 0.2 |
| hueScale | Hue banding | 0 – 3 | 0.85 |
| envRadius | Envelope radius | 0.15 – 15 | 2.6 |
| envCore | Envelope core | 0.3 – 1.02 | 1 |
| fill | Body fill | 0 – 100 | 0.4 |
| stepClamp | Step clamp | 0.3 – 300 | 20 |
| scatter | Diffusion | 0 – 0.5 | 0.01 |
| exposure | Exposure | 1.5 – 1500 | 22 |
| contrast | Contrast | 0.15 – 15 | 1.15 |
| saturation | Saturation | 0 – 4 | 1.55 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-21
light diffusing through a cloud. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 10 |
| camDist | Camera distance | 0.5 – 40 | 4.4 |
| focal | Lens | 0.3 – 15 | 1.8 |
| radius | Cloud radius | 0.15 – 10 | 2 |
| scale | Cloud scale | 0.1 – 15 | 0.8 |
| churn | Churn | 0 – 5 | 0.3 |
| threshold | Clumping | 0 – 3 | 0.075 |
| edgeSoft | Edge softness | 0.1 – 10 | 0.8 |
| density | Density | 0.03 – 20 | 3.2 |
| absorb | Absorption | 0.03 – 15 | 1.4 |
| shadowAbsorb | Shadow depth | 0 – 20 | 2.4 |
| shadowLift | Shadow lift | 0 – 5 | 0.55 |
| aniso | Forward scatter | -0.9 – 0.9 | 0.45 |
| lightSpin | Light orbit | 0 – 3 | 0.12 |
| power | Light power | 0.03 – 40 | 1.9 |
| ambient | Ambient | 0 – 3 | 0.12 |
| exposure | Exposure | 0.03 – 10 | 1 |
| alphaGain | Alpha gain | 0.05 – 10 | 1.5 |
Shader parameters — SHDR-22
field lines swirling around the ball about a wandering axis. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 0.5 |
| wander | Axis wander | 0 – 3 | 0.12 |
| camDist | Camera distance | 1 – 50 | 7 |
| focal | Lens | 0.15 – 15 | 2.25 |
| hug | Surface hug | 0 – 3 | 0.8 |
| turb | Cell shimmer | 0 – 5 | 0.6 |
| stepScale | Step scale | 0.005 – 1.5 | 0.07 |
| hueStep | Step hue | 0 – 10 | 0.12 |
| hueDepth | Depth hue | 0 – 10 | 1.4 |
| glow | Vector glow | 0 – 10 | 1.4 |
| glowFew | Glow density | 0 – 1.5 | 0.12 |
| envRadius | Envelope radius | 0.15 – 15 | 2.6 |
| envCore | Envelope core | 0.3 – 1.02 | 0.88 |
| fill | Body fill | 0 – 100 | 0.15 |
| stepClamp | Step clamp | 3 – 5000 | 800 |
| scatter | Diffusion | 0 – 0.5 | 0.01 |
| exposure | Exposure | 1.5 – 5000 | 260 |
| contrast | Contrast | 0.15 – 15 | 1.3 |
| saturation | Saturation | 0 – 4 | 1.15 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-23
an ASCII glyph matrix in CRT green, wrapped on the ball. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| drift | Drift | 0 – 10 | 0.55 |
| scroll | Scroll | 0 – 10 | 0.05 |
| speed | Pulse rate | 0.015 – 10 | 0.5 |
| pulse | Pulse depth | 0 – 2 | 0 |
| spin | Roll | 0 – 5 | 0.12 |
| radius | Radius | 0.15 – 3 | 0.9 |
| cells | Glyph grid | 16 – 120 | 40 |
| scale | Field scale | 0.3 – 10 | 1.6 |
| density | Glyph density | 0 – 2 | 0.48 |
| dropout | Dropout | 0 – 1 | 0.48 |
| light | Key light | 0 – 3 | 0.6 |
| rim | Rim glow | 0 – 3 | 0.45 |
| gain | Phosphor gain | 0.05 – 5 | 1 |
| contrast | Contrast | 0.15 – 10 | 1 |
Shader parameters — SHDR-24
a Minecraft Earth — a perfect voxel sphere whose seasons cycle it through lush, cherry-grove, ice, mesa and desert worlds. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| spin | Spin | 0 – 5 | 0.22 |
| tilt | Tilt | 0 – 4 | 0.45 |
| drift | Terrain drift | 0 – 10 | 0.12 |
| season | Season rate | 0 – 10 | 0.3 |
| shuffle | Ember rate | 0 – 20 | 0.8 |
| radius | Radius | 0.15 – 3 | 1.15 |
| blocks | Blocks | 16 – 96 | 64 |
| rough | Mountains | 0 – 0.8 | 0.45 |
| scale | Terrain scale | 0.5 – 8 | 2.4 |
| sea | Sea level | 0 – 1 | 0.5 |
| trees | Trees | 0 – 1 | 0.75 |
| cave | Caves | 0 – 1 | 0.4 |
| ore | Ore density | 0 – 0.6 | 0.12 |
| glow | Ore glow | 0 – 5 | 0.9 |
| core | Molten core | 0 – 1 | 0.5 |
| texture | Texture grain | 0 – 1 | 0.6 |
| light | Key light | 0 – 3 | 1 |
| gain | Gain | 0.05 – 5 | 1 |
| contrast | Contrast | 0.15 – 10 | 1 |
Shader parameters — SHDR-25
the folds of a warped field, drawn by their own steepness. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Boil | 0.015 – 20 | 3 |
| drift | Drift | 0 – 8 | 0.6 |
| swirl | Swirl | 0 – 3 | 0.05 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Cell scale | 0.3 – 60 | 7.5 |
| bulge | Dome bulge | 0 – 4 | 0.3 |
| warp | Fold | 0 – 2 | 0.4 |
| zoom | Octave zoom | 0.6 – 2 | 1.111 |
| ripple | Ripple | 0.02 – 3 | 0.3 |
| edgeGain | Edge gain | 0.5 – 60 | 10 |
| blur | Rim width | 0.5 – 12 | 2.5 |
| fringe | Chromatic fringe | 0 – 1.5 | 0.09 |
| exposure | Exposure | 0.05 – 40 | 0.8 |
| contrast | Contrast | 0.15 – 8 | 1.15 |
| saturation | Saturation | 0 – 4 | 1.5 |
| floorLevel | Body fill | 0 – 2 | 0.16 |
| light | Key light | 0 – 3 | 0.35 |
| rim | Rim sheen | 0 – 3 | 0.45 |
Shader parameters — SHDR-26
a crazed web of coloured threads knotted to a cell grid. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Boil | 0.015 – 10 | 0.4 |
| swirl | Swirl | 0 – 3 | 0.07 |
| drift | Crazing drift | 0 – 5 | 0.18 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Cell scale | 0.3 – 20 | 9 |
| bulge | Dome bulge | 0 – 4 | 0.25 |
| warp | Warp | 0 – 3 | 0.85 |
| pole | Knot strength | 0 – 2 | 0.25 |
| poleSoft | Knot size | 0.001 – 1 | 0.012 |
| pulse | Cell breathing | 0 – 2 | 0.35 |
| sharp | Thread width | 0.3 – 20 | 4.5 |
| split | Chromatic split | 0 – 1 | 0.045 |
| core | Hot core | 0 – 3 | 0.45 |
| floor | Body fill | 0 – 3 | 0.9 |
| gain | Brightness | 0.05 – 5 | 1 |
| contrast | Contrast | 0.15 – 10 | 1.35 |
| light | Key light | 0 – 3 | 0.7 |
| rim | Rim sheen | 0 – 3 | 0.45 |
Shader parameters — SHDR-27
a weather-radar mosaic, fronts of coloured pixels sweeping the ball. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Front speed | 0.015 – 10 | 0.6 |
| spin | Roll | 0 – 5 | 0.04 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Grid zoom | 0.3 – 8 | 2.4 |
| cells | Grid | 8 – 120 | 34 |
| dot | Dot size | 0.1 – 0.5 | 0.36 |
| swirl | Swirl | 0 – 8 | 1.5 |
| vortex | Vortex size | 0.1 – 2 | 0.45 |
| freq | Storm scale | 0.2 – 8 | 1.6 |
| warp | Bend | 0 – 3 | 0.5 |
| lo | Quiet threshold | 0 – 1 | 0.12 |
| hi | Peak threshold | 0 – 1 | 0.82 |
| curve | Response curve | 0.5 – 4 | 1.4 |
| dither | Class dither | 0 – 0.6 | 0.12 |
| sparse | Quiet density | 0 – 1 | 0.16 |
| density | Fill | 0 – 1.5 | 1 |
| twinkle | Twinkle rate | 0 – 30 | 3 |
| grain | Paper grain | 0 – 1 | 0.1 |
| light | Key light | 0 – 1 | 0.18 |
| rim | Rim | 0 – 1 | 0.35 |
Shader parameters — SHDR-28
nested binary grids shuttering on a tumbling bit-sphere. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Shutter drift | 0.015 – 10 | 0.5 |
| spin | Tumble rate | 0 – 5 | 0.15 |
| tilt | Tumble tilt | 0 – 4 | 0.5 |
| radius | Radius | 0.1 – 3 | 0.9 |
| gridScale | Grid scale | 0.5 – 20 | 2 |
| levels | Bit depth | 4 – 20 | 12 |
| lineW | Line width | 0.5 – 15 | 2 |
| shutter | Shutter | 0 – 4 | 1 |
| gain | Line gain | 0.05 – 10 | 1 |
| body | Body glow | 0 – 5 | 1 |
| rim | Rim light | 0 – 5 | 0.6 |
| rimPow | Rim tightness | 0.3 – 20 | 3 |
| contrast | Contrast | 0.15 – 10 | 1 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-29
an LED tile wall lighting up in flowing blobs, wrapped on the ball. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| drift | Drift | 0 – 10 | 0.45 |
| churn | Churn | 0 – 10 | 0.5 |
| swirl | Fluidity | 0 – 3 | 1.2 |
| shuffle | Shuffle | 0 – 20 | 0.6 |
| pulse | Pulse depth | 0 – 2 | 0 |
| spin | Roll | 0 – 5 | 0.1 |
| radius | Radius | 0.15 – 3 | 0.9 |
| cells | Tile grid | 16 – 160 | 48 |
| scale | Blob scale | 0.3 – 10 | 1.3 |
| coverage | Coverage | 0 – 1.2 | 0.52 |
| confetti | Confetti | 0 – 1 | 0.22 |
| light | Key light | 0 – 3 | 0.6 |
| gain | Panel gain | 0.05 – 5 | 1 |
| contrast | Contrast | 0.15 – 10 | 1 |
Shader parameters — SHDR-30
a meadow folding into itself toward a blue vanishing point. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| fall | Fall speed | 0 – 4 | 0.12 |
| tilt | Frame tilt | -1.6 – 1.6 | 0 |
| drift | Weather drift | 0 – 4 | 0.2 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Tunnel scale | 0.3 – 20 | 4.5 |
| bulge | Dome bulge | 0 – 4 | 0.25 |
| ratio | Frame ratio | 1.1 – 6 | 1.8 |
| horizon | Horizon | -0.9 – 0.9 | 0.14 |
| cloudScale | Cloud scale | 0.1 – 8 | 1.6 |
| cloudCover | Cloud cover | 0.02 – 0.98 | 0.46 |
| streakFreq | Wall detail | 0.2 – 20 | 5 |
| streakRad | Smear | 0.02 – 4 | 0.5 |
| water | Water | 0 – 1 | 0.7 |
| flowerScale | Flower scale | 2 – 120 | 44 |
| flowerDensity | Flower density | 0 – 1 | 0.55 |
| flowerSize | Flower size | 0.05 – 0.6 | 0.26 |
| frameShade | Frame shading | 0.2 – 1.4 | 0.62 |
| haze | Aerial haze | 0 – 1 | 0.85 |
| hazeRange | Haze reach | 0.005 – 1.5 | 0.09 |
| gain | Brightness | 0.05 – 4 | 1.05 |
| contrast | Contrast | 0.15 – 10 | 1.05 |
| saturation | Saturation | 0 – 4 | 1.1 |
| light | Key light | 0 – 3 | 0.35 |
| rim | Rim sheen | 0 – 3 | 0.55 |
Shader parameters — SHDR-31
raymarched shell, volumetric godrays. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Anim speed | 0.015 – 10 | 1 |
| sweepRate | Sweep rate | 0 – 6 | 0.5 |
| radius | Shell radius | 0.4 – 10 | 2.6 |
| swell | Input swell | 0 – 3 | 0.18 |
| warp | Warp divisor | 0.3 – 10 | 0.9 |
| warpFreq | Warp frequency | 0.15 – 30 | 5.25 |
| warpSwing | Warp swing | 0 – 8 | 0 |
| freqSwing | Frequency swing | 0 – 15 | 0 |
| smoothSwing | Softness swing | 0 – 2 | 0 |
| smoothK | Blend softness | 0.015 – 4 | 0.42 |
| rayGain | Godray gain | 0 – 4 | 0.8 |
| rayFalloff | Godray falloff | 0.3 – 100 | 10.5 |
| surfaceLit | Surface light | 0 – 3 | 0.105 |
| ambient | Ambient | 0 – 1 | 0 |
| alphaGain | Alpha gain | 0.05 – 15 | 3 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.45 |
| camDist | Camera distance | 1.5 – 100 | 12 |
| fov | Lens | 0.3 – 20 | 3.5 |
| stepScale | Step safety | 0.3 – 30 | 9 |
| maxDist | Max distance | 3 – 100 | 22 |
Shader parameters — SHDR-32
a galaxy marched as gas and dust inside the ball. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| spin | Disc turn | 0 – 3 | 0.06 |
| churn | Gas churn | 0 – 5 | 0.25 |
| beat | Core beat | 0 – 12 | 0.8 |
| twinkle | Twinkle rate | 0 – 12 | 1.2 |
| camDist | Camera distance | 1 – 50 | 7 |
| focal | Lens | 0.15 – 15 | 2.25 |
| envRadius | Envelope radius | 0.15 – 15 | 2.6 |
| tilt | Tilt (0 edge-on) | 0 – 1.5 | 0.85 |
| arms | Arm count | 1 – 6 | 2 |
| wind | Arm winding | 0 – 8 | 3.4 |
| ragged | Arm fray | 0 – 12 | 3 |
| armSharp | Arm sharpness | 0.3 – 8 | 2.2 |
| falloff | Disc falloff | 0.3 – 12 | 1.7 |
| thick | Disc thickness | 0.01 – 1 | 0.035 |
| bulge | Core tightness | 2 – 200 | 40 |
| core | Core density | 0 – 20 | 5 |
| turbScale | Turbulence scale | 0.5 – 30 | 9 |
| threshold | Clumping | 0 – 1 | 0.35 |
| density | Gas density | 0.1 – 40 | 14 |
| absorb | Dust absorption | 0 – 20 | 3.5 |
| stars | Stars | 0 – 10 | 1.2 |
| starDensity | Star density | 0 – 1 | 0.5 |
| starScale | Star scale | 5 – 200 | 48 |
| hueReach | Hue reach | 0.15 – 1.5 | 0.6 |
| pulse | Beat depth | 0 – 3 | 0.2 |
| breathe | Disc breathing | 0 – 2 | 0 |
| exposure | Exposure | 0.05 – 50 | 1.1 |
| contrast | Contrast | 0.15 – 6 | 1.15 |
| saturation | Saturation | 0 – 4 | 1.35 |
| alphaGain | Alpha gain | 0.05 – 15 | 2 |
| fill | Night fill | 0 – 1 | 0.85 |
| rim | Rim light | 0 – 3 | 0.35 |
| edge | Edge sharpness | 0 – 1 | 1 |
| edgeFade | Halo falloff | 0.1 – 3 | 0.98 |
Shader parameters — SHDR-33
a thermal image, risograph-printed on the ball. Pass any subset through params; anything you leave out follows the active state's preset.
| Key | Label | Range | Default |
|---|---|---|---|
| speed | Drift | 0.015 – 10 | 0.5 |
| spin | Roll | 0 – 5 | 0.05 |
| radius | Radius | 0.15 – 3 | 0.9 |
| scale | Zoom | 0.3 – 8 | 3 |
| freq | Pool scale | 0.2 – 6 | 1.4 |
| warp | Warp | 0 – 3 | 0.6 |
| lo | Cold threshold | 0 – 1 | 0.42 |
| hi | Hot threshold | 0 – 1 | 0.74 |
| gain | Heat gain | 0.1 – 6 | 1 |
| jitter | Heat jitter | 0 – 0.5 | 0.015 |
| bands | Contour bands | 2 – 24 | 7 |
| banding | Contour strength | 0 – 1 | 0.85 |
| contrast | Contrast | 0.3 – 3 | 1 |
| dither | Dither | 0 – 0.6 | 0.05 |
| dots | Screen pitch | 4 – 120 | 46 |
| dotGain | Dot gain | 0.2 – 2 | 1 |
| dotSoft | Dot softness | 0.01 – 0.3 | 0.12 |
| misregister | Misregistration | 0 – 3 | 0.5 |
| ink | Ink density | 0 – 1 | 0.92 |
| printMix | Print mix | 0 – 1 | 0.28 |
| grain | Paper grain | 0 – 2 | 0.35 |
| grainSize | Grain size | 1 – 8 | 2 |
| light | Key light | 0 – 1 | 0.25 |
| rim | Rim light | 0 – 3 | 0.25 |
Performance
Each orb owns one WebGL context, and browsers cap the number of live contexts (commonly around 16). A page with many orbs is fine because they pause offscreen, but if you need dozens visible at once, render them at a smaller size and consider lowering maxDpr to 1.
npx shadcn@latest add @orbkit/all