Drop in a .glb and it dissolves into a living cloud of points. The component samples the actual surface of your meshes - area-weighted, so flat panels and thin edges get their fair share of points instead of clumping on dense geometry. Up to 400,000 points, each one breathing on its own phase. Five cursor behaviours: push the cloud aside, pull it in, swirl it, reveal the shape only where you point, or leave it still. Orbit, zoom, auto-rotate. Bloom with adjustable strength, radius and threshold, additive or normal blending, and a two-colour gradient across the cloud. Built to behave: Three.js is bundled with the component - nothing is fetched from a CDN at runtime - and it only starts after your page has painted, on scroll or on click, with a poster image covering the wait. Nothing renders inside the Framer editor, so your canvas stays fluid, and prefers-reduced-motion is respected. Use an uncompressed .glb.
Drop in a .glb and it dissolves into a living cloud of points. The component samples the actual surface of your meshes - area-weighted, so flat panels and thin edges get their fair share of points instead of clumping on dense geometry. Up to 400,000 points, each one breathing on its own phase. Five cursor behaviours: push the cloud aside, pull it in, swirl it, reveal the shape only where you point, or leave it still. Orbit, zoom, auto-rotate. Bloom with adjustable strength, radius and threshold, additive or normal blending, and a two-colour gradient across the cloud. Built to behave: Three.js is bundled with the component - nothing is fetched from a CDN at runtime - and it only starts after your page has painted, on scroll or on click, with a poster image covering the wait. Nothing renders inside the Framer editor, so your canvas stays fluid, and prefers-reduced-motion is respected. Use an uncompressed .glb.