← Back to all posts
Tools

Fugleramme's E-Ink Frame Uses BirdNET to Hear Birds and 1800s Plates to Draw Them

September 21, 2026 · 05:13 UTC · Tools
Fugleramme's E-Ink Frame Uses BirdNET to Hear Birds and 1800s Plates to Draw Them

TL;DR

Fugleramme (Norwegian for "bird frame") is an MIT-licensed Raspberry Pi project that listens to a garden through a microphone, identifies birds by sound with the BirdNET-Go classifier, and draws each species on a 13.3-inch color e-ink panel using cut-outs from real 1800s natural-history plates. Its Show HN reached 2,379 points and 262 comments, the second-highest-scoring Show HN of 2026 in Hacker News' Algolia index. The design choice worth stealing: AI does the listening, and nothing generative touches the pictures.


What shipped

Bergen-based developer Arne Giacomo Munthe-Kaas posted the project on September 15. The repo was created on July 8 and now sits at 3,192 GitHub stars, 11 contributors and release v0.23.0, cut on September 19. A live demo shows whatever birds are currently audible outside the author's kitchen window in Norway.

The inspiration was analog: a WWF poster by Axel Thorenfeldt hanging on the author's wall. The goal was a version of that poster that shows only the birds actually visiting the garden, updated as they arrive.

How the pipeline works

Fugleramme is a companion app, not a detector. BirdNET-Go listens on the mic and runs the classifier. Fugleramme polls its API, matches each detected species to an illustration, and packs the birds onto a textured paper page, with larger birds toward the center, sized by real body mass from the AVONET dataset. An empty garden gets a bare perch.

Two details keep a slow panel sane. The screen only redraws when the set of birds changes, and the collage is dithered down to the panel's six colors. The project's hardware guide notes that the panel itself "takes half a minute anyway" to redraw.

the only AI at runtime USB micgarden audio BirdNET-Goclassifier match speciesto a plate pack by mass6-color dither e-ink redrawon change only 6,500+ species Pillow + NumPy, no generative model
Fugleramme adds no model of its own: BirdNET-Go does the listening, and everything after the species label is ordinary image code.

If you already run BirdNET-Go somewhere else, the frame can read from it over the network, which turns the Pi behind the panel into a mostly idle renderer. The panel is optional too: the same view is served as a web kiosk, and a container image runs it without a Pi at all.

Where the AI is, and where it is not

Several commenters in the Hacker News thread asked whether the birds were AI-generated. The author's answers in the thread were unusually specific:

  • Detection: BirdNET, from the Cornell Lab of Ornithology and Chemnitz University of Technology, which the author calls "a classifier, not a generative model." Its current v2.4 model covers more than 6,500 bird species.
  • Birds: "No bird has been prompt/diffusion generated." Every cut-out comes from a scanned plate, and a manifest links each file to its source.
  • Perches: diffusion-based tools removed the original birds from perch branches, and the attribution file says those perches were "retouched with generative AI."
  • Code: LLMs helped write code and the image-processing scripts for cutting, contrast and color correction.
  • Runtime: the collage is Pillow and NumPy. No LLM or diffusion model runs on the frame.

That split is the whole trick. A classifier is a librarian: it can only hand you a label already on its shelf. A generator is a novelist: ask it for a chaffinch and it will write you one, occasionally with a spare leg.

The same idea, drawn by Gemini

Fugleramme is not the first BirdNET picture frame, and the thread said so loudly. Several commenters called it a copy of Avian Visitors, a project Teddy Warner published in May 2026. The author replied that fugleramme shares no code or art with it, and credited the Thorenfeldt poster as the spark. The README now names Avian Visitors as the source of the live-frame idea and lists five other similar projects.

The two projects differ most visibly in where the pictures come from. Avian Visitors also runs Cornell's BirdNET on a Pi and can drive a 13.3-inch E Ink panel, but its 666 illustrations of 333 North American species were generated with Google's gemini-2.5-flash-image model in an Edo-period woodblock style. Its write-up is candid about the cleanup: the repo ships an audited set with "extra wings, disembodied feet, and training-image watermarks already removed."

same BirdNET idea, different art source Hacker News points fugleramme (plates)2,379 Avian Visitors (Gemini)137 GitHub stars fugleramme (plates)3,192 Avian Visitors (Gemini)624
Same classifier, different pictures: the build from real plates drew about 17x the HN points and 5x the stars. Timing and audience differ, so read it as a signal, not a test.

This is not a controlled experiment. The posts went up three and a half months apart, Avian Visitors was not a Show HN, and the art styles and species regions differ. But the gap is large, and the comments explain part of it: a recurring question under the fugleramme post was whether its art was real.

