PRO

Cylinder Block Gallery

Photographs mounted as curved panels on the inside of a tall cylinder you fly up through. Each panel is a hand-built buffer geometry bent to the cylinder's radius, so the picture wraps with the wall instead of floating flat in front of it, and its UVs are inset a tenth on each side so the edges do not smear. Panels sit in horizontal bands with a random angular jitter, the ring turns on its own at a constant crawl, and scroll velocity is injected as extra spin that decays on its own. Three.js and Lenis, no animation library.

Component

Silhouette

Microfolio 2017 - Ongoing

Info

Install
npx shadcn@latest add https://ui.aryank.space/r/cylinder-block-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[]50 BLANK photographsPool drawn from at random per panel, so the same set gives a different wall each mount.
rows / panelsPerRow / rowSpacingnumber12 / 4 / 3.25Density of the wall. More panels per row with less spacing reads as a mosaic; fewer reads as an archive.
panelSize[number, number][5, 3]Panel width and height in world units before the curve.
embeddedbooleantrueOwn the scroll container. Set false to drive it from the window scroll.
Customize
rowstext

Horizontal bands of panels up the cylinder.

panelsPerRowtext

Panels evenly spaced around each band.

Dependencies
threelenis