Natural gene / phase 1

Dun

Real-horse TBX3, and the mod’s second three-allele locus. Two effects that come apart: a body dilution that thins black pigment and leaves red almost alone, and primitive markings — a dorsal stripe into the tail, plus leg bars, a shoulder bar and a face mask on the horses that draw them — that read dark because everything around them got lighter. The third allele is the one that carries the markings without the dilution.

Crossing two of them

What it looks like on each base

BaseWith DWith d1 only
bay (E_ A_)bay dun / zebra dun — tan body (all of it the black coming off, none of it the red moving), black points that survive the dilution intact, a black-centred mane and tail with pale guard hair either side, dark dorsal stripe, bars where there is pale leg to show them onordinary bay, slightly lighter through the barrel, with a deeper line down the spine
black (E_ aa)grullo — a blue-grey slate body on the gradient’s neutral column, black lower legs, a black-centred mane and tail, near-black dorsal stripe and barsplain black — nothing visible
chestnut (ee)red dun — a chestnut, very slightly lifted, carrying red-brown rather than black points and markings. The subtlest of the three by a long way.ordinary chestnut with a faintly redder dorsal line

Its gene carrot

Gene key
horsegenetics.dun
Alleles
D d1 d2
Outcomes
wild, primitive-marks, dun
Combinations
6, landing on 3 outcomes
Default allele
d2
Wild frequency
D 1 in 24, d1 1 in 10 per allele
Founder draws
1 × nextFloat()
Deterministic
no — the markings are rolled per horse
Epigenetic draws
1 × nextLong() + 7 × nextFloat(), on both marked outcomes
Dilution
PigmentField.diluteNeutral — red first, then black
keep red / black (D)
0.93 of the visible red; 0.42 of the black
keep red / black (d1)
0.95 of the visible red; black never touched
dorsal half-width
1.5 body units, ×0.80–1.30 per horse
leg bars
joint 0.56, spread 0.48, spacing 3.2, duty 0.42 — D only, per leg
accessory chances
bars 0.82 per leg, shoulder bar 0.55, face 0.40

Two dominance orders over one locus

This is the gene that most obviously needs a table rather than a label. Dilution reads D > d1 = d2; marking reads D = d1 > d2. Two orders over the same three alleles, and no single word covers both — which is exactly why there is no dominance property in this model, only an outcome per combination.

CombinationOutcomeDilutes?Dorsal stripe?Accessory markings?
D/D, D/d1, D/d2dunyesyesrolled per horse
d1/d1, d1/d2primitive-marksnoyesno
d2/d2wild typenonono

So d2 is the only allele that draws nothing, and it — not the old catch-all d — is the gene’s default allele: the token a code with no dun segment reads as. A horse can carry a dorsal stripe and not be a dun, which is what d1 is for.

One dilution and one mask

Phase 1 is downward-only — a natural gene can never add pigment back — so nothing here can literally paint a dark line onto a coat. It does not need to. A primitive marking is countershading: “a stripe darker than the body” and “a body lighter than the stripe” are the same picture. So the whole gene is one dilution and one mask. The mask says, per texel, how much of the dilution to lerp back off, and every dark thing a dun has is a region where that number is high.

common/genetics/genes/DunGene.java
double mark = CoatRegions.dorsalStripe(skin, part, point, m.dorsalHalfWidth());
mark = Math.max(mark, pointRegion(skin, part, point));            // midtstol, ears, muzzle, lower leg
mark = Math.max(mark, alreadyAPoint(f.red(px, py), f.black(px, py)));   // a bay's black, wherever it climbed
if (accessories) {
    mark = Math.max(mark, m.shoulder() * SHOULDER_DEPTH * CoatRegions.shoulderBar(...));
    mark = Math.max(mark, m.face()     * faceMarking(skin, part, point, m));
    int leg = CoatRegions.LEGS.indexOf(part);
    if (leg >= 0 && m.bars()[leg] > 0) {
        mark = Math.max(mark, m.bars()[leg] * BAR_DEPTH * CoatRegions.legBar(...));
    }
}
f.diluteNeutral(px, py, lerp(keepRedBody, 1f, (float) mark),
                        lerp(keepBlackBody, 1f, (float) mark));

Both marked outcomes run that same painter and differ only in their constants and in how much of the list they draw. There is no special case anywhere, and the whole locus stays inside the restrict-only contract.

Grullo, and the order the two pigments come off in

The dilution is PigmentField.diluteNeutral, not the warm dilute that cream and champagne use. The two are opposites and the difference is an order: red down first, then black.

A black horse is (red = 1, black = 1) — a full load of pheomelanin that the eumelanin above it hides, visible nowhere but on the gradient’s bottom row. Scale the two pigments together and the black comes off first, unmasking that red on the way out and walking the sample diagonally into the golds; a “grullo” built that way is a milk-chocolate horse. So the dilution scales the visible red instead — red * (1 - black) — and stores back whatever reproduces it against the black that is left:

common/coat/pattern/PigmentField.java
black' = black * keepBlack
red'   = red * (1 - black) * keepRed / (1 - black')

Same invariant whiten keeps, and for the same reason, with the two pigments free to move by different amounts. On a chestnut nothing is masked and it collapses to red * keepRed; on a black horse the numerator is 0, red goes straight to 0, and the sample slides down the gradient’s neutral column into the blue-greys where grullo actually lives.

It fixed the leg bars for free

The old painter had a special case: a leg bar kept its black only, because re-introducing red on a black leg turned the bar into a warm patch. That was the same unmasking bug seen from the other side. With diluteNeutral a bar is just “less diluted” like every other marking, and the special case is gone.

Dun takes black off. It barely touches red.

That one asymmetry is what makes the three bases come out as different as they do from a single pair of numbers — and it is why keepRed sits so close to 1.

BaseWhat the dilution has to work withResult
black No visible red at all — it is all masked — so only keepBlack applies. The sample slides straight down the neutral column. Grullo, and the largest colour change of the three.
bay Mostly red under about a third of a load of black. Taking that black off unmasks the red it was damping and the body swings red-brown to tan. Bay dun — a big, obvious change, and none of it is the red moving.
chestnut No black to take. Red dun is almost the same colour as chestnut. What keepRed buys is not a dilution, it is just enough countershade to let the markings read at all.
A red dun is a chestnut with primitive markings

Not a pale horse. If a red dun’s body reads as a distinctly lighter, more golden colour than a plain chestnut beside it, KEEP_RED has been turned down too far — the visible effect of dun on a chestnut is a couple of very subtle markings and almost nothing else.

The points, and how a bay dun keeps them

A dun dilutes the body coat. The points do not go with it — that is what makes a bay dun a tan horse with black legs rather than a uniformly faded one, and a grullo a blue-grey horse with a black mane. So the mask is 1 on the ears and muzzle outright, 1 down the centre of the mane and the tail, and 1 up the bottom POINT_LEG_SOLID of each leg before fading out over the next POINT_LEG_FADE — a soft transition rather than a ring.

That handles a grullo, whose points are only points because of where they are. It does not handle a bay, whose black climbs its legs and face by a rolled amount that can reach most of the way up. For that there is one more line:

common/genetics/genes/DunGene.java
private static double alreadyAPoint(float red, float black) {
    return Math.sqrt(black * (1.0 - red));
}

The pigment model says it exactly. A gene that paints a point paints it absolutely: BayCoat sets red = 0, black = 1, and that pair — black with no red under it — occurs nowhere else. A black horse is (1, 1): black with a full load of masked pheomelanin, which is what makes it a body colour and not a point, and which is what dun is supposed to dilute into grullo. Multiply and the two separate cleanly: 1 for a point, 0 for a black body, 0 for a chestnut, and the partial values through a bay’s leg ramp turn out to be exactly the fade the mask wants. The square root shortens that fade — without it the top of a seal bay’s black leg diluted to a grey cuff between the tan body and the black point, and no real horse has one of those.

The midtstol: why the mane is not a flat point

The dorsal stripe does not stop where the hair starts. Forelock, mane centre, spine and tail centre are one continuous system on a dun — the Norwegian name for the mane's share of it is the midtstol, and the tail's is the halefjær. So the mane and the tail get a dark band down the middle with pale guard hairs either side, not a rectangle of undiluted base colour.

common/genetics/genes/DunGene.java
private static double midtstol(Skin skin, Part part, BodyPoint point) {
    return HairPattern.centreStripe(skin, part, point, MIDSTOL_HALF_WIDTH);
}

It reuses HairPattern.centreStripe, the shape the healer's red line down the mane already uses, so the band lands on the part's own axes rather than the world's — a mane and a tail are both rotated out of true by their rest pose, and neither “stripes along X” nor “along Y” is right for both.

The half-width is set by the mesh

MIDSTOL_HALF_WIDTH is 0.25 and that is arithmetic, not taste. A mane is four texels across, so the only two distances from the centre that exist are an eighth of the span and three eighths of it. centreStripe feathers over halfWidth ± halfWidth/2, and 0.25 puts those two edges exactly on those two rows: the inner pair is fully dark, the outer pair is fully pale. At 0.20 the feather caught the dark rows too and a bay dun's mane came out at 97 % black instead of black — invisible in a screenshot, wrong in the pigment field.

The guard hair is an overshoot, scaled by the dilution

The reference calls the outer hairs cream, silver-white or yellowish. A mane diluted only as far as the barrel reads as one colour at riding distance, so the guard hair is diluted past the body by GUARD_HAIR — but scaled by how far that channel is being diluted at all:

common/genetics/genes/DunGene.java
float over = hair ? (float) (GUARD_HAIR * (1.0 - mark)) : 0f;
f.diluteNeutral(px, py,
        lerp(keepRedBody,   1f, (float) mark) * (1f - over * (1f - keepRedBody)),
        lerp(keepBlackBody, 1f, (float) mark) * (1f - over * (1f - keepBlackBody)));

That scaling is what keeps it a dun feature. A d1 horse takes no black off anything, so its guard factor is exactly 1 and the painter stays the byte-for-byte no-op the tests pin. Guard hair is pale because the dilution is stronger there — it has no reason of its own.

A bay dun had no mane stripe at all for a while

On the long hair the marking mask caps alreadyAPoint instead of losing to it, and that one line is the whole fix. A bay's mane arrives at the dun painter as red = 0, black = 1, so alreadyAPoint returned 1 for every texel of it, the painter took its early exit, and a bay dun's mane came out byte-identical to a plain bay's while a grullo got a perfectly good midtstol. Everywhere else the maximum is still right: a leg is a point because it is already black, not because a mask said so.

Every dun, not only the Fjord

The Fjord is famous for this because the breed clips the mane upright so the pale-dark-pale cross-section is unmissable, and because a pale body makes a dark centre shout. The marking is not breed-specific and it is not a separate locus — a dun is a dun. So it is drawn on every D horse here, at a contrast that follows the base colour: near-black down a grullo's mane, dark red down a red dun's, and most dramatic on a cream-diluted dun, exactly as the field guides describe. The upright clip itself is grooming, and grooming is not modelled.

The reference this came from proposed a fictional F “Fjord mane pattern” modifier plus three hidden quantitative loci gating the effect. That is a new system for a marking every true dun already has, and it would have let a D/_ horse with the wrong modifiers show no mane stripe — which the same reference says is not how dun works. Declined; see philosophy on inventing loci.

The marking checklist, region by region

What a field guide looks for, and what the gene draws for it. Only the dorsal stripe is diagnostic; everything below it is a “sometimes”, which is why the accessories are rolled per horse.

RegionWhat a real dun showsWhat the gene draws
Back The dorsal (eel) stripe: withers to dock along the spine, continuing into the tail. The one feature that is actually diagnostic. CoatRegions.dorsalStripe on the barrel, neck, mane and tail, weighted to the top of the box so it does not also land on the belly. Half-width jittered per horse.
Legs Short transverse strokes, not bracelets: uneven, often broken part-way round, concentrated at and just above the knee and hock, asymmetric between legs. CoatRegions.legBar, rolled and seeded per leg. D only.
Shoulder A bar crossing the shoulder from the withers, down and back — often just a smudgy shadow, sometimes several fine lines. Highly variable. CoatRegions.shoulderBar: one noise-warped diagonal stroke on the front of the barrel. At two texels to the body unit a fan of fine lines is three pixels of noise.
Head A darker forehead or full face mask, or “cobwebbing” — fine radiating, branching rings on the forehead. A strong mask tends to replace the web rather than join it. CoatRegions.faceMask (a radial falloff from the forehead) or faceCobweb (noise-warped rings inside that same falloff). One roll picks which; the stronger half of its range goes to the plain mask.
Neck A darker crest, sometimes fine marks running up from the withers. The dorsal stripe already runs the length of the neck box and the mane centre is a point, so the crest comes out darker with no extra code. No separate neck bars.
Ears, muzzle Dark, in the base colour — black on a bay dun or grullo, red-brown on a red dun. Points: the mask is 1, so the dilution never reaches them.
Mane, tail A dark band down the centre, with paler hair either side of it — the midtstol, continuous with the dorsal stripe at both ends. A centre stripe rather than a flat point, and the guard hair outside it diluted past the body.
Belly, flank Lighter than the points; some duns show diffuse mottling or rib shading near the flank, many show none. Supportive, never diagnostic. Nothing. A blurry patch that half the duns do not have costs a marking’s worth of noise on a 128px sheet and buys no recognition.

Leg bars: strokes, not bracelets

The old field was a plain function of y — evenly spaced, equally strong, and identical the whole way round the limb — so every leg wore the same three rings, low down on the cannon. Every clause of that is wrong about a real dun. The rewrite is four separate irregularities stacked on one band phase:

IrregularityHowWhat it buys
Bands wanderThe y phase is warped by 3D BodyNoise.A bar reads slightly diagonal and wobbles instead of sitting ruler-flat.
No two bars alikeA per-band hash on thickness and strength.One long band and one or two shorter, fainter ones — not a comb.
Bars breakA second noise sample frozen to the band index, so it varies as you walk round the limb and not as you walk up it.A ring becomes a slash; one band becomes two fragments. The majority of bars fade out somewhere round the leg.
Legs disagreeA different seed and a separate presence roll per leg.Three bars on one foreleg, a smudge on the other, and sometimes nothing at all behind.

On top of that, a window peaks at BAR_JOINT and dies out both at the pastern and where the leg meets the body. That is the same fraction of the leg box the point mask is fading out at, which is not a coincidence: the dark lower leg ends at the knee, and the bars start there, on the pale leg above it, which is exactly where a real dun’s read best.

Faintest where the leg is already dark

On a dark bay dun - a high shade score - there is very little pale leg left, and the bars are correspondingly hard to see — the same thing a field guide says about a real one: a bar disappears visually once it reaches the black lower leg, because there is too little contrast, not because the pigment variation stopped.

The markings are incomplete on purpose

Leg barring, shoulder bars and forehead rings occur on some duns. A genuine dun may have a striking dorsal stripe and nearly invisible shoulder bars, or clear leg barring and no cobwebbing at all. So each accessory carries a propensity on the expressing copy — a stored number tested against that accessory’s chance, so the tendency is heritable and a line can be bred toward it. A horse regenerates the same markings every session, and a foal that inherits the copy inherits its dam’s.

common/genetics/genes/DunGene.java
/** absent on (1 - chance) of horses; on the rest, a faint smudge ramping up to full. */
private static double accessory(float roll, double chance) {
    if (roll >= chance) {
        return 0;
    }
    double t = (chance - roll) / (chance * 0.55);
    return t > 1 ? 1 : t;
}

Deliberately not a plain uniform: most of the duns that have a shoulder bar have a hint of one rather than a painted stripe. That ramp lives in the painter, and what is stored is the propensity it reads — seed (the marking field), dorsal_width, shoulder, face, and bar per leg. Both marked outcomes read the same values even though d1 only uses the first two, so a d1 horse that later gains a D copy keeps the stripe it had and gains the accessories it was always carrying.

d1: a marking with no dilution

A non-dun horse is by definition undiluted, so d1 cannot paint a dark line on it. It does not need to — it runs the same painter with constants chosen to move as little as possible:

  • Black is never touched (keepBlack = 1), which is the whole of what “non-dun” means here. Taking black off is the half of the dilution that actually changes a horse’s colour, so an allele that does not dilute must not do it.
  • Only the visible red is taken, and only 5% of it — less than D’s 7%, which is itself barely anything. A chestnut lightens a whisper, a bay body less, a true black or a bay’s points not at all.
A no-op is the right answer here

A d1 horse on a solid black base is composed byte-identically to a plain black one — there is no visible red to take and black is untouched. That is not a gap: a real non-dun black shows no visible primitive markings either. The marking appears on the bases that have red to give up — chestnut, bay, and everything downstream of them. DunGeneTest pins both halves.

Founder frequencies

The six weights are written out rather than computed, so one row can be retuned without disturbing the others. They are Hardy-Weinberg at p(D) = 1/24 and p(d1) = 1/10. The three D rows still sum to what the old two-allele table gave, so adding d1 split the non-dun population rather than making duns rarer.

Combination% of founders
D/D0.174
D/d10.833
D/d27.153
d1/d11.000
d1/d217.167
d2/d273.674

So roughly one wild horse in five carries primitive markings without being a dun — common enough to be a familiar sight, and the reason the locus is worth three alleles rather than two.

Still simplified

Bars belong to D alone. A real nd1 horse can show faint leg barring and shoulder shadowing as well as the dorsal stripe; here it gets the stripe only. The reason is structural rather than lazy: d1 does not dilute, so a marking on it is a countershade against a body that barely moved, and on a d1 horse’s legs — the part of it most likely to be a black point already — there is nothing to countershade against.

Not drawn at all: flank mottling and rib shading (see the checklist above) and ear edging beyond the ears being points. See roadmap. Guard hairs used to be on this list and are not any more — see the midtstol.

The gene, and two different things near it

TBX3 is T-box transcription factor 3 — a protein that regulates when and where other genes switch on during development, with broad roles across mammals including limb and skeletal development. What makes it interesting here is that different regulatory variants near the same gene affect two very different traits: the dun coat, and (in certain Chinese horse and pony populations) a substantial component of wither height. The familiar dun test is about the first of those and predicts nothing about the second.

coat-colour locussize-associated enhancer
chromosomeECA8ECA8
positiondownstream regulatory region of TBX3upstream enhancer of TBX3
phenotypedun dilution and primitive markingswither height in sampled Chinese horses and ponies
variantsD, nd1, nd2 regulatory haplotypesTBX3-EN2 A/G at ECA8:20,644,555
same test?yes — the standard dun testno — a distinct research marker
health consequencenone recognisednone established

The original mapping put the coat locus in a roughly 200 kb interval on chromosome 8 containing TBX3. On EquCab3 the gene is annotated around 20.51–20.53 Mb; older papers report positions near 18.2 Mb because they used an older assembly. That is an assembly-version mismatch, not two loci. Imsland et al., PMC4731265

The mechanism, which is inside the hair

