Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

joebird-library

Bird plates that JoeBird frames have already generated, so yours does not have to. When a frame hears a species it cannot draw it looks here first; a hit is downloaded, its hash checked against index.json, and installed - no OpenAI token spent. Only then does it generate its own.

Every image here is AI-generated, in one consistent style: a single adult bird in side profile, drawn as a nineteenth-century natural-history plate, cut out with an ivory halo ready for the frame's paper. Nothing is a scan, a photograph or anyone's artwork. See ATTRIBUTION.md for what that means.

Layout

birds/<key>.png     the plates, named by BirdNET's scientific name, -2 -3 for variants
birds/<key>.json    optional, beside a plate: its manifest entry (model, etc.)
index.json          species key -> files, with sha256 - what a frame reads; generated
manifest.json       per-file record, the same shape the frame keeps; generated
tools/              build_index.py rebuilds the two generated files; a workflow runs it on merge
LICENSE             CC0 1.0

A frame points at this repository's raw URL by default:

BIRDART_LIBRARY=https://raw.githubusercontent.com/skyjoe66/joebird-library/main

Any repository with the same layout works in its place.

Contributing a bird

Your frame already made it; put it where the next frame can find it. There are two ways, and they end in the same place: a pull request here, which the library's owner looks at and merges.

From the frame (automatic)

Open your frame's gallery - http://<pi>/birdart/gallery - and press Send to library under the plate. The bot adds the file, its manifest line and a rebuilt index.json on a branch and opens the pull request under your GitHub account. It needs GitHub's gh on the Pi, logged in once:

sudo apt install gh          # Raspberry Pi OS / Debian; other systems: github.com/cli/cli#installation
gh auth login                # GitHub.com -> SSH -> "Login with a web browser": enter the code it shows

If you can push to this repository the branch goes here; otherwise gh forks it under your account and the branch goes there. Either way the gallery shows the pull request's link afterwards, and in the shared library once it is merged. A plate the library already has offers no button.

By hand

No gh, no terminal, no clone - a browser and a GitHub account.

  1. Get the picture off your frame. Open the gallery, http://<pi>/birdart/gallery, right-click the plate and Save image. It saves under its proper name, e.g. agelaius-phoeniceus.png. Keep that name.
  2. Fork this repository - the Fork button at the top of this page - and in your fork open the birds folder. Choose Add file -> Upload files, drop the PNG in, and commit. (If the species is already there, name yours <key>-2.png, -3.png - the next free number.)
  3. Open a pull request from your fork to this repository's main - GitHub offers the button as soon as your fork is ahead. Say which bird it is.

That is all. manifest.json and index.json are rebuilt automatically when the pull request is merged (tools/build_index.py, run by the index workflow), so a contribution never edits a file another contribution might be editing too.

What happens next

Every pull request notifies the owner. It shows the plate itself - GitHub renders the image in the diff - and a one-line description. The owner checks that it is the right species, whole, with both legs, and in the style, then merges or closes it. On merge the index workflow rebuilds index.json; within an hour every JoeBird frame reads it, and the next frame to hear that bird downloads your plate instead of generating its own.

By opening a pull request, either way, you confirm the image was generated by your JoeBird - not scanned, not drawn by hand, not taken from anywhere - and you dedicate it to the public domain under CC0, the same as everything here.

A plate that does not look like the others, or whose bird is wrong, will be turned down; the point of a shared library is that every frame can trust what it gets.

Licence

CC0 1.0 - the full text is in LICENSE. Use them for anything, no credit required.

About

Shared library of JoeBird's generated bird plates (CC0): frames fetch a plate here before generating their own

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages