Colophon
721 works by 48 artists, borrowed from institutions that put them in the public domain and gave the scans away. Here is where they came from, and how the rooms around them are made.
The art
Every work is in the public domain, and none of it is ours. It is here because the museums below digitised their collections and released the results without restriction — which is a decision each of them made deliberately, and paid for.
- The Art Institute of Chicago544 works
- The Cleveland Museum of Art116 works
- Rijksmuseum, Amsterdam34 works
- The Metropolitan Museum of Art27 works
Each work carries its own credit line on its plaque and in its detail view, with a link back to the object page at the lending institution. If you are looking for provenance, catalogue numbers or conservation history, go there — they hold the record, we only borrowed the picture.
How we decide something is public domain
We never infer it. A work is included only if its source explicitly flags it as public domain or CC0 in the API response, and only if its artist died in 1931 or earlier — life plus 95 years, a deliberately conservative margin over the life-plus-seventy that most jurisdictions use. The roster clears it comfortably: the most recently dead artist here died in 1926. A work whose licence is merely probable fails the build rather than being quietly included.
Public domain means these images are free for you too. Ours are re-encoded derivatives; for archival files, use the source links.
Real size
Everything hangs at the dimensions the museum recorded, in centimetres. This is the whole point of the project, so the pipeline refuses to guess: where a work’s stated proportions disagree with its own photograph by more than 12%, we assume the measurement describes a different impression and drop the work rather than hang it at an invented size. Where a size had to be inferred rather than read, the label says so.
The deep zoom
721 of the works can be inspected closely — 53,862 image tiles in all, at a median of 74 pixels per centimetre of real canvas. That is the number worth quoting rather than a pixel count: it says how much of the actual surface you are being shown, and it is why a small etching needs far fewer pixels than a large oil to read just as closely.
The tiles are served from our own storage, not from the museums’ image servers. Rehosting is what their licences permit and what their infrastructure deserves — a gallery that hotlinked would make its own popularity someone else’s bandwidth bill.
The building
There is no 3D model. No photogrammetry, no scanned interior, nothing made in Blender or bought from an asset store. The floor plan, the arches, the coffered dome, the parquet, the plaster and the frames are all generated in code when the page loads, from a single source of truth describing the rooms.
The frames are mitred procedurally to each work’s proportions, so no two are quite the same. The lighting is precomputed rather than simulated: there are no runtime lights in the building at all.
Typefaces
Spectral for names and titles, Lato for labels and metadata. Both are open licence, subset to the characters this site actually uses, and served from our own origin — nothing here calls out to a font CDN.
Built with
Next.js and React on the page, three.js for the room, OpenSeadragon for the deep zoom, sharp for the image pipeline. The art is harvested at build time; a visitor’s browser never calls a museum API.
exhbt is a personal project. Mistakes in attribution, dating or measurement are ours and not the lending institutions’ — if you spot one, the object page at the museum is the authority.