Inifinite Canvas

An infinite, pannable spatial gallery for Webflow. Images live in a 3D
space — drag to pan in X/Y, scroll to fly through Z. The closer they
get, the bigger and more opaque they become. Pass through them and
they fade into the back.
Pure vanilla JS, no dependencies. Drop your images into the plane,
publish, done.
How it works
— Windowing: only the visible cells are kept in the DOM and reused
as you move. Cost stays flat no matter how far you travel.
— Deterministic placement: each cell hashes to the same position,
scale and image, so revisiting a zone never jumps.
— Perspective without WebGL: each image is projected with FOCAL / dz,
giving real depth from plain CSS transforms.
— Mouse parallax + intro animation with random per-tile stagger.
Inspired by Edoardo Lunardi's Infinite Canvas tutorial on Codrops
(React Three Fiber / WebGL). This is a 2D, Webflow-native port —
no build pipeline, no React, no Three.js.
