Skip to content

Archive for the art generated by the basepaint.xyz community

License

Notifications You must be signed in to change notification settings

isaacbernat/basepaint

Repository files navigation

basepaint

The main goal of this repository is to be a set of scripts to create an archive for the art generated by the basepaint.xyz community, including metadata, stats and descriptions. This is the main development repository which only contains the code and instructions on how to run it. The actual archive and PDFs are available at the companion repository basepaint-media

Standard PDF edition

The archive is available in PDF form there:

Extended PDF edition

An extended PDF version is available, with twice as many pages as the Standard Edition. Every other page includes 12 thumbnails from the 24 hour creation process of each basepaint artwork. A sample follows:

[Artwork WIP sample]

Descriptive PDF edition

This edition uses one page per artwork, and one line per element with the following format (X,Y) **Element**: Description. X and Y represent the coordinates of the element within the image, with (0,0) being the top left corner and (100,100) the bottom right. X is the horizontal coordinate and Y the vertical one.

The remaining blank space (in case there are not enough elements to fill the whole page) showcases a scaled down version of the original work with graded X and Y axis grids to help the reader locate the elements.

The description, location and meaning of each ((ir)relevant) artwork element are provided by Google's latest Gemini Generative AI/LLM freely available through API calls. It's a handy reference for those memes one may not be familiar with at first glance. Nevertheless, it's far from perfect.

Sample

Here is the depiction of the previous finished artwork as an example, where I highlighted with magenta numbers the elements that were initially not successfully identified by the AI, yet are notable. Here's the latest version:

