Predict the possible coat colors of kits (babies) based on the genotypes of the Sire (Father) and Dam (Mother). This calculator focuses on the primary A, B, and D Loci which govern the most common rabbit colors.
Sire (Buck)
AA (Pure Agouti)
Aa (Agouti carrying Self)
aa (Self/Solid)
BB (Pure Black)
Bb (Black carrying Chocolate)
bb (Chocolate)
DD (Pure Dense/Full Color)
Dd (Dense carrying Dilute)
dd (Dilute – Blue/Lilac)
Dam (Doe)
AA (Pure Agouti)
Aa (Agouti carrying Self)
aa (Self/Solid)
BB (Pure Black)
Bb (Black carrying Chocolate)
bb (Chocolate)
DD (Pure Dense/Full Color)
Dd (Dense carrying Dilute)
dd (Dilute – Blue/Lilac)
Potential Kit Outcomes
Understanding Rabbit Coat Genetics
Rabbit coat color is determined by several specific loci (locations on chromosomes). While dozens of genes interact, the most prominent colors are driven by the A, B, and D series. This calculator uses Mendelian genetics to predict the phenotypic (visual) outcome of your breeding program.
The Key Loci Explained
A Locus (Agouti): Determines the distribution of pigment on the hair shaft. Agouti (A) creates a banded hair (like a wild rabbit). Self (a) results in a solid color from tip to root.
B Locus (Brown/Black): Controls the base pigment density. B (Black) is dominant, while b (Chocolate) is recessive. A rabbit must have two 'b' genes to appear chocolate.
D Locus (Dilute): Controls how the pigment is "clumped." D (Dense) creates vivid, dark colors. d (Dilute) washes out the color, turning Black into Blue and Chocolate into Lilac.
Common Color Outcomes
Genotype
Visual Color
A_ B_ D_
Chestnut / Castor (Agouti)
aa B_ D_
Black (Self)
aa bb D_
Chocolate (Self)
aa B_ dd
Blue (Self)
aa bb dd
Lilac (Self)
A_ B_ dd
Opal (Agouti)
Genetic Examples
Example 1: If you breed two Black rabbits that both carry Chocolate (Bb) and Dilute (Dd), you aren't just going to get black kits. You have a chance of producing Black, Blue, Chocolate, and Lilac kits in the same litter!
Example 2: Breeding a homozygous Chestnut (AA BB DD) to a Lilac (aa bb dd) will result in 100% Chestnut kits. However, all those kits will be "triple carriers" (Aa Bb Dd), meaning they look Chestnut but can produce many colors in the next generation.
function calculateRabbitGenetics() {
var sireA = document.getElementById("sireA").value;
var sireB = document.getElementById("sireB").value;
var sireD = document.getElementById("sireD").value;
var damA = document.getElementById("damA").value;
var damB = document.getElementById("damB").value;
var damD = document.getElementById("damD").value;
// Split genotypes into alleles
var sA = sireA.split("");
var sB = sireB.split("");
var sD = sireD.split("");
var dA = damA.split("");
var dB = damB.split("");
var dD = damD.split("");
var outcomes = {};
var totalCombos = 64; // 4 * 4 * 4
// Perform Punnett Square logic across 3 loci
for (var i = 0; i < 2; i++) { // Sire A
for (var j = 0; j < 2; j++) { // Dam A
for (var k = 0; k < 2; k++) { // Sire B
for (var l = 0; l < 2; l++) { // Dam B
for (var m = 0; m < 2; m++) { // Sire D
for (var n = 0; n < 2; n++) { // Dam D
var resA = [sA[i], dA[j]].sort().join("");
var resB = [sB[k], dB[l]].sort().join("");
var resD = [sD[m], dD[n]].sort().join("");
var phenotype = determinePhenotype(resA, resB, resD);
if (outcomes[phenotype]) {
outcomes[phenotype]++;
} else {
outcomes[phenotype] = 1;
}
}
}
}
}
}
}
// Display Results
var resultDiv = document.getElementById("rabbitResult");
var listDiv = document.getElementById("probabilityList");
listDiv.innerHTML = "";
resultDiv.style.display = "block";
for (var color in outcomes) {
var percentage = ((outcomes[color] / totalCombos) * 100).toFixed(2);
var item = document.createElement("div");
item.style.padding = "12px";
item.style.marginBottom = "5px";
item.style.borderRadius = "6px";
item.style.backgroundColor = "#fff";
item.style.border = "1px solid #eee";
item.style.display = "flex";
item.style.justifyContent = "space-between";
item.style.alignItems = "center";
item.innerHTML = "" + color + "" + percentage + "%";
listDiv.appendChild(item);
}
}
function determinePhenotype(a, b, d) {
var isAgouti = (a.indexOf("A") !== -1);
var isBlack = (b.indexOf("B") !== -1);
var isDense = (d.indexOf("D") !== -1);
if (isAgouti) {
if (isBlack && isDense) return "Chestnut / Castor (Agouti)";
if (isBlack && !isDense) return "Opal (Dilute Agouti)";
if (!isBlack && isDense) return "Amber / Cinnamon (Chocolate Agouti)";
if (!isBlack && !isDense) return "Lynx (Lilac Agouti)";
} else {
if (isBlack && isDense) return "Black (Self)";
if (isBlack && !isDense) return "Blue (Self)";
if (!isBlack && isDense) return "Chocolate (Self)";
if (!isBlack && !isDense) return "Lilac (Self)";
}
return "Unknown Phenotype";
}