Dun is not simply less melanin. In a dun horse most body hairs have pigment packed into only about 25–50% of the hair cortex, giving a radially asymmetric, partly diluted shaft. Hairs in the dorsal stripe stay evenly and intensely pigmented, so the stripe stays dark.

The developmental sequence appears to be:

  1. In a growing follicle, TBX3 is expressed asymmetrically in a subset of hair-bulb keratinocytes.
  2. That asymmetry changes follicle differentiation and locally reduces expression of KITLG, a major signal supporting melanocyte migration and survival.
  3. Melanocytes and pigment therefore occupy only part of the developing cortex.
  4. The finished hair looks diluted, while selected regions keep darker hairs and form the primitive markings.

That explains why dun looks so patterned: it is controlled at a microscopic radial level inside individual hairs as well as by where on the body the follicle sits.

The mod models the outcome, not the hair

One dilution and one mask is a pixel-level restriction plus a marking pass — a per-pixel decision where the biology is a per-hair, sub-hair one. That is the right level for a 64×64 texture, and it is why the mod’s markings are drawn as explicit geometry rather than falling out of the dilution the way they do in a real follicle. The one thing the real mechanism predicts and the mod has to assert separately is exactly why the stripe stays dark: in a horse it is the same field, read differently by follicle position.

Three alleles, one dominance order

D > nd1 > nd2, where D is dun, nd1 is non-dun with possible primitive markings, and nd2 is ordinary non-dun with no genetically expected markings.

allelemolecular descriptionvisible effect
Dancestral regulatory haplotype, preserving hair-follicle TBX3 regulationfull dun dilution plus primitive markings
nd1a regulatory SNP affecting enhancer activityno body dilution; markings, especially a dorsal stripe, may remain
nd2a derived ~1.6 kb deletion in a downstream enhancerno dilution, no TBX3-caused markings

Some laboratories write d1 and d2 in lower case; same alleles. The mod uses that second convention. A single D is enough to produce dun, so a D/nd2 horse is visibly dun and transmits D to only half its foals, while D/D transmits to all of them.

Two dominance orders over one locus — and the mod says so

The thing this allele series does that most do not is run two orders at once: D alone dilutes, but D and d1 both mark. That is exactly how the mod implements it — two predicates, dilutes() asking for D and marks() asking for D or d1 — and it is a faithful rendering of a real allele series that is genuinely awkward to state in one sentence.

Why a dorsal stripe is not proof of dun

A horse can show a countershading stripe, seasonal shading, or an nd1-associated marking without being genetically dun — easily misread in buckskins, bays, red horses and horses carrying other dilutions. Going the other way, the darker the base the harder some markings are to see: in the original work, markings were easier to recognise against red pigment than against dark eumelanin. Phenotype alone misleads; the DNA test is the clean answer.

What it looks like on each base

basedun-modified appearancenames
baytan or gold body, dark mane, tail and lower legsbay dun, classic dun, zebra dun
blackslate, smoky or mouse-grey body with dark pointsgrullo / grulla, blue dun, mouse dun
chestnutpeach, apricot or red-gold body; mane and tail may be darker or more body-colouredred dun

The most reliable hallmark is the dark dorsal stripe from mane to tail. Others: leg barring (zebra bars), a shoulder cross, dark ear edging, facial masking, cobwebbing or forehead marks, neck and shoulder shadows, dark tail barbs, and dark regions around the muzzle and vibrissae. Expression is variable — not every dun horse shows every marking clearly, which the mod reproduces deliberately in the incomplete-marking rolls.

Red dun: the mod and the source describe different horses

The mod holds KEEP_RED very close to 1 and states outright that a red dun is a chestnut with primitive markings, not a pale horse. The reference here says a chestnut base gives a peach, apricot or red-gold body — a visible dilution — and the cortex mechanism above is pigment-type-agnostic, restricting pigment to 25–50% of the shaft regardless of which melanin is in it. On that reading, red dun should be perceptibly lighter than chestnut.

