Magical gene / fields and regions

Tidewave

Three long swells running the length of the ribcage, the colour sweeping most of the way round the wheel from nose to tail.

What it can come out as

OutcomeCarrying
Pale tidewaveTw/Tw · Tw/Twc · Tw/n
Coloured tidewaveTwc/Twc
Wild typeTwc/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 893 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
Tw/TwPale tidewave0.004% — 1 in 25,000
Tw/TwcPale tidewave0.016% — 1 in 6,250
Tw/nPale tidewave0.076% — 1 in 1,316
Twc/TwcColoured tidewave0.016% — 1 in 6,250
n/nWild type99.888%

Its gene carrot

The file

common/src/main/resources/horsegenetics/genes/tidewave.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.tidewave
Phasemagical — it adds signed colour in phase 3, after the pigment has resolved
Priority290 — where it sits in the one (priority, key) paint order
AllelesTw · Twc · n
Varies per horse1 value drawn once off the expressing allele copy, so a foal that inherits the copy inherits the look
Built fromPARTS, RAMP, SVG, TOWARD

Why it is built this way

The d strings are pasted verbatim out of the traced SVG - every command, both cases, all subpaths, fillRule evenodd as the artist's file declared it. Paths were SELECTED (the tracer emits dozens per drawing); none was re-typed or re-pointed.

Placed with fit none and a viewport of originU/sizeU 0.20/0.50, originV/sizeV 0.338/0.273 - x 8.2-28.7 and y 11.4-20.6, which is the whole barrel. fit none is the point: these are bands meant to run the length of the ribcage, and meet would letterbox them into a stamp in the middle of it.

Priority 250 rather than the 3xx the other drawn emblems use, because this one is a large field rather than a figure and wants to sit under them.

This is the one gene in the set with NO black form, and that is deliberate: the whole idea is the sweep of colour, and a grey version of it is a different marking wearing its name. The pale form is kept because three white swells still read as the same drawing.

The three swells share one RAMP rather than carrying a gradient each. The reference gives every band its own oblique gradient; one sweep along body X across the whole viewport is the closest this vocabulary reaches, and it reads as one spectrum laid over the ribs instead of three. See the tool gap.

RAMP varies colour and never coverage (rule 4), so the fade at each end of a swell is the SVG mask's own softness doing it, not the ramp.

At this viewport the marking is about 18 texels tall (a texel is 0.5 body units, and meet fits the tall side first). The silhouette and the tonal split survive that; detail finer than about half a body unit inside the drawing does not, and reads as texture rather than as countable structure. That is rule 15 being accepted deliberately, not overlooked - the barrel is 10 units tall and there is nowhere else for the marking to grow.

Arrived at priority 250. Moved to 290: fields and regions, first of the seven barrel drawings that sit beside moonwing (283) - they claim a region, not a figure in a field. 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.

Over the SVG point ceiling on arrival - the engine flattens every curve to sixteen segments, so a traced outline costs its command count rather than its size. Brought under it with intake/tools/fit-svg.mjs: flattened the way the engine flattens, Ramer-Douglas-Peucker to a point budget, re-emitted as polylines. The upper swell 1724 to 700 and the mid swell 1145 to 700, under 0.01% of the viewBox changing side, measured through the engine's own inside test on a 400-sample grid. The whole viewBox is a few dozen texels across on the horse, so none of that reaches a texel. The d strings are therefore no longer the ones the trace produced. Gap 168 is the engine-side fix.

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 tidewave

Three long white swells running the length of the ribs, stepped from bright to grey.

  1. upper swell — PARTS × SVG, painted with TOWARD
  2. mid swell — PARTS × SVG, painted with TOWARD
  3. crest — PARTS × SVG, painted with TOWARD

Coloured tidewave

Three long swells running the length of the ribs, the colour sweeping most of the wheel from tail to nose.

  1. upper swell — PARTS × SVG, painted with RAMP
  2. mid swell — PARTS × SVG, painted with RAMP
  3. crest — PARTS × SVG, painted with RAMP

Wild type

Nothing.

Paints nothing.