The avatar algorithm
Every avatar is drawn from two things written to the blockchain: the resident’s theme and a 32-bit avatar seed. The same code draws it everywhere, and anyone can redraw it, forever.
Version 1
The full source is avatar/v1.js: plain JavaScript with no dependencies. A published version never changes. Each resident’s record names the version it was drawn with (generator_version), so a later version can’t change an existing avatar.
How it works
A 10×10 grid, mirrored left to right. A random-number generator (mulberry32, seeded with the avatar seed XOR 0x9E3779B9) decides, cell by cell for the left half, whether the cell is filled and with which of the theme’s three colours; cells near the middle are likelier to be filled. Then it places two eyes, with a filled ring around them. The background is the theme’s first colour.