How the generator actually works
Seed in, art out, nothing in between that we cannot show you. A walk through the four steps.
There are four steps between a string and a finished piece, and none of them are secret.
1. The seed
Every piece starts from a short string — GRIND-2026-417 and so on. That string is hashed with MD5 and the first four bytes become the state of an xorshift generator. Nothing else feeds it: no wall clock, no process id, no entropy that changes between runs.
This matters more than it sounds. An early version seeded the generator with crc32, and because consecutive seeds share so much structure, consecutive pieces came out visibly related — five identical hats in a row. Swapping the hash fixed it. Determinism is only useful if it is also well mixed.
2. The roll
Each trait category is a table of names and weights. A roll picks from it proportionally. A trait with weight 8 out of a category totalling 822 shows up on roughly one percent of the set — and when you count the finished collection, that is what you find.
Nothing is assigned afterwards. There is no pass where someone decides a particular piece should be legendary.
3. The draw
Traits are drawn as flat vector shapes into a 1000×1000 SVG. The art is the SVG — there is no raster hiding underneath, no upscale, no filter stack doing the heavy lifting. You can open one in a text editor and read the whole piece.
4. The rank
Rarity score is the standard trait-rarity sum: for each trait a piece carries, add the reciprocal of how common that trait is across the set. Add them up, sort descending, rank one is the rarest. The tier bands follow the rank percentile.
The full trait distribution is published on the collection page. If you want to check our arithmetic, everything you need is there.