← All work
Live

A Gallery You Walk Through In A Browser

A three-dimensional exhibition room you move around in a phone browser, with work on the walls, labels beside it and a second room through a doorway.

Built by
Eric Vegas
Started
2026-08-01
Last updated
2026-09-23

The problem

A collection only works in a room. Photographs of a room are not the room: scale disappears, the sequence the work was hung in disappears, and so does the part where you choose what to walk up to. The usual substitute is a grid of thumbnails, which answers none of that.

Put the visitor inside the space, on whatever device they already have, with nothing to install.

What I built

A walkable exhibition built with three.js and WebGL: a room with work hung at eye level, wall labels beside each piece, a title wall, and a doorway through to a second room. It runs in a browser on a phone. It is served from this site at /gallery.

How it works

The room is real geometry rather than a panorama, so a visitor moves through it instead of pivoting inside a photograph. Everything is keyed off one exhibition description, so hanging a different show is a data change rather than a rebuild.

My role

Eric built the gallery engine, the room, the hanging system and the interaction. The exhibition currently running in it is his own demonstration show, and it is labelled as a demo. The engine's first outing was a client exhibition; that engagement is undocumented here because it is the client's to disclose, not his.

The hard part

The device it has to run on. A 3D room is easy on a desktop with a graphics card and hard on a phone browser that a visitor opened from a link, and a phone is what most people will use. That is a budget, not a feature: the geometry and the textures are sized so the room loads and moves on a handset rather than so it looks best on a workstation.

Proof

Artifacts

Claims, and what backs each one

  • The gallery is live on this site and runs in a browser with nothing to install.

    Evidencehttps://www.ericvegas.com/gallery returned HTTP 200 on 2026-09-25 and serves the exhibition as a static single-page application.

  • It is a real three-dimensional room rendered with three.js and WebGL, not a panorama or a slideshow.

    EvidenceThe application is a Vite build whose scene is constructed in three.js and rendered through WebGL. A visitor moves through the room rather than rotating within a fixed viewpoint.

Results from client deployments are shared with permission on a call.

What I learned

The engine outlived the show. Keeping the room and the exhibition in separate layers meant that when the original show came down, what remained was a reusable piece of software rather than a dead site, and rehanging it was a change to a data file.

Technologies

  • three.js
  • WebGL
  • React
  • Vite
  • Vercel

Related work

If something here is close to a problem you have, the useful first message is what the thing has to do and what it has to talk to.

Work with me →