The parts list

  • Board: Raspberry Pi 5 with 2 GB, which the guide says is enough to run everything.
  • Cooling: the official active cooler, which the guide calls "not optional" because BirdNET-Go classifies around the clock.
  • Panel: Pimoroni's Inky Impression 13.3" (Spectra 6, 1600x1200), listed at £191.25 before VAT, or £229.50 with UK VAT.
  • Mic: a Clippy EM272Z1 through a UGREEN USB audio adapter, since the Pi has no audio input.
  • Frame: an IKEA RÖDALM 21x30, because the panel board is exactly A4.

The most useful line in the guide is "The mic matters more than the Pi." A frame-only build skips the mic entirely and runs on a Pi 4 or a Pi Zero 2 W through Pimoroni's inky library, reading detections from a BirdNET-Go box elsewhere on your network. The hardware section also admits one open problem with refreshing candor: hanging it on the wall.

The curation is the product

Code for this kind of frame is the easy part; the README lists six similar public projects. The hard part is the art library. The attribution file credits John Gould's The Birds of Europe (1832-1837), the von Wright brothers' Svenska Fåglar, H. E. Dresser, J. G. Keulemans and more, mostly from scans hosted on Wikimedia Commons.

The launch pulled in contributors fast. The art manifest committed the day before the Show HN held 831 bird cut-outs across 431 species entries. The current manifest lists 912 across 480, including 50 cut-outs from Audubon's Birds of America, the source the author pointed North American readers to in the thread. The repo has taken 83 commits since the post went up.

bird cut-outs in the classic art set, by source (912 total) von Wright brothers429 John Gould396 J. J. Audubon50 16 other sources37 Sep 14: 831 cut-outs, 0 Audubon. Sep 21: 912 cut-outs, 50 Audubon.
Two 19th-century folios supply most of the birds; the Audubon plates arrived after the Show HN, once North American readers asked for coverage.

Coverage still follows the plates, so the Nordics, Britain and Germany are strongest. The author's point in the thread is that you do not need a continent. BirdNET filters by location, a typical garden needs a couple of dozen species, and the Bergen frame logged about 40 visitors over the summer.

What you can reuse

  • Build the companion, not the model. Fugleramme ships zero ML of its own. It reads a local classifier's API and spends its effort on the output, a pattern that fits any self-hosted detector with an API and a dull dashboard.
  • Put AI where errors are checkable. A wrong species label can be checked against the recording. A wrong wing on a generated bird is something your users find for you.
  • Render on change. For slow displays, diff the state, not the clock.
  • Disclose precisely. "No AI" would have been false: the classifier, the perches and the code all involved it. A line-by-line account of where AI was used is much harder to argue with than a blanket denial.
  • Read the model license before the business plan. The frame's code is MIT, but BirdNET's models and BirdNET-Go are CC BY-NC-SA 4.0. One commenter asked why this is not on Amazon. The non-commercial term on the detection side is the first thing anyone selling frames would have to solve.

Caveats

  • Early software. The README warns to expect "the odd bug and a few unpolished edges."
  • Regional art. Coverage outside Northern and Central Europe is thin, though North American plates are now arriving.
  • Non-commercial detection. The frame code is MIT, but BirdNET's models are CC BY-NC-SA 4.0, which rules out commercial use under those terms.
  • Attention is not adoption. HN points and GitHub stars measure interest, not frames actually hanging in kitchens.

Key Takeaways

  • Fugleramme is an open-source Raspberry Pi e-ink frame that identifies garden birds by sound with BirdNET-Go and shows them as cut-outs from real 1800s plates.
  • Its Show HN hit 2,379 points, second among Show HN posts in 2026, and the repo has 3,192 stars.
  • AI does only the listening. The classifier covers more than 6,500 species; the collage is Pillow and NumPy, and generative tools touched the art only to retouch perch branches.
  • A similar build with Gemini-generated birds drew 137 points in May. Not a controlled test, but whether the art was real came up again and again in the fugleramme thread.
  • The art library grew from 831 to 912 cut-outs in a week, including 50 new Audubon plates.
  • BirdNET's CC BY-NC-SA 4.0 license stands between this build and a product you could buy.

Sources: fugleramme on GitHub, fugleramme docs, fugleramme hardware guide, fugleramme art attribution, fugleramme art manifest, Show HN thread, BirdNET-Go, BirdNET-Analyzer, BirdNET at the Cornell Lab, Pimoroni Inky Impression, Avian Visitors write-up, Avian Visitors on GitHub, Avian Visitors on Hacker News.

AIBirdNETRaspberry PiE-InkOpen SourceEdge AIShow HNPublic Domain
CONSOLE
$