Image 1 — A 4-inch frame that plays artworks from museums' open collections via IIIF
Image 2 — A 4-inch frame that plays artworks from museums' open collections via IIIF
Image 3 — A 4-inch frame that plays artworks from museums' open collections via IIIF
Image 4 — A 4-inch frame that plays artworks from museums' open collections via IIIF
Image 5 — A 4-inch frame that plays artworks from museums' open collections via IIIF
Image 6 — A 4-inch frame that plays artworks from museums' open collections via IIIF

A 4-inch frame that plays artworks from museums' open collections via IIIF

Back in June I shared a survey of which museum/library APIs are actually usable for browsing collections. This is the project that survey came from.

This is p3a, an open-source (Apache 2.0) device I built. It is a 4-inch, 24-bit, 720x720 desktop frame that plays artworks straight from museums' own IIIF endpoints. It uses no server, no cloud account, no phone app or any software to install on your computer. The hardware is a $40 off-the-shelf ESP32-P4 board (comes ready out of the box), so setup takes minutes, almost like a consumer product. It is powered by USB-C and connects to the internet via wi-fi.

p3a currently rotates through hundreds of thousands (!!) of openly licensed works from:

- Rijksmuseum

- Victoria and Albert Museum

- Wellcome Collection

- Statens Museum for Kunst

- Harvard Art Museums

- Smithsonian

The Art Institute of Chicago unfortunately dropped its support very recently, but other institutions are on the roadmap of the p3a project.

Happy to go deeper on implementation details (Linked Art walks, compliance levels, rate-limit etiquette) or anything. The project is open source : https://github.com/fabkury/p3a . I personally have two p3a's: one at home, one at work.

u/fabpub — 5 days ago

First-Class Request: skill for one-off requests

I created the /fcr (First-Class Request) skill to encapsulate a very common pattern at my work: having to respond to one-off requests related to something I am working on, not part of the main line of work in the given project.

https://preview.redd.it/ugv816gswshh1.png?width=928&format=png&auto=webp&s=01ff69f0756200f1abd10810f33d1e7e3b5fe3fe

Link: https://github.com/fabkury/fcr

