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
| Outcome | Carrying |
|---|---|
| Pale corolla | W/W · W/B · W/C · W/n |
| Nightshade corolla | B/B · B/C · B/n |
| Coloured corolla | C/C |
| Wild type | C/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 pair | Shows as | How often |
|---|---|---|
W/W | Pale corolla | 0.001% — 1 in 100,000 |
W/B | Pale corolla | 0.0013% — 1 in 75,019 |
W/C | Pale corolla | 0.0013% — 1 in 75,019 |
W/n | Pale corolla | 0.019% — 1 in 5,263 |
B/B | Nightshade corolla | 0.0013% — 1 in 75,019 |
B/C | Nightshade corolla | 0.0013% — 1 in 75,019 |
B/n | Nightshade corolla | 0.0013% — 1 in 75,019 |
C/C | Coloured corolla | 0.0013% — 1 in 75,019 |
n/n | Wild type | 99.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.
| Key | horsegenetics.corolla |
|---|---|
| Phase | magical — it adds signed colour in phase 3, after the pigment has resolved |
| Priority | 326 — where it sits in the one (priority, key) paint order |
| Alleles | W · B · C · n |
| Varies per horse | 2 values drawn once off the expressing allele copy, so a foal that inherits the copy inherits the look |
| Built from | PARTS, 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.
- corolla zone r=4.2 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=3.4 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=2.8 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=1.7 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=1 —
PARTS×SPOTS, painted withTOWARD
Nightshade corolla
Blooms in soot and slate, near-black hearts inside gunmetal rims.
- corolla zone r=4.2 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=3.4 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=2.8 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=1.7 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=1 —
PARTS×SPOTS, painted withTOWARD
Coloured corolla
Blooms in the line's own colour - a deep heart, a bright rim and a pale halo.
- corolla zone r=4.2 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=3.4 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=2.8 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=1.7 —
PARTS×SPOTS×SPOTS inverted, painted withTOWARD - corolla zone r=1 —
PARTS×SPOTS, painted withTOWARD
Wild type
No marking.
Paints nothing.