PRO

Blur Study Box

Sixty-four Box3D capsule bodies move behind a frosted render pane, with depth controlling each capsule's blur radius, diffusion ramp, opacity, and dithered edge. The original ninety-six depth samples run in one instanced WebGPU draw instead of sixty-four separate meshes. Drag bodies through a spring joint, set the optical and physical model through props, and export verified square PNGs from 2,048 to 24,000 pixels through tiled GPU readback and stripe-streamed compression.

Component
Initialising renderer
Install
npx shadcn@latest add @compronents/blur-study-box

Installs from ui.aryank.space. Needs a registry token and a one-time @compronents entry in components.json. The docs walk through both.

Files
Checking access…
API
PropTypeDefaultDescription
settingsPartial<StudySettings>source defaultsOptical and physical model: blur, blurCurve, blurDistance, paneZ, opacityFalloff, volumeDensity, ditherStrength, boxDepth, rodLength, rodRadius, popStrength, popTempo, showFloor. Anything left out keeps the study's own value.
renderScalenumber1Device pixels per CSS pixel. Cost scales with its square, so 2 is four times the work of 1.
pausedbooleanfalseHolds the simulation still. Reduced-motion users get this regardless.
refRef<{ exportPng }>—Imperative handle. Call exportPng(size, onProgress?) to render and download a print-size PNG.
classNamestring—Optional class name for sizing the study container. Give its parent an explicit height.
Dependencies