Descriptive example

  • 1 ⚠️ Gastly: Pokémon #0092. (AI is right 2/6 of the times)
  • 2 ✅ Casper: cartoon ghost turned CGI in a 1995 movie. (AI is right 6/6)
  • 3 ❌ Meme from The Sixth Sense: (1999 movie), depicting the protagonist scared covered with a blanket. (AI thinks it's a random scared person 0/6)
  • 4 ✅ Skeletor: supervillain from the 1980s franchise Masters of the Universe. (AI is right 6/6)
  • 5 ❌ Guy Fawkes mask: (aka Anonymous mask), a symbol of protest and rebellion. (AI is right 0/6)
  • 6 ⚠️ Tombstone 272: depicting the number of the artwork. (AI is right 3/6)
  • 7 ⚠️ Anarchy symbol: from approximately the 1970s. (AI is right 1/6)

Latest (as of 2025-12-22) AI description of 272 (gemini-3-flash-preview)

  • (16,22) Rick Sanchez Skull: A giant skull featuring the iconic spiky hairstyle of Rick Sanchez from Rick and Morty.
  • (49,15) Necromancer Wizard: A skeletal sorcerer wearing a wizard hat and shades, conjuring spirits and dark magic.
  • (38,80) Skeletor: The main antagonist of Masters of the Universe, shown in a celebratory or cackling pose.
  • (85,24) Grim Reaper: The personification of death depicted as a hooded skeleton wielding a traditional scythe.
  • (50,48) Inverted Pentagram: A large, glowing occult symbol placed centrally, serving as a focal point for the necromancy.
  • (80,83) Papyrus: The energetic skeleton character from Undertale, recognizable by his armor and red scarf.
  • (10,93) Scared Human: A terrified living person at the bottom corner, reacting to the surrounding undead horde.
  • (91,05) Haunter: A ghostly Pokémon with disembodied, claw-like hands and a wide, sinister grin.
  • (73,08) Casper-style Ghost: A friendly, floating spirit with a rounded shape similar to Casper the Friendly Ghost.
  • (72,33) Sans-style Skull: A skull with a single glowing eye, referencing the character Sans from the game Undertale.
  • (50,34) Staff Skull: A magical skull mounted atop the central necromancer's staff, glowing with power.
  • (14,55) Left Hooded Skeleton: A skeletal figure on the left side, shrouded in a dark, hooded cloak.
  • (76,55) Right Hooded Skeleton: A skeletal face peering out from under a hood, located on the right side of the scene.
  • (93,62) Haunted Tombstone: A stone grave marker that appears to have a face or a spooky inscription.
  • (93,91) Dapper Skeleton: A skeleton wearing a top hat and holding a glass, appearing to enjoy the afterlife.
  • (56,94) Pac-Man Ghost: A small, simple ghost character resembling the spirits from the Pac-Man arcade game.

Limitations

There is only 1-line of text per element. This severe limitation, along with superfluous words (e.g. "small", "large", "prominent") limits the information provided. Therefore, feel free to contribute and improve them and/or the prompt/model to generate them #8

Also, the descriptions in this archive may be provided by AIs and/or not be necessarily reviewed. Therefore they may contain errors, be incomplete and ultimately the responsibility one may be held accountable for is rather limited.

PDF links

The descriptive PDF versions are available in PDF form there:

001-600 use gemini-2.5-flash-preview-04-17

601-700 use gemini-2.5-pro (free tier from 2025-08-01)

701-800 use gemini-3-flash-preview (free tier from 2025-12-17)

PDF Cover

There's a custom made cover that is suitable for both PDF editions. It contains useful statistics on most popular colours

Cover preview

Howto

  1. Clone the repository: git clone git@github.com:isaacbernat/basepaint.git

  2. Move into the newly created directory: cd basepaint

  3. Get python and install dependencies:

    python3 -m venv venv
    source venv/bin/activate
    python -m pip install -r requirements.txt
  4. Create the archive: python3 create_archive.py This will create the following files:

    • images/: directory containing the images in jpg format for the archive.
    • pdf/: directory with pdf bundles containing the archive in book format.
    • metadata.csv: csv file containing metadata for each image.
    • videos/: directory containing the videos in mp4 format. They condense the 24h process of creating the image.
    • video_images/: directory containing images in jpg format extracted from videos. Needed for the mosaic of Work In Progress pages that accompany each image in the pdf version.
    • description.csv: csv file containing the description of each element for all the images.
    • reduced_images/: directory containing the reduced images in png format. Used to generate the descriptions.
  5. To create the cover (-c) and/or the extended PDFs with video previews (-v) and/or the descriptions (-d) (with indexes -di) use the appropriate parameters.

    • E.g. python3 create_archive.py -c -v -d -di

About the archive

This archive is a non-commercial, community-driven project intended for educational and historical purposes. It is not officially endorsed by the BasePaint team. Every effort has been made to respect the collaborative nature of BasePaint and the potential copyrights of individual creators.

Why this repo?

I couldn't find a convenient way to access the artworks generated by the basepaint.xyz community, especially offline and/or in pdf/printable format. I created this collection of tools to make it easier to access, share and promote the art created by the community.

Also, I wanted to have a public repo in GitHub to demonstrate common practices for projects with unreliable external dependencies like AI/LLMs. It uses third-party libraries (e.g., tenacity for retries with backoff, pydantic for output format) and standard techniques (e.g., asyncio semaphores to limit concurrency). Previous versions got the job done and were simpler, and the improvements reported in the issues tab are not strictly necessary.

License

All rights related to the images and metadata belong to the basepaint.xyz community. Enquire them for more information. With regards to the code, the LICENSE file contains the license for this repository.

Copyright and Attribution

All rights related to the images and metadata belong to the basepaint.xyz community. Individual creators may retain copyright of their work. Attribution for each image in the archive is based on the available information from BasePaint. We are actively working to improve the attribution process and welcome any information that can help us accurately credit creators.

Disclaimer

This archive is provided as-is. The maintainers of this repository are not responsible for any copyright infringements that may occur. If you are a creator and have any concerns about the inclusion of your work in this archive, please open a GitHub Issue in this repository and I will promptly address your request, including removal of your work from the archive if desired.

Fonts

The fonts used in this PDF and uploaded to this repo have permissible licenses that allow such uses and distribution to the best of my knowledge (mostly form Google Fonts). The specific use of MEK font for the heading of each image was chosen to mimic the look and feel BasePaint's landing page and its license info is available at https://mek.gallery/fonts-(cc0)

About

Archive for the art generated by the basepaint.xyz community

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages