Magical gene / fields and regions

Inkcoil

A brushed coil of ink running up the ribs, doubling back on itself twice and closing on a spiral at each end.

What it can come out as

OutcomeCarrying
Pale coilIk/Ik · Ik/Ikb · Ik/Ikc · Ik/n
Black coilIkb/Ikb · Ikb/Ikc · Ikb/n
Coloured coilIkc/Ikc
Wild typeIkc/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
Ik/IkPale coil0.002% — 1 in 50,000
Ik/IkbPale coil0.0027% — 1 in 37,495
Ik/IkcPale coil0.0027% — 1 in 37,495
Ik/nPale coil0.038% — 1 in 2,632
Ikb/IkbBlack coil0.0027% — 1 in 37,495
Ikb/IkcBlack coil0.0027% — 1 in 37,495
Ikb/nBlack coil0.0027% — 1 in 37,495
Ikc/IkcColoured coil0.0027% — 1 in 37,495
n/nWild type99.944%

Its gene carrot

The file

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

Originally placed with originU/originV 0.27/0.338 (originU is now the posU knob - see the note below) and sizeU/sizeV 0.38/0.273 in body space, so the viewport is x 11.1-26.7 and y 11.4-20.6 - the full height of BODY (x 7.5-29.5, y 11-21) and about two thirds of its length, with clearance on every side. It is sized to the barrel's HEIGHT because every drawing here except the trillium is portrait and meet fits the tall side first; the spare width is centring room. The first mask is PARTS BODY, so nothing the side-plane extrusion reaches can land on a leg or the neck if the mesh ever moves.

Two layers of one hue at two lightnesses - the dark stroke first, the wash over it - because the reference is a single brush loaded once, not two colours. That is why this gene needs one hue knob where the other emblems need two.

The source's largest path is the pale paper behind the brushwork and is not used. It is 82% of the drawing; pasting it would have washed the whole flank.

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 370. Moved to 296: fields and regions, with the other barrel drawings beside moonwing (283). 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 stroke 3631 to 700 and the wash 1556 to 700, 0.1% 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.

PLACED BY THE HORSE, NOT THE FILE (2026-09-11). originU is the posU knob, 0.12-0.40, so the viewport's centre runs from about x 12.7 to x 24.2 and the drawing lands anywhere from shoulder to hip. It used to be a constant 0.27, shared with the other five barrel drawings, and the owner's first look at the intake found six different drawings all standing in the same place on every horse. The range keeps every one of the six on BODY with two units to spare at either end - the widest, candelabra, is 6.2 units - checked on a side-view render at six seeds each. originV stays fixed: these are sized to the barrel's full height and there is no room to move up or down.

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 coil

A grey brushed coil up the ribs, with a lighter wash trailing it.

  1. stroke — PARTS × SVG, painted with TOWARD
  2. wash — PARTS × SVG, painted with TOWARD

Black coil

A near-black brushed coil up the ribs, with a mid-grey wash trailing it.

  1. stroke — PARTS × SVG, painted with TOWARD
  2. wash — PARTS × SVG, painted with TOWARD

Coloured coil

A brushed coil in the line's own colour, washed with a lighter tone of the same.

  1. stroke — PARTS × SVG, painted with TOWARD
  2. wash — PARTS × SVG, painted with TOWARD

Wild type

Nothing.

Paints nothing.