Magical gene / spots and rings

Beadscale

The crest of the neck is beaded with small iridescent scales, each taking its own colour, separated by dark channels.

What it can come out as

OutcomeCarrying
BeadscaleBs/Bs · Bs/bs · Bs/n
Beadscale, colouredbs/bs
Wild typebs/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 1,786 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
Bs/BsBeadscale0.002% — 1 in 50,000
Bs/bsBeadscale0.008% — 1 in 12,500
Bs/nBeadscale0.038% — 1 in 2,632
bs/bsBeadscale, coloured0.008% — 1 in 12,500
n/nWild type99.944%

Its gene carrot

The file

common/src/main/resources/horsegenetics/genes/beadscale.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.beadscale
Phasemagical — it adds signed colour in phase 3, after the pigment has resolved
Priority328 — where it sits in the one (priority, key) paint order
AllelesBs · bs · n
Varies per horse2 values drawn once off the expressing allele copy, so a foal that inherits the copy inherits the look
Built fromAXIS, CRACKLE, RAMP, TOWARD

Why it is built this way

space local, axis X is the crest. The neck is pitched 30 degrees and an ordinary part-space Y band across it comes out as a collar wrapping crest and throat alike - that is the bug that put goth's hood on the underside of the neck. The band starts at -1.0 rather than 0.0 because a pitched part's corner texels sit off the ends of its own cuboid and nothing clamps them.

RAMP axis cellId reads one colour per cell and meets its neighbours at a wall, which is the difference between iridescence and a gradient. Its seed and scale point at the same values the CRACKLE mask uses, so the colour lines up with the scales rather than drifting across them.

scale 2.6 with a 0.5 gap puts the channel at about one texel. Any finer and the whole field resolves as a wash.

Arrived at priority 128. Moved to 328: spots and rings, near fish scales (322) - scales on the crest. The arriving number was taken, or sat in a band whose family does not describe this marking - priority is both the paint order and the family the sidebar files a gene under.

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.

Beadscale

A band of small teal-to-magenta scales along the crest, each bead a slightly different colour from its neighbour.

  1. the dark channel between scales — AXIS × CRACKLE inverted, painted with TOWARD
  2. the scales themselves — AXIS × CRACKLE, painted with RAMP

Beadscale, coloured

The same crest of scales swept through a narrow band of this line's own colour.

  1. the dark channel between scales — AXIS × CRACKLE inverted, painted with TOWARD
  2. the scales themselves — AXIS × CRACKLE, painted with RAMP

Wild type

No scaling.

Paints nothing.