The central idea of this skill is to imagine the current repository (or just current folder, if it's not a Git repo) itself as an entity that can "receive a request." The /fcr command receives a request body and:

  • Creates a new, numbered sub-folder just for that request.
  • Asks you questions before acting. Never skips this.
  • Leaves a full audit trail:
    • Copy of the request itself
    • All input files
    • All code
    • All output files

The question-asking step is something that I've been using thoroughly (not only in this skill) and highly recommend. It makes the model surface its understanding of what you asked, as well as its ideas and capabilities.

reddit.com
u/fabpub — 14 days ago

"Task With Questions", my most used skill

I got tired of typing variants of the same thing at the end of many prompts:

"""

...

...

Please do this:

  1. Study this task.

  2. Ask me questions to collect my preferences and final decisions about this task.

  3. Then proceed with this task.

"""

So I made twq, a 24-line skill that does the above (but a bit better). It is similar in spirit to grill-me, but execution-oriented: grill-me pressure-tests a big plan; twq is for everyday tasks where you just want Claude to surface its assumptions before acting.

This is the skill I use the most!

Example of \"Task With Questions\"

Public domain (CC0): https://github.com/fabkury/twq

u/fabpub — 1 month ago

Vibecoding a technical model for 3D printing?

I hope this is not off-topic!

I am considering an ESP32-S3-based project (a 64x64 RGB LED matrix) that I know I can code with Claude, but the device would need a 3D printed enclosure to securely contain the microchips and cables and serve as the body of the device as a whole.

That is, the 3D print would need to match all the right measurements at all the right places, such as:

- locations and sizes of the screw holes on the PCB

- locations and sizes of the screw holes on the LED matrix

- the size of the PCB with all its components, in 3 dimensions

- space allowances for the cables, connectors, potentially ventilation

Has anyone ever had success in using AI to produce this kind of 3D model for printing? Is there an approach that I should learn about?

Any pointers or comments are appreciated.

reddit.com
u/fabpub — 2 months ago

A ranked survey of museum IIIF APIs

I've been building a little open-source device (called "p3a") that, among other sources, pulls public-domain art straight from museum/library/gallery IIIF endpoints and shows it on rotation on a 4-inch screen.

The starting point for this feature was a research problem: which institutions' APIs are actually usable if you want to...

- list collections,

- paginate through them,

- jump to item X of Y,

- search by keyword?

I surveyed tens of sources (museums, libraries, aggregators), sorted them into tiers with a capability matrix, and added live-endpoint verification notes. The result is here: https://github.com/fabkury/p3a/blob/main/reference/museum-art/docs/museum-candidates.md

The kinds of things that I found:

- the Met and Cleveland have lovely CC0 APIs but expose images as plain CDN URLs, no IIIF at all.

- the recurring headache is pagination: offset/range (easy) vs. cursor-only (Rijksmuseum) vs. walk-the-collection (Getty, Bodleian, e-codices).

Normalizing things like that behind one "next/prev/jump" interface was basically the whole game.

On the upside, IIIF hands you a JPEG on-demand at whatever canvas size you ask for. This turned out to be ESSENTIAL, since the ESP32-P4 in p3a can't load large multi-megapixel originals. "Give me this artwork at 720px" is exactly the primitive I needed.

I'd love this group's comments or corrections: anything I misjudged, or capability-ready institutions that I should add?

u/fabpub — 2 months ago

A 4-inch screen that accesses museum artworks directly via IIIF

This is p3a, an open source ESP32-P4-based art player I built.

It is a 4-inch, 720x720 pixels desktop art frame that, among other sources, plays artworks straight from museums' IIIF endpoints. No cloud, no proxy, no smartphone middleman app. You connect it to a USB charger or power source, the firmware builds the Image API URL and pulls the JPEG on-device.

It currently rotates through hundreds of thousands (!!) of free artworks from:

- Art Institute of Chicago

- Rijksmuseum

- Victoria and Albert Museum

- Wellcome Collection

- Statens Museum for Kunst

- Harvard Art Museums

- Smithsonian Institution

These institutions offer the online endpoints that fit the needs of p3a (others are listed for the future). This is a payoff for a decade of open-access and IIIF work. Free content consumable by a gadget a hobbyist can flash and configure truly in minutes. The fact that IIIF provides JPEGs at user-requested canvas sizes is critical for the ESP32-P4 chip, otherwise the files would most likely be too big to load.

The device also lets you:

- see each artwork's author, title, date, source

- easily save ("pin") artworks into "playlists" by swiping on the touchscreen

It's a companion to museum-going: something that keeps rotating collections on a shelf. My current personal favorite is the "Chicago Artists" tag of the Art Institute of Chicago.

More info about this project can be found on GitHub, or feel free to ask me here.

u/fabpub — 2 months ago
▲ 109 r/pico8

Playing PICO-8 on 4-inch ESP32-P4 display

This is p3a, an open-source ESP32-P4 pixel-art player I built. Its screen is 4 inches big, 720x720 pixels. As a special feature, it can act as a PICO-8 monitor and speaker.

The device serves a web page that runs fake-08 (open-source PICO-8 emulator) as WASM in the browser. You load a cart (.p8 or .p8.png file), play with the keyboard, and frames stream to the display over WebSocket. Game audio comes out of p3a's speaker. The ESP32-P4 isn't emulating PICO-8 itself, it's the monitor and speaker.

All info on the repo: https://github.com/fabkury/p3a

u/fabpub — 2 months ago

The easiest animated art frame

It's called p3a. A 4-inch display that sits on your desktop (or shelf) and cycles through art it takes directly from the internet.

The hardware is ESP32-P4 and comes ready out of the box (!!). No soldering, no assembly. You unbox, insert a microSD card into the slot, then flash it using your web browser and a USB-C cable. No IDE, no toolchain, no command line.

What it plays:

- Trending GIFs from Giphy

- Pixel art from Makapix Club (a pixel art social network)

- Traditional art from six museum APIs: Art Institute of Chicago, Rijksmuseum, V&A, Wellcome, SMK, Harvard Art Museums

- Your own local files from the microSD card

Plus one special bonus feature:

- Play PICO-8 games on the device

The board (the whole device) is the Waveshare ESP32-P4-WIFI6-Touch-LCD-4B (https://www.waveshare.com/product/arduino/boards-kits/esp32-p4/esp32-p4-wifi6-touch-lcd-4b.htm?sku=31416):

- 4-inch 720x720 px 24-bit IPS display with capacitive touch

- ESP32-P4 plus ESP32-C6 co-processor handling Wi-Fi 6

- 3W speaker

- Flashing via USB-C

Makezine article: https://makezine.com/projects/desktop-pixel-art-player-p3a/

Code, docs, and the browser flasher: https://github.com/fabkury/p3a/

u/fabpub — 3 months ago
▲ 44 r/esp32projects+1 crossposts

I made the easiest internet art frame

It's called p3a. A 4-inch display that sits on your desktop (or shelf) and cycles through art it takes directly from the internet.

The hardware comes ready out of the box (!!). No soldering, no assembly. You unbox, insert a microSD card into the slot, then flash it using your web browser. No IDE, no toolchain, no command line.

What it plays:

- Trending GIFs from Giphy

- Pixel art from Makapix Club (a pixel art social network)

- Traditional art from six museum APIs: Art Institute of Chicago, Rijksmuseum, V&A, Wellcome, SMK, Harvard Art Museums

- Your own local files from the microSD card

Framework note: under the hood it's ESP-IDF on an ESP32-P4, not Arduino-core. Board is the Waveshare ESP32-P4-WIFI6-Touch-LCD-4B (https://www.waveshare.com/product/arduino/boards-kits/esp32-p4/esp32-p4-wifi6-touch-lcd-4b.htm?sku=31416). I'm posting here because this feels more like a maker conversation than a framework one.

Code, docs, and the browser flasher: https://github.com/fabkury/p3a/

Makezine article: https://makezine.com/projects/desktop-pixel-art-player-p3a/

u/fabpub — 3 months ago
▲ 52 r/esp32

IIIF on ESP32: countless artworks for free

IIIF is how major museums expose their image collections online for free. You can specify an image resolution, and the server produces JPEG files on demand. It's pretty neat.

So I brought it to p3a, my ESP32-P4 pixel-art frame. Hundreds of thousands of artworks from six institutions now stream straight to the device:

- Art Institute of Chicago

- Rijksmuseum (Amsterdam)

- Victoria & Albert Museum (London)

- Wellcome Collection (London)

- SMK / Statens Museum for Kunst (Copenhagen)

- Harvard Art Museums

IIIF itself is standardized, but each museum's discovery layer is idiosyncratic. AIC has its own search API, Rijks needs a Linked-Art resolver walk, Harvard needs a BYOK key... so each museum gets its own dispatcher.

p3a runs on the Waveshare ESP32-P4-WIFI6-Touch-LCD-4B (720×720 24-bit IPS). It plays animated WebP/GIF, static PNG/JPEG, and connects directly to Makapix Club and Giphy. Links are in the comment below.

u/fabpub — 3 months ago