Design reference on one infinite plane, live at mood.chele.bi. Built by Ege Chelebi (@woosal1337).
Images and video from designers, studios and galleries, laid out on a plane that pans in every direction and never reaches an edge. There is no header, no sidebar and no grid to scroll. You graze it, and open what stops you.
- Infinite in all four directions. One block of columns addressed with modular arithmetic, each wrapping on its own height and phase, so no repeat ever lines up into a seam.
- Three resolutions per image (192px, 480px, 1440px) that stack rather than swap, so a zoom never blanks a tile.
- One
requestAnimationFrameloop owns the transform. Input never touches the DOM, so a pan costs one composited layer move. - The viewer grows out of the tile you clicked, and
object-fitnever changes during the move. - Search dims the plane instead of filtering it, because removing the misses would move the thing you were looking at.
- A collapsible rail of reference sites in liquid glass, the only control that is always on screen.
- Next.js 16 (App Router), React 19, TypeScript, static export
- Tailwind CSS 4 with a zero-chroma token layer in
app/globals.css - Switzer and JetBrains Mono, self-hosted
- Media on Cloudflare R2, served from
media.chele.bi - Deployed on Vercel
No server, no database, no client-side dependency beyond React.
npm install
npm run devMedia is not in this repository. Point at the bucket, or put your own files in public/media/:
NEXT_PUBLIC_MEDIA_BASE=https://media.chele.bi npm run devnpm run dev— dev servernpm run build— production buildnpm run data— rebuild the payload fromdata/boards.jsonnpm run ingest— add files dropped inmedia/incoming/npm run tool <url>— add a site to the railnpm run sheets— contact sheets of everything, for reviewnpm run media:push— syncpublic/media/to R2
app/lib/plane.ts holds the layout, the wrap and the visibility query, and is pure — no React, no DOM. app/Canvas.tsx owns the camera and the mounted tiles. data/boards.json is the one file to edit by hand. Everything under public/data/ is generated.
DESIGN.md records why the interface refuses what it refuses. Read it before changing anything anyone sees.
Every image belongs to the person who made it. Each record keeps its author and a link back to the source, and the viewer shows both. Work is gathered from X, posts.design, seesaw.website, arc.cc and Instagram.
If your work is here and you would rather it were not, open an issue and it comes down.
Code is MIT. The archived images and videos are not covered by it. They belong to their original creators and are collected here as reference. See LICENSE.