The TODO list from 2023
In April 2023 I made a screensaver in four commits: one HTML file that asked The Met
for a random painting and set it as the background. No title, no artist, nothing to
press. Above the code I left a comment block that starts with // TODO and
runs for fourteen lines. Then I did none of it for three and a half years, and the page
kept serving paintings at the same address the whole time.
That address now answers with something else.
ok new project at screensaver.patrickreinbold.com (or I guess the new version of the old project)
What it is
ArtFrame shows one public-domain painting at a time, full-screen, for 45 seconds, with the label a museum would hang next to it: artist, dates, title, year, medium, size, who gave it. It is laid out for a 4K television seen from a sofa, so there is no cursor and nothing on screen until you press something. The first press only brings the controls up. The second one does the thing. Each painting also drifts very slowly while it is up, because a still image on an OLED for hours is a burn-in risk.
You pick a playlist and it stays for the session, so an evening is one exhibition and not a shuffle.
- paintings
- 117, by 65 artists, all from the Art Institute of Chicago's open-access collection
- playlists
- 8, plus Shuffle, Favourites and Refused
- smallest picture
- 3,867 px on the long edge; 19 of them are 7,680
- made of
- one HTML file and three JavaScript modules, 3,059 lines, no framework
- this build
- 12 October, 23:32
The list
The interesting part is to read the 2023 comment next to the 2026 page. These are my lines from back then, unedited, and what became of each.
history of "last displayed" with artist and name.... so you can go back and find out more
The label is the artist and name. Back steps through the last 120 pieces. There is also a Hold button, and the code says why: you reach for a camera and the painting is already gone.
add a simple "like" button that'll push to storage this URL and ... idk. Just store it for now
and also allow "dislike" to store it and... skip next time or so
F keeps a painting and it shows up in Favourites. B is labelled "Not this" and the piece never comes back, but it is kept in Refused, where you can change your mind.
strongly prefer loading landscape format artwork in landscape and vice versa
This turned from a preference into a set of hard rules. A picture gets in only if its long edge is at least 3,840 pixels and its shape is between 1.30 and 2.60 to one. It fills the screen only if that throws away no more than 22 percent of it; otherwise it hangs whole on a mat. And nothing is ever enlarged. A comment in the code gives the reason: an enlarged JPEG on a 4K television reads as cheap however good the painting is.
I do very much want it to be scrollable, so that you can choose the excerpt you see in cover mode
Cropping from the centre is wrong surprisingly often, because the subject of a painting is rarely in the centre. So every painting can be moved, zoomed and given a black, grey or white mat, and the choice is saved with the work. Twelve of the 117 carry a framing chosen by hand so far.
hide images behind my own API cause that's def the unique work, collecting and curating them
although the best product would probably be the actual screen saver and themes etc...
Both happened. The 2023 page called the museum live on every load. This one reads a single file of 117 entries and the pictures next to it on my own server. The museum search still exists, but it runs once, offline, to build that file. The reason is in the code as well: nothing that hangs on a wall for an evening should depend on a museum's API being up. And the themes are the playlists.
The very first commit in 2023 was one hard-coded picture, Hokusai's Great Wave. The library now holds three impressions of it.
Still rough
It is one museum. The code knows how to ask the Met and Cleveland too, but everything on the server today is from Chicago. The playlists are uneven: Masterpieces has 40 pieces, Gardens has four and After Dark three, and the cover of Gardens in the picture above is an altarpiece. It only takes landscape pictures, so no portraits at all.
On the public page your favourites and refusals stay in your own browser. The part that sends them to a server is not there.
The comments talk about Apple TV and Roku, which cannot run a web page, and about keeping the curation separate so it can feed them. Neither app exists. What exists is a page you open in a browser and put into full screen.
Letter keys work everywhere: N next, V back, H hold, F keep, B not this, P playlists, G to see the whole painting, I to hide the label.