ahmedkhalf / circle-evolution Goto Github PK
View Code? Open in Web Editor NEWEvolutionary Art Using Circles in Python
Home Page: https://ahmedkhalf.github.io/Circle-Evolution/index.html
License: GNU General Public License v3.0
Evolutionary Art Using Circles in Python
Home Page: https://ahmedkhalf.github.io/Circle-Evolution/index.html
License: GNU General Public License v3.0
The bug
When running your script from the command line like:
circle_evolution "Mona Lisa 128.jpg" --size 1 --max-generation 5000
The program works just fine.
but when run with the python script (from the README) I only get like the first generation (I think that is what I get; 5 grey circles)
System
Is your feature request related to a problem? Please describe.
Currently, circle-evolution does not support logging - it actually uses the __buitlins__.print
function to show some info to the user.
Describe the solution you'd like
We want to implement a Reporter class to be able to extend and build any Reporter we feel like using, like sending info to UIs, loggers, or even another process.
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
Currently, saving checkpoints is performed by manually invoking numpy. savetxt
function using the latest genotype winner (after evolution ended).
We want to be able to have a generic way of saving checkpoints (genotypes) and specifying if we need to save a checkpoint after X evolution iterations, or after the evolution finished - i.e., saving a checkpoint every 1000 generations.
This can help if we want to visualize how the image was rendered throughout evolution and if we want to later load the checkpoint to continue training.
Describe the solution you'd like
A suggestion is having an interface for Checkpoints, that way we can implement multiple ways of saving them - CSV, text, image, etc - and later restoring them! Kudos if you implemented more than one Checkpoint.
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
Lots of people (myself included) like reading examples as it is a fast way to get to know the codebase without having to read the docs.
Describe the solution you'd like
Add "Example" folder in root directory.
Add example scripts with lots of comments to help people get started!
Describe alternatives you've considered
Additional context
Just like the fitness.py but for logging and letting the user know what is going on.
These should go in the Specie class
This is it for v0.2, in v0.3 we will look into improving performance.
Is your feature request related to a problem? Please describe.
Using helper classes is great for viewing phenotypes however It would be great to have a function in the species class that can save the phenotype to whatever resolution you specify, and show this image without having to import helper class. This will make the code users type more concise and not have to rely on many import statements
Describe the solution you'd like
Add save_img(resolution -> [optional] tuple) function.
Add show_img(resolution -> [optional] tuple) function.
If no resolution is specified then it is saved with the same resolution as the target image.
Describe alternatives you've considered
Create a new species class with a bigger resolution and then use render and helper.showimage(), however, this is not simple and relies on many import statements.
Is your feature request related to a problem? Please describe.
It seems to be that circle_evolution
currently can only produce square images.
Could it be modified to also generates rectangular ones if the source image is non-square ?
Describe the solution you'd like
Handle rectangular images.
Describe alternatives you've considered
I admit I haven't. This is just a suggestion for an improvement :)
Additional context
None really, but thanks a lot for releasing this tool as an open-souce project !
And good job on the code, it is quite clear ๐
Is your feature request related to a problem? Please describe.
Currently, circle-evolution supports 1 color channel evolutions - grayscale. There is some room for improvements making the Evolution and Species more generic - adding support for future improvements as more color channels.
Describe the solution you'd like
Some suggestions:
Describe alternatives you've considered
Additional context
Constraining versions is fine but having absolute versions is probably not the way to go.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.