The Fisher-Wright program displays lines of descent in a finite population. The simulation shows how genes are sampled in each generation to form the following generation.
You can choose between a haploid and diploid model and two alleles versus multiple alleles:
The first generation is set up at random with equal numbers of the two alleles:
Then the new generation is formed by random sampling from the genes of the first generation. Here comes another one:
A few generations of sampling produces the following:
Now the lines of descent are shown:
It's a mess. But if the genes are sorted by ancestor in each generation:
This is what the diploid model looks like:
And multiple alleles leads to the following: