Commit graph

6 commits

Author SHA1 Message Date
Daniel Thwaites
ba5565d698
Refactor palette generator ♻️
Simplified a lot of code which was unnecessarily generic.

Now using monads to manage the state of the random number generator
rather than passing it around by hand.

Also made some performance improvements, then increased the population
size so more combinations are tried in a similar length of time.
2023-07-08 14:28:15 +01:00
Daniel Thwaites
498ff69051
Continue running palette generator for longer 👔
Stop when there has been little improvement across the last 5
generations, rather than the last 1. This generally allows a higher
scoring solution to be reached.
2023-02-27 11:01:14 +00:00
Daniel Thwaites
f78eff2236
Log fitness values 🔊 2022-07-16 00:30:00 +01:00
Daniel Thwaites
ffc2b3f447 End genetic algorithm when the fitness stops increasing
This allows us to reach an even better colour scheme rather than
stopping after a fixed number of generations.

For images which create a good colour scheme quickly, we avoid doing
unnecessary passes which don't lead to much improvement.
2022-07-01 12:54:44 +01:00
Daniel Thwaites
671068f7f6
Add internal docs for palette generator 💡
So that I don't forget how it works :)
2022-05-02 01:12:27 +01:00
Daniel Thwaites
09892b21a5
Use a genetic algorithm to choose colours
This produces much more visually pleasing palettes compared to the crude
algorithm which was previously used.
2021-12-16 20:03:07 +00:00