Magical gene / lines and strokes

Datarain

A curtain of thin bright streaks falls down the shoulder and ribs over a dark ground, with small lit flecks scattered through it.

What it can come out as

OutcomeCarrying
StaticP/P · P/C · P/n
DatarainC/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 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
P/PStatic0.002% — 1 in 50,000
P/CStatic0.008% — 1 in 12,500
P/nStatic0.038% — 1 in 2,632
C/CDatarain0.008% — 1 in 12,500
n/nWild type99.944%

Its gene carrot

The file

common/src/main/resources/horsegenetics/genes/datarain.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.datarain
Phasemagical — it adds signed colour in phase 3, after the pigment has resolved
Priority388 — where it sits in the one (priority, key) paint order
AllelesP · C · n
Varies per horse3 values drawn once off the expressing allele copy, so a foal that inherits the copy inherits the look
Built fromAXIS, PALETTE, PARTS, SPECKLE, STROKES, TOWARD, emissive

Why it is built this way

curl 0.05, not 0. STROKES is the level set of a noise field and its lines wander by nature; winding curl almost to zero is what makes them fall straight, and leaving a trace of it in is what stops them looking combed.

width 0.55 against spacing 2.0. The width has to stay well under the spacing or neighbouring streaks touch and the whole curtain resolves as a wash of colour rather than as rain. 0.55 is also barely above a texel, which is the other wall - there is not much room between the two here.

PALETTE rather than RAMP, which is the opposite call from most of these. PALETTE draws one colour per cell of its own lattice and adjacent cells meet at a WALL. Normally that wall is the thing to avoid; here it is the point, because the reference's streaks change colour abruptly and a continuous gradient down the shoulder would read as an aurora instead.

scale 2.6 on the streak palette is close to the stroke spacing on purpose, so a colour cell is about one streak wide and each streak mostly takes one colour.

No black form. The acid violet and green are the gene; in greys this is static.

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.datarain'. 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 159. Moved to 388: lines and strokes - a curtain of STROKES. 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.

Static

A curtain of white streaks over a grey ground, flecked with light.

  1. the dark ground — PARTS × AXIS × AXIS, painted with TOWARD
  2. the falling streaks — PARTS × AXIS × AXIS × STROKES, painted with PALETTE
  3. the bright flecks — PARTS × AXIS × AXIS × SPECKLE, painted with PALETTE, and it glows

Datarain

Violet and white rain over deep navy, flecked with lit green.

  1. the dark ground — PARTS × AXIS × AXIS, painted with TOWARD
  2. the falling streaks — PARTS × AXIS × AXIS × STROKES, painted with PALETTE
  3. the bright flecks — PARTS × AXIS × AXIS × SPECKLE, painted with PALETTE, and it glows

Wild type

No marking.

Paints nothing.