Проект Avian Visitors — форк BirdNET-Pi с коллажем в стиле кацё-э поверх него. BirdNET-Pi ловит звук с USB-микрофона на Raspberry Pi и определяет виды через акустический классификатор Cornell BirdNET. Всё это висит на bird.onethreenine.net.
Собрать такую станцию несложно. Нужны Raspberry Pi, microSD-карта, USB-микрофон, плюс ключи Gemini API (для иллюстраций) и eBird API (чтобы фильтровать виды по региону). Установка: ставите Raspberry Pi OS Lite (64-bit) через Raspberry Pi Imager, задаёте имя хоста birdnet, включаете SSH. Затем шёлкаете установщик — он клонирует форк, запускает установщик BirdNET-Pi, делает симлинк коллажа в корень Caddy и перезагружается. Всё занимает 20–40 минут. После перезагрузки коллаж доступен по http://birdnet.local/, а стандартный интерфейс BirdNET-Pi — по http://birdnet.local/index.php.
Чтобы выложить наружу, можно настроить Cloudflare Tunnel (публичный HTTPS без порт-форвардинга), Home Assistant REST sensor (создаёт сенсор sensor.latest_bird с последним обнаружением) или MQTT bridge (публикует новые виды в шину). В статье есть все команды и примеры конфигов.
Коллаж поставляется с 450 встроенными иллюстрациями самых частых североамериканских видов — сгенерированы через модель gemini-2.5-flash-image. У каждого вида два ракурса: сидя и в полёте. Промпт просит стиль японской гравюры эпохи Эдо с чёткой анатомией (два крыла, две ноги, одна голова). Gemini иногда галлюцинирует лишние конечности — в репозитории уже лежат отфильтрованные изображения. Аудит показал ~3% анатомических дефектов для сидячих поз и ~5% для летящих.
У каждого вида есть бинарная альфа-маска — силуэт, упакованный в base64. Фронтенд использует маски для упаковки плиток по спирали от центра: сначала самые частые виды, потом остальные. Чтобы плитки не лезли друг на друга, проверяют пересечение масок. Если какая-то плитка вылезает за край экрана, все сжимаются на 7% и перепаковываются (до 10 попыток). Так коллаж выглядит хорошо на любом экране — от 390px до 2560px.
Фронтенд опрашивает эндпоинт последних обнаружений каждые 30 секунд. Когда в окно попадает новый вид, он подмешивается в раскладку. Переупаковка ~10 видов занимает меньше 20ms. Можно выбрать период: 1 час, 12, 24, 7 дней или всё. Клик по плитке открывает модалку с описанием из Wikipedia, записями mp3 (с спектрограммами) и ссылками на eBird.
Простая и полезная штука, чтобы следить за пернатыми соседями.