vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Draw landscapes instead of DiceBear's Shapes style
2a8c7fbf4b2670a386ab2c203db20bb90489263a · Keenan Nemetz · 8d ago · parent 97f77001
Draw landscapes instead of DiceBear's Shapes style DiceBear ships no landscape style, so the bundle now carries one written against its core API. The engine that matters is still DiceBear's — the seeded PRNG, the option handling, the 100×100 box and the circular mask — while the style is part of Vole and carries this project's licence. That drops the Shapes licence file and leaves DiceBear's own MIT notice. The art is one idea: the account's tone is the sky, two or three hills are the same colour a step darker, and the sun is drawn from Everforest's cream, yellow or sunset orange. Each hill is a circle whose centre sits below the box, so only its ridge shows; drawing them back to front with one step of shade between them is what gives the depth at 17px without an outline. The sun is placed above the highest ridge, so it is never lost behind a hill, and a low ridge can swallow its foot like a sunset. The bundle is now 10KB (4KB gzipped) and an avatar is about 470 bytes of SVG, down from 18KB and 800 because Shapes was the bigger style. The server's half is unchanged: the initial on the account's ground is drawn first and stays if the script never runs.
docs/accounts-and-access.md +9−7
| @@ -29,13 +29,15 @@ commented on, and the repositories that work is in. Retiring an account keeps it | |||
| 29 | 29 | page, marked as no longer active, because every closed issue and merged change | |
| 30 | 30 | still refers to the name. | |
| 31 | 31 | ||
| 32 | Every name is drawn an avatar from the account name, using DiceBear's Shapes | ||
| 33 | style and the Everforest palette. The mark is drawn in the browser from a script | ||
| 34 | embedded in the binary, so the same person looks the same on every page and | ||
| 35 | between visits; the instance stores no image, accepts no upload, and makes no | ||
| 36 | request to an avatar service. Until the script draws the mark the page shows the | ||
| 37 | account's initial on its ground, which is also what a browser without scripts | ||
| 38 | keeps. It is decoration, not an identifier; a name is what identifies an account. | ||
| 32 | Every name is drawn a small landscape from the account name: the account's tone | ||
| 33 | is the sky, the hills are steps darker than it, and the sun comes from the | ||
| 34 | Everforest palette. DiceBear's engine draws it in the browser, with a style that | ||
| 35 | lives in this repository, from a script embedded in the binary. So the same | ||
| 36 | person looks the same on every page and between visits; the instance stores no | ||
| 37 | image, accepts no upload, and makes no request to an avatar service. Until the | ||
| 38 | script draws the mark the page shows the account's initial on the same sky, which | ||
| 39 | is also what a browser without scripts keeps. It is decoration, not an | ||
| 40 | identifier; a name is what identifies an account. | ||
| 39 | 41 | ||
| 40 | 42 | What a profile counts is not public. Every number and every event is limited to | |
| 41 | 43 | the repositories the reader may open, so two people can see different totals for | |