PRO

Curve Gallery

A scroll-driven 3D image field inspired by gaspoorf's Curve Gallery. Hundreds of photographs sit along a closed Catmull-Rom path while the camera travels through them; nearby frames swell with a cubic focus falloff, five path controls reshape the same field, and wheel, drag, keyboard, or autoplay share one eased progress value. One self-contained Three.js component using existing hosted images.

Component

BLANK

Curve archive

Loading archive
Gallery curve
Install
npx shadcn@latest add https://ui.aryank.space/r/curve-gallery.json

Installs from ui.aryank.space. To add it by hand, copy the files in Usage below, or register the @compronents namespace via the docs.

Files

API
PropTypeDefaultDescription
imagesstring[]Twelve existing BLANK-hosted photographsTextures distributed repeatedly across the image field.
background / foregroundstring / string"#f2f0eb" / "#171715"Scene fog and minimal interface colors.
planeCountnumber320Number of image planes distributed along the curve.
focusDistance / maxScale / cameraOffsetnumber / number / number4.8 / 11 / 9.5Focus radius, scale peak, and lens distance from the path.
autoplay / autoplayDurationboolean / numberfalse / 12Initial motion mode and seconds per complete path lap.
initialPath / pathLabelsnumber / string[]0 / 01 through 05Initial curve and the five selector labels.
brand / labelstring / string"BLANK" / "Curve archive"Small fixed captions framing the gallery.
Customize
background / foregroundcolor

Canvas fog color and the minimal interface color.

focusDistance / maxScaletext

Radius of the focus zone and the maximum scale of its nearest frame.

imagesasset-url

The existing 12-image Scroll Tunnel set, reused across the curve field.

pathLabels / brand / labeltext

Curve selector labels and the two corner captions.

Dependencies
three