https://github.com/barrettotte/procjam-2018
ProcJam 2018 Entry. Simulate basic population genetics on fake creatures' DNA. Concepts of mutation, crossover, fitness distribution covered.
https://github.com/barrettotte/procjam-2018
gamejam genetic-programming genetics procedural-generation procjam simulation unity
Last synced: 4 months ago
JSON representation
ProcJam 2018 Entry. Simulate basic population genetics on fake creatures' DNA. Concepts of mutation, crossover, fitness distribution covered.
- Host: GitHub
- URL: https://github.com/barrettotte/procjam-2018
- Owner: barrettotte
- Created: 2018-10-21T23:28:56.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-10-28T18:26:01.000Z (almost 7 years ago)
- Last Synced: 2025-03-29T03:16:51.679Z (7 months ago)
- Topics: gamejam, genetic-programming, genetics, procedural-generation, procjam, simulation, unity
- Language: C#
- Homepage: https://barrettotte.github.io/ProcJam-2018/WebGL/index.html
- Size: 26.6 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ProcJam-2018
ProcJam 2018 Entry. Simulate basic population genetics on fake creatures' DNA. Concepts of mutation, crossover, fitness distribution covered.Try it Out Here - https://barrettotte.github.io/ProcJam-2018/WebGL/index.html
## Links
* Short video - https://youtu.be/aZF-uBzwVLA
* Procedural Generation Jam 2018 - https://itch.io/jam/procjam
* WebGL Build - Try it Out Here - https://barrettotte.github.io/ProcJam-2018/WebGL/index.html
* Procedural Generation Jam 2018 Entry Itch.io Page - https://barrettotte.itch.io/simple-population-genetics-simulator
* This idea was prototyped in Python first, https://github.com/barrettotte/Population-Genetics-Sim## Summary
* This script will simulate a generation of "creatures" generation after generation until the ideal color allele is found.
* Each creature has one allele in their "DNA" for color and is passed to offspring based on fundamentals of genetics (crossover, mutation).
* Depending on how close the creature's color allele is to the ideal allele, it is given a fitness value which affects its chances of reproducing with another creature.## Screenshots

## Process
* **Initialize** - Population N random DNA
* **Selection** - Evaluate fitness, generate mating pool
* **Reproduction** - Repeat N times, pick parents based on "weighted random" of mating rate
* **Crossover** - Combine DNA through some crossover method
* **Mutation** - Mutate child based on mutation rate
* Add child to new generation
* Discard old population
* Repeat### Additional Process
* A percentage of "Top" fitness organisms will asexually reproduce to keep their ideal DNA in the mating pool.
* There is a small chance a random organism will asexually reproduce## Sources:
* Basics of bitwise crossover/mutation http://www.obitko.com/tutorials/genetic-algorithms/crossover-mutation.php
* Noun and Adjective Lists https://github.com/aaronbassett/Pass-phrase