Magical gene / spots and rings

Moth Eyes

Fine black vein-work threads the coat like an insect's wing membrane, broken by dark, gold-ringed eyespots along the flank - but only where the coat beneath is already black or grey.

What it can come out as

OutcomeCarrying
Moth EyesMte/Mte
Wild typeMte/n · n/n

How each one is actually drawn - region by region, and the layers it is built from - is on the coding tab.

Crossing two of them

Finding one

About 1 in 5,000 wild horses is born showing this. That is the whole of the supply: catch one, or make one with the carrot below. Breeds set their own pools and a breed built around this gene will carry it far more often than the wild population does.

Wild pairShows asHow often
Mte/MteMoth Eyes0.02% — 1 in 5,000
n/nWild type99.98%

Its gene carrot

The file

common/src/main/resources/horsegenetics/genes/moth_eyes.json — a data-driven gene, not a Java class. It is listed in the index.json beside it and registered by Genes' class initialiser at startup.

Keyhorsegenetics.moth_eyes
Phasemagical — it adds signed colour in phase 3, after the pigment has resolved
Priority324 — where it sits in the one (priority, key) paint order
AllelesMte · n
Varies per horse6 values drawn once off the expressing allele copy, so a foal that inherits the copy inherits the look
Built fromFRACTAL, LUMA, PARTS, RINGS, SPOTS, TOWARD

Why it is built this way

'black or grey, and nothing else' is TWO readings and the import only had one. Brightness alone lets a pale dapple grey out and lets a liver chestnut in, because what the condition is really about is how far the colour sits from grey. The second LUMA here reads 'saturation' - which was already in the vocabulary under that name, so the 'chroma' channel the import asked for did not need building - inverted, so coverage is 1 on anything achromatic and 0 on a saturated hue.

The glint is off-centre, which is what SPOTS' offsetX and offsetY were added for. Every other band of the eyespot measures from the true cell centre; this one measures from a point shifted a third of a unit up and forward, WITHOUT moving the cell - so the highlight sits inside the concentric set as a comma rather than replacing it with a second, unrelated field.

The vein network is a ridged FRACTAL rather than STROKES because it forks. STROKES cannot fork - they run, wander and pinch out - and a wing membrane is a branching structure.

The neck copy of the vein layer runs in the fractal's own body frame like the body copy; the neck is pitched, so the veins there cross it at a slight angle rather than following its length. That is a tuning simplification and it looks like membrane either way.

What it paints

Each outcome, described the way the gene file describes it, and then the layers that draw it in the order they are painted. The prose is the part a reader checks a bake against; the list underneath is what the engine actually did.

Moth Eyes

Fine black vein-lines web the neck and body, and dark, gold-ringed eyespots scatter along the flank - both only where the coat under them is black or grey.

  1. the vein membrane over the body — PARTS × LUMA × LUMA inverted × FRACTAL, painted with TOWARD
  2. and over the neck — PARTS × LUMA × LUMA inverted × FRACTAL, painted with TOWARD
  3. the black rim of each eyespot — PARTS × LUMA × LUMA inverted × RINGS, painted with TOWARD
  4. the gold ring inside it — PARTS × LUMA × LUMA inverted × RINGS, painted with TOWARD
  5. the dark core — PARTS × LUMA × LUMA inverted × SPOTS, painted with TOWARD
  6. and the glint, deliberately off centre — PARTS × LUMA × LUMA inverted × SPOTS, painted with TOWARD

Wild type

Nothing.

Paints nothing.