This is a real disagreement, not a rendering limitation. It is also the one the mod is most likely to be right about for its own purposes: the asymmetry is what makes grullo, bay dun and red dun come out as three visibly different horses from one pair of numbers, and a red dun that is merely “a slightly paler chestnut” is hard to identify in-game. But it should be recorded as a deliberate departure rather than left to be rediscovered, and KEEP_RED is the single number that would move it.

What the coat locus does not do

There is no good evidence that D/nd1/nd2 changes build, bone, conformation, muscle mass, mature height, frame, movement quality or athletic phenotype. The coat alleles alter a hair-follicle enhancer’s activity in a restricted developmental context, and the foundational paper specifically reported no recognised limb-development or other pleiotropic differences between dun and non-dun horses.

So a Fjord’s compact sturdy build, a Quarter Horse’s muscling and a Konik’s hardiness are not consequences of the dun genotype. They are breed-level outcomes from many genes, selection history, management and environment. The mod agrees: dun paints and contributes nothing to the trait layer.

The separate height signal

A different regulatory region upstream of TBX3 has been associated with stature in Chinese horses and ponies. The strongest site, TBX3-EN2, is an A/G SNP at ECA8:20,644,555; in a panel of 763 Chinese horses and ponies the G allele went with greater wither height, and the model estimated it could account for up to about 20.3% of height variation — roughly 10 cm — in that population. PMC8796118

The functional work makes it credible: reporter assays found the G allele increased enhancer activity and TBX3 expression; TBX3 expression was higher in the placentas of larger Yili horses than in Ningqiang ponies; and deleting the corresponding enhancer segment in mice reduced TBX3 expression in developing limbs and produced shorter limb bones. The A allele was common in ponies — 65.6% across seven pony breeds — and fixed in the 13 sampled Przewalski’s horses; G averaged 81.2% across 18 Chinese horse breeds, ranging from 21.1% in Debao ponies to 85.7% in Yili horses.

This is not the dun test, and the mod does not model it

The coat variants and TBX3-EN2 are separate regulatory changes in different regions around the same gene. A dun horse can be small or large; a non-dun horse can be small or large. Height is polygenic and environmentally influenced, and the EN2 result — powerful in the Chinese populations studied — is not a universal one-marker height calculator: Western pony breeds show different major signals, HMGA2 in Falabellas among them, so similar stature arises by different genetic routes. The mod models the coat locus only, and puts size on LCORL and HMGA2. That is the correct split.

Health, jumping, speed

Dun is a pigmentation trait, not a disorder. OMIA classifies it as not disease-related, and the foundational study found no developmental, limb or systemic effects attributable to the coat variants.

That needs distinguishing from the wider biology of the gene. In humans, damaging one copy of TBX3 causes ulnar-mammary syndrome — limb, tooth, gland and genital abnormalities. That does not mean a dun horse carries a disease mutation: the equine coat variants leave the protein intact and modify hair-follicle expression rather than removing the gene’s developmental function. It is the cleanest example on this wiki of why “this gene causes X in humans” is not an argument about a horse.

For the size enhancer there is likewise no established equine health syndrome or soundness risk. The mouse enhancer-deletion experiments show why TBX3 can affect limb growth; they are not evidence that naturally occurring horse genotypes cause orthopaedic disease, hoof disease, infertility, metabolic disease or reduced lifespan.

Jumping. No validated evidence that any of these variants predicts scope, technique, carefulness, bascule, soundness under jumping load or competition success. TBX3’s developmental role makes it tempting to speculate about limb architecture and biomechanics; that inference has not been demonstrated in horses, and would need replicated genotype-phenotype associations controlling for breed, height, training, rider, pedigree, competition level and other athletic loci.

Speed. No robust evidence that the dun alleles affect sprint speed, stamina, earnings, stride mechanics or gait. The speed-gene discussion centres on MSTN. The Chinese size variant could in theory correlate indirectly with body dimensions where it affects height — which is not causing speed, and taller is not inherently faster.

Breeds and frequency

The coat work genotyped 1,814 animals from more than 45 breeds, confirming that TBX3 variation is broad rather than confined to one “primitive” breed. Breed-by-breed frequencies remain unevenly measured, and many figures circulating online rest on phenotypes, registry preferences or small samples rather than population surveys.

OMIA documents the dun phenotype or the causal variants in the American Trotter, Arabian, American Bashkir Curly, Faroes Pony, Norwegian Fjord, Gotland Pony, Icelandic Horse, Mongolian Horse, Polish Konik, Quarter Horse, Shetland Pony, Swedish Warmblood and Vyatka. Variant-specific reporting is narrower:

  • D in Curly, Fjord, Icelandic, Polish Konik, Quarter Horse and Vyatka.
  • nd1 in American Trotter, Arabian, Curly, Faroes Pony, Gotland Pony, Mongolian, Quarter Horse, Shetland Pony, Swedish Warmblood and Vyatka.
  • nd2 is the reference-genome allele, widespread, and the most prevalent allele among common domestic breeds.
populationbest-supported conclusion
Norwegian FjordD commonly described as fixed or effectively so; dun is a defining breed feature, though base colour still modifies how it presents
Polish Konikcommon and a direct selection target; genomic scans show a strong selection signal at or near TBX3 in blue-dun Koniks
Icelandic HorseD well established and historically used in inheritance studies; no modern population-wide frequency in the sources here
Quarter HorseD exists and produces recognisable duns; not universal, and no representative contemporary survey
Mongolian Horsedun and nd1 documented; phenotype and local structure vary enough that one breed-wide percentage would overstate the data
most modern breedsnd2 is the most prevalent allele
Przewalski’s horsedun is characteristic; all sampled animals in the size study carried the ancestral EN2 A allele

The distinction between “known to occur” and “common” matters here more than anywhere. For Arabians, Swedish Warmbloods, American Trotters and Shetlands, documentation of nd1 does not mean many individuals are visibly dun — nd1 is a non-dun allele that merely preserves subtle markings.

The mod uses D at 1/24 (4.2%) and d1 at 1/10 (10%), so a founder is more than twice as likely to carry the marking allele as the dilution — which matches the qualitative picture above, where nd1 turns up in far more breeds than D does. No published global figure exists to check either number against.

Evolution, and the open questions

Well established. Dun is likely the ancestral equid coat state, seen in Przewalski’s horses and other wild equids, and plausibly adaptive camouflage — inferred from ecology and phylogenetic distribution rather than directly quantified. The D and nd1 haplotypes predate domestication: ancient DNA identified a roughly 42,700-year-old horse carrying D/nd1 and a roughly 4,400-year-old horse inferred nd1/nd1. nd2 is more recent, was not observed outside domestic horses in that study, and likely rose during domestication alongside selection for more intensely pigmented, non-camouflage colours. And all three are regulatory changes — they alter where TBX3 is expressed in a growing follicle, not the protein’s amino-acid sequence.

Speculative or incomplete. The camouflage advantage is plausible and often stated, and its magnitude and historical setting are unresolved. Researchers have proposed that spatial TBX3 regulation could illuminate the evolution of zebra stripes — TBX3 is not established as the zebra-stripe gene, which is worth knowing next to the mod’s own zebra genes. Work in dun Mongolian horses is exploring differential TBX3 skin expression in relation to Bider markings, an active area that does not change the central point: dun expression is patterned and region-specific rather than on/off. Claims that dun changes temperament, durability, athleticism or “primitive hardiness” are unsupported unless they can separate TBX3 from breed ancestry and selection. And the TBX3-EN2 height finding needs validation outside the Chinese populations before it can be a general stature predictor.

Source: common/genetics/genes/DunGene.java, common/coat/pattern/CoatRegions.java