The genome
Thirty-two bytes. That is the whole description of a moeba; everything else is read from it, the same way every time. Below, a real one is unfolded from its token down to a single locus; further down you can change one value and watch the body answer.
From the token to the body
One real moeba, unfolded. What the ledger holds for it, the 32 bytes inside that, the two ribbons the bytes are read as, and one locus read to the end. Choose any cell to follow it through every stage.
Turn the dials, watch the body
Pick a moeba and one of its loci. The two dials are its two copies of that locus: turn one, and the body on the left redraws. When the copies differ, the dial that shows is the one the body follows; the other is carried, and turning it changes nothing you can see. Everything you change is listed under the dials. Nothing here is written anywhere.
Two copies of thirty-six loci
The 32 bytes are two halves of 16 bytes, called copies. Each half holds the same 36 positions, the loci, packed at a few bits each. Every moeba therefore carries two values at every locus: one that came from its first parent, one from its second. The loci come in four groups, and the groups matter for inheritance (chapter 2):
- Body — body plan, symmetry, segment count, elongation, taper, size, head form and size.
- Limbs and senses — limb family, count, length, spread, branching, tail form and length, eye arrangement.
- Colour and pattern — two pigment hues, saturation, brightness, pigment class, pattern family, density, contrast.
- Movement and surface — movement family, accent placement, amplitude, frequency, stiffness, phase, skin texture, relief, curvature.
Named variants and numbers
Some loci choose between named variants: a body plan is elongate, compact, discoid, and so on. When the two copies differ, a fixed ranking decides which one shows; the other is carried and can be passed on. That is what you saw in the lab when a change did nothing. The ranking is a rule of expression, not a measure of strength.
Other loci are numbers. The two copies are added, and where a trait has several loci they are added too, giving a value from 0 to 255. Body size, limb length, pattern density and the movement parameters work this way, which is why they vary smoothly across a family rather than jumping between a few types.
A few variants have no founder weight at all: no founder can be born with them. They appear only through mutation at birth, and they are marked on the traits page.
A founder's number loci are not drawn flat across their range. Each is the middle of two draws, so a founder sits near the middle of a trait far more often than at its ends. Every value stays possible, and breeding is how a line reaches the ends. Named variants follow the founder weights; the numbers do not.
Growing a body from the bytes
The genome is not a seed for an image generator, and not a list of looks where one gene means “red eyes”. It is read in stages. First it is expressed: which variant shows at each locus, what each number comes to. Then it is developed into a phenotype: a body plan with concrete counts and sizes, decided by pathways that depend on one another — segment count sets where limbs can attach, body plan changes what a tail means, symmetry decides how eyes are placed. Only then is an anatomy built: a trunk of segments, limbs along it, a head, a tail, eyes. That anatomy is the canonical body; it is identical on every device.
The renderer comes last. It draws the anatomy as a smooth surface and moves it according to the movement loci, but it decides nothing. This order is the point: because a small genetic change alters a step in development rather than re-rolling the whole picture, a child can look like its parents in ways that make genetic sense, and this site can show which parent each part came from. The hooks on the ledger do none of this. They only decide the bytes.