{"id":21585418,"url":"https://github.com/cryptopunksnotdead/punkbase","last_synced_at":"2025-09-04T13:36:54.495Z","repository":{"id":56888631,"uuid":"117856678","full_name":"cryptopunksnotdead/punkbase","owner":"cryptopunksnotdead","description":"punkbase  - query punk metadata \u0026 images via sql \u0026 more  - all-in-one single-file sqlite database, that is, punkbase.db (~5MB)","archived":false,"fork":false,"pushed_at":"2023-09-06T10:21:27.000Z","size":1883,"stargazers_count":23,"open_issues_count":0,"forks_count":1,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-04-21T04:12:25.605Z","etag":null,"topics":["24px","artbase","cryptopunks","punkbase","punks","sqlite"],"latest_commit_sha":null,"homepage":"https://cryptopunksnotdead.github.io/punkbase/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cryptopunksnotdead.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-01-17T15:42:49.000Z","updated_at":"2024-02-24T04:43:49.000Z","dependencies_parsed_at":"2024-01-13T17:11:32.369Z","dependency_job_id":"9a879a04-e3f1-4368-ae4b-28e6df951676","html_url":"https://github.com/cryptopunksnotdead/punkbase","commit_stats":null,"previous_names":["s6ruby/pragmas"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopunksnotdead%2Fpunkbase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopunksnotdead%2Fpunkbase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopunksnotdead%2Fpunkbase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopunksnotdead%2Fpunkbase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cryptopunksnotdead","download_url":"https://codeload.github.com/cryptopunksnotdead/punkbase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248288347,"owners_count":21078903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["24px","artbase","cryptopunks","punkbase","punks","sqlite"],"created_at":"2024-11-24T15:10:38.001Z","updated_at":"2025-04-10T20:07:54.962Z","avatar_url":"https://github.com/cryptopunksnotdead.png","language":"HTML","readme":"# Punkbase\r\n\r\nquery punk metadata \u0026 images via sql \u0026 more - all-in-one single-file sqlite database, that is, punkbase.db (~5MB)\r\n\r\n\r\nTry the \"serverless\" query web page online\r\n\r\n- [**cryptopunksnotdead.github.io/punkbase**](https://cryptopunksnotdead.github.io/punkbase/)\r\n\r\n\r\nLet's try out some sql queries and let's look (and drill-down) for marilyn punkettes (w/ moles).\r\n\r\nClick on \"gender: f\" in any punkette and you will filter only punkettes.\r\nClick on \"head: Wild Blonde\" in any punkette and you will add a \"Wild Blonde\" filter\r\nresulting in 144 punkettes.\r\n\r\nOr try in \"raw\" sql:\r\n\r\n```sql\r\nselect *\r\nfrom   metadata\r\nwhere  gender = \"f\" AND\r\n       head   = \"Wild Blonde\"\r\n```\r\n\r\n=\u003e 144 punkettes\r\n\r\nNow let's drill down.  Click on \"skin_tone: Light\".\r\n\r\n```sql\r\nselect *\r\nfrom   metadata\r\nwhere  gender    = \"f\" AND\r\n       head      = \"Wild Blonde\" AND\r\n       skin_tone = \"Light\"\r\n```\r\n\r\n=\u003e 48 punkettes\r\n\r\nAnd now let's drill down further. Click on \"blemishes: Mole\".\r\n\r\n```sql\r\nselect *\r\nfrom   metadata\r\nwhere  gender    = \"f\" AND\r\n       head      = \"Wild Blonde\" AND\r\n       skin_tone = \"Light\" AND\r\n       blemishes = \"Mole\"\r\n```\r\n\r\n=\u003e 3 punkettes\r\n\r\nVoila! Three super-rare marilyns. Where's the blue-eyed marilyn with hot lipstick?\r\n\r\nTip - yes, you can  - generate your own ultra-rare never-before-seen original, see [**Design Your Own Matt \u0026 John's® Ye Olde' Punk (Anno 2017) (24×24) Wizard »**](https://cryptopunksnotdead.github.io/pixelart.js/yeoldepunks/).\r\n\r\n\r\n\r\n##  Run Locally (\"Serverless\")\r\n\r\nYes, you can - run locally (no database server required) -\r\ndownload or clone the punkbase git repo\r\nand run a local webserver to serve the static web page and sqlite database.\r\n\r\nIn node use:\r\n\r\n     $ npx http-server\r\n\r\nIn ruby use:\r\n\r\n     $ ruby -run -e httpd . -p 8080\r\n\r\nOr use your local webserver of choice.\r\n\r\n\r\n\r\n\r\n## Inside\r\n\r\n\r\nFor now all data (10 000 records)\r\nis in the metadata table.\r\nThe table definition reads:\r\n\r\n\r\n```sql\r\nCREATE TABLE metadata (\r\n    -- general\r\n    id         INTEGER      PRIMARY KEY AUTOINCREMENT\r\n                            NOT NULL,\r\n    base       VARCHAR      NOT NULL,\r\n    gender     VARCHAR      NOT NULL,\r\n    skin_tone  VARCHAR,\r\n    count      INTEGER      NOT NULL,\r\n    -- attributes\r\n    blemishes  VARCHAR,\r\n    head       VARCHAR,\r\n    beard      VARCHAR,\r\n    eyes       VARCHAR,\r\n    nose       VARCHAR,\r\n    mouth      VARCHAR,\r\n    mouth_prop VARCHAR,\r\n    ears       VARCHAR,\r\n    neck       VARCHAR,\r\n\r\n    -- image\r\n    image      VARCHAR      NOT NULL\r\n);\r\n```\r\n\r\nNotes:\r\n\r\n- id is the collection \"series\" no. from 0 to 9999\r\n- base is the punk type e.g. Human, Zombie, Ape, Alien\r\n- gender is the male / female e.g.  m / f\r\n- skin tone is the human skin tone (1/2/3/4) e.g. Dark / Mid / Light/ Albino  - note: NULL for zombie / ape / alien\r\n- count is the attribute count e.g. 0 / 1 / 2 / 3 / 4 / 5  - note: as number\r\n\r\n\r\nThe attributes are broken up in ten categories:\r\n\r\n- blemishes: Rosy Cheeks, Mole, Spots\r\n- head: Shaved Head, Peak Spike, Vampire Hair, Purple Hair,\r\n  Mohawk, Mohawk Dark, Mohawk Thin, Wild Hair,\r\n  Crazy Hair, Messy Hair, Frumpy Hair,\r\n  Stringy Hair, Clown Hair Green, Straight Hair,\r\n  Straight Hair Dark, Straight Hair Blonde,\r\n  Blonde Short, Blonde Bob, Wild Blonde,\r\n  Wild White Hair, Orange Side,\r\n  Dark Hair, Pigtails, Pink With Hat,\r\n  Half Shaved, Red Mohawk,\r\n  Cowboy Hat, Fedora, Hoodie, Beanie,\r\n  Top Hat, Do-rag, Police Cap,  Cap Forward,\r\n  Cap, Knitted Cap, Bandana, Headband, Pilot Helmet,\r\n  Tassle Hat, Tiara\r\n- beard:  Shadow Beard, Normal Beard, Normal Beard Black,\r\n  Big Beard, Luxurious Beard, Mustache, Goat,   Handlebars, Front Beard, Front Beard Dark,\r\n  Chinstrap, Muttonchops\r\n- eyes:  Small Shades, Regular Shades, Classic Shades,\r\n  Big Shades, Nerd Glasses, Horned Rim Glasses,\r\n  3D Glasses, VR, Eye Mask, Eye Patch,\r\n  Welding Goggles,\r\n  Clown Eyes Green, Clown Eyes Blue, Green Eye Shadow,\r\n  Blue Eye Shadow, Purple Eye Shadow\r\n- nose:  Clown Nose\r\n- mouth:   Smile, Frown, Buck Teeth, Hot Lipstick,\r\n  Black Lipstick, Purple Lipstick\r\n- mouth_prop:    Cigarette, Vape, Pipe, Medical Mask\r\n- ears:  Earring\r\n- neck:  Silver Chain, Gold Chain, Choker\r\n\r\n\r\n\r\nThe images are stored \"inline\" in the image column in 24×24 px in the PNG (Portable Network Graphics) format with transparent background and base64-encoded\r\nand starting with `data:image`. Example - punk no. 0:\r\n\r\n\r\n```\r\ndata:image/png;base64,\r\niVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAFVBMVEUAAAAA\r\nAABQfDNdi0NfHQmui2H/9o4qIUCBAAAAB3RSTlMA////////pX+m+wAAAHhJ\r\nREFUeJxjYkACTORy2NLSEmAcNiCLDUVZApQDoj+wwWQ+MPz/D1f2/8MHmGlA\r\nBf8RRv//e4HhLEKZAMNHGIeRRYHBCdU5CXDOAZgBCQwCDA5gQ4GcWQyM/98z\r\n/poFUTZrPaPg7wVwAw4w7EeYZrPnA4LD8h/T2wA0qh2r1DURDgAAAABJRU5E\r\nrkJggg==\r\n```\r\n\r\n\u003c!--\r\nnote: data:image looks to get filtered by github page ?\r\n\r\nresulting in (if you add / paste the image data to / into the src attribute):\r\n\r\n\u003cimg src=\"data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAFVBMVEUAAAAAAABQfDNdi0NfHQmui2H/9o4qIUCBAAAAB3RSTlMA////////pX+m+wAAAHhJREFUeJxjYkACTORy2NLSEmAcNiCLDUVZApQDoj+wwWQ+MPz/D1f2/8MHmGlABf8RRv//e4HhLEKZAMNHGIeRRYHBCdU5CXDOAZgBCQwCDA5gQ4GcWQyM/98z/poFUTZrPaPg7wVwAw4w7EeYZrPnA4LD8h/T2wA0qh2r1DURDgAAAABJRU5E\"\u003e\r\n\r\n--\u003e\r\n\r\n\r\n## Making-Of - Yes, You Can - Build Your Own Punkbase From Zero / Scratch\r\n\r\nSee the punkbase script in [**/punkbase**](https://github.com/cryptopunksnotdead/punks.sandbox/tree/master/punkbase) in the punk.sandbox for\r\nthe building your own database from zero / scratch.\r\n\r\n\r\n\r\n\r\n## Questions? Comments?\r\n\r\nPost them on the [D.I.Y. Punk (Pixel) Art reddit](https://old.reddit.com/r/DIYPunkArt). Thanks.\r\n\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptopunksnotdead%2Fpunkbase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcryptopunksnotdead%2Fpunkbase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptopunksnotdead%2Fpunkbase/lists"}