Magical gene / spots and rings

Corolla

Broad flowers open across the barrel and neck, each one a pale halo round a bright rim, a deep heart and a small light eye.

What it can come out as

OutcomeCarrying
Pale corollaW/W · W/B · W/C · W/n
Nightshade corollaB/B · B/C · B/n
Coloured corollaC/C
Wild typeC/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 3,572 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
W/WPale corolla0.001% — 1 in 100,000
W/BPale corolla0.0013% — 1 in 75,019
W/CPale corolla0.0013% — 1 in 75,019
W/nPale corolla0.019% — 1 in 5,263
B/BNightshade corolla0.0013% — 1 in 75,019
B/CNightshade corolla0.0013% — 1 in 75,019
B/nNightshade corolla0.0013% — 1 in 75,019
C/CColoured corolla0.0013% — 1 in 75,019
n/nWild type99.972%

Its gene carrot

The file

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

Why it is built this way

Five SPOTS draws on ONE seed, ONE spacing, ONE stretch and ONE vary. That is the concentric-zone idiom and it is the only arrangement that keeps five bands both centred on each other AND in proportion, because vary scales all five by the same per-cell factor - a big bloom gets a big eye. Only radius differs. Give one of them a different stretch and it is walking a different lattice, and the eye lands beside the flower rather than inside it.

Radii 1.0 / 1.7 / 2.8 / 3.4 / 4.2 leave bands of 0.7, 1.1, 0.6 and 0.8 units. They arrived as 0.7 / 1.4, and the eye painted nothing: the lattice is three-dimensional, so a zone only shows where the skin passes within its radius of a cell centre, and how often that happens falls away roughly as the cube of the radius. The eye went to 1.0 and the deep heart to 1.7 so it keeps a band of its own. The 0.6 between the deep heart and the bright rim is still the tightest thing here and the first band to go if anyone scales the flower down.

THE KNOWN SHORTFALL. The reference's petals are LOBED - the outline goes in and out five or six times round each bloom. What ships is round. SPOTS measures distance to a cell centre and has no angular term except arc, which clips every cell to one wedge rather than modulating its radius periodically. Multiplying by any second field would break the concentricity the whole marking depends on, since that field lays down its own lattice. See the tool gap filed alongside this gene.

chance 0.45 at spacing 9.0 leaves most of the barrel bare, which is the difference between a horse wearing flowers and a horse wearing wallpaper.

Sourced from a traced SVG, but not drawn with the SVG mask. The trace runs to thousands of path commands over hundreds of subpaths, most of it trace noise - well past the point ceiling, which exists to keep a traced photograph out of a gene file, and it would have made the marking identical on every horse. The reference was read for what KIND of shape each element is and rebuilt from field masks. A hand-drawn, low-node version of the source would be worth the SVG mask with its d string verbatim.

Arrived keyed 'ixora.corolla'. Renamed to the horsegenetics namespace every other gene in the mod uses - the format allows a modder their own, but a gene shipping INSIDE this mod under a second namespace breaks the tooling that builds a key from a slug.

Arrived at priority 157. Moved to 326: spots and rings, beside ocular and concentric eyespots - concentric SPOTS zones. 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.

LAYERS MADE DISJOINT on the way in. Every blooming form came out a flat white disc with nothing inside it: five pale zones at strength 100, one inside the next, add up to far past white on any coat, so the bright rim, the deep heart and the eye were all clamped away. A gene's layers do not stack: each measures its delta against the colour the GENE started from and the deltas are summed (gap 169), so nested marks at full strength add up and clamp. Each layer now multiplies in an inverted copy of every shape painted after it, which for hard-edged masks is exactly the picture stacking would have given - the order in the file still reads as the order of the marking, it just no longer has to be the mechanism.

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.

Pale corolla

Chalk-white blooms haloed and ringed in greys, with a bright eye.

  1. corolla zone r=4.2 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  2. corolla zone r=3.4 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  3. corolla zone r=2.8 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  4. corolla zone r=1.7 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  5. corolla zone r=1 — PARTS × SPOTS, painted with TOWARD

Nightshade corolla

Blooms in soot and slate, near-black hearts inside gunmetal rims.

  1. corolla zone r=4.2 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  2. corolla zone r=3.4 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  3. corolla zone r=2.8 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  4. corolla zone r=1.7 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  5. corolla zone r=1 — PARTS × SPOTS, painted with TOWARD

Coloured corolla

Blooms in the line's own colour - a deep heart, a bright rim and a pale halo.

  1. corolla zone r=4.2 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  2. corolla zone r=3.4 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  3. corolla zone r=2.8 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  4. corolla zone r=1.7 — PARTS × SPOTS × SPOTS inverted, painted with TOWARD
  5. corolla zone r=1 — PARTS × SPOTS, painted with TOWARD

Wild type

No marking.

Paints nothing.