AA homozygote Aa heterozygote aa homozygote
Trajectory: q(t) vs generation · dashed = q*
⚠ Couldn't load the 3D engineThree.js failed to load from the CDN. Check your connection and reload.

Balancing Selection: Heterozygote Advantage

This simulator runs a real discrete-generation Wright-Fisher population genetics model for a single gene with two alleles, A and a. When the heterozygote Aa carries a fitness advantage over both homozygotes — overdominance, or heterozygote advantage — directional selection cannot fix either allele. Instead the population is pulled toward a stable internal equilibrium frequency q* = s₁/(s₁+s₂), the classic mechanism behind human polymorphisms such as the sickle-cell allele in malaria-endemic populations. Each generation, a population of N individuals is rendered as a 3D field of instanced spheres colored by genotype; a live trajectory line tracks the allele frequency against the theoretical equilibrium, and the population-size control lets you see genetic drift pull small populations away from the deterministic curve.