像素引擎
One small module draws every character cell by cell on a 40x40 grid, then animates it. Same code runs on the server and in your browser.
How it draws
Each sprite starts as a blank 40x40 grid. The drawer for its type (bull, calf, or leopard) fills ellipses and lines for the body, head, horns, muzzle, and hooves, then a pass adds a dark outline around the whole silhouette. The result is turned straight into an SVG of colored rectangles, so it stays crisp at any size.
The animation
Animation is plain SMIL inside the SVG, so it works in the browser and on most marketplaces without any script. Every sprite has a gentle idle bob and a blink where body-colored eyelids flash over the eyes. No two blink at quite the same moment.
Determinism
The engine is seeded by token id with a small pseudo-random generator, so id 42 always produces the exact same bull, everywhere. That is why the preview in the browser matches the metadata file and the on-chain token. The traits shown on a card are computed from the same seed, not stored separately.