Package: pantheon-generator
Pantheon GeneratorThis library procedurally generatesGodswith internally-coherent domains,
andPantheonscomprising generations ofGodsthat feel related to one
another. To achieve a good mix of cohesiveness and novelty, it employs the
metaphor of sexual reproduction:Words arechromosomes.Agenomeis a list of 46 words.Agamete(an egg or sperm) is a list of 23 words.Agene poolis a list of tokens drawn from different texts.Asexual reproductionoccurs when a user generates aGodfrom two strings.Sexual reproductionoccurs when a user generates aPantheonfrom twoGods.How To UseInstallationpython3 -m venv envpip install pantheon-generatorpython -m spacy download en_core_web_mdInteractionGenerate individualGodswith seeder words:God(“milk”,”honey”)GeneratePantheonswith twoGodobjects:Pantheon(God, God)Note:Godshave chromosomes and you must have an XX and an XY to spawn a Pantheon.
That said, gender != chromosomes so it is possible to have two fathers of creation, or
two mothers of creation, or non-binary divine beings as the parents of your pantheon.HowGodsSpawnGiven twoGods, oneXXegg donorand oneXYsperm donor…Select a random word from theGod.genomeof theegg donor.Use spaCy to pull 23 related words from thegene pool. This is theegg.Select a random word from theGod.genomeof thesperm donor.Use spaCy to pull 23 related words from thegene pool. This is thesperm.Add theeggandspermtogether. This list of 46 words is thegenomefor the newGod.Note:because aGod’sgenome is populated with words related to seeds from its
parents’ genomes, aGodfeels genetically related to its parents. But, because the
seeds are selected at random from the parents’ genomes, there’s room for genetic drift.HowPantheonsSpawnGiven twoGods, oneXXegg donorand oneXYsperm donor, and a number
of generationsN…Declare a list ofegg donorsand a list ofsperm donors.IterateNtimes, once for each generation…At the start of each generation breed theegg donors.At the end of each generation, add mature offspring to the breeding pool.At the end of each generation, remove elderGodsfrom the breeding pool.More FeaturesThe model blends randomness and probability to echo the beauty of nature.GenderThere’s a 7% chance aGodwill be transgendered and a 3% chance aGodwill be non-
gendered or gender-queer. For this reason the model refers to ‘egg donors’ and ‘sperm
donors’ not ‘mothers’ and ‘fathers’. Two maleGodscan procreate, as can two femaleGods, or a gender-queerGodand anotherGod, as long as one parent isXXand
one isXY.SexWhen a newGodspawns, its sex chromosomes are chosen at random. It’s possible for
severalGodsin a row to beXXorXY. An unexpected consequence of this: some
Pantheons grow much faster than others. The rate of growth is determined by the number
ofXXgods born in each generation.MutationThe related words that spaCy finds in a list of plural nouns often feel “more related”
than the ones it finds in a list of gerunds. This is just something I observed. 80% of
the time this model pulls gametes fromprimary_tokens, which is a list of NNS; the
other 20% of the time it pulls gametes fromsecondary_tokens, which is a list of VBG.
The result is some children look a lot like their parents and some look very different;
there’s variety in how far the apple falls from the tree.Power LevelMany traditions describe old gods as more powerful than young gods. When twoGodsprocreate
there’s a 30% chance their offspring will be a ‘demi-god’ rather than a full blown god. That
chance jumps to 50% when a ‘god’ and ‘demi-god’ procreate, and when two ‘demi-gods’ procreate
there’s a 25% chance their offspring will be a lowly human.Twinning20% of the time coupling produces twins; the other 80% of the time it produces a single child.EpithetsMost gods (55%) represent 3 domains: God of X, Y, and Z. Slightly fewer gods (35%) represent
two domains: God of X and Y. The remaining gods represent 1  or 4 domains.