Inspiration
We wanted to build This first, but we ran into a lot of issues regarding neural networks, so we went ahead and found some easier applications that uses genetic evolution algorithms and stumbled across the "drawing pictures" apps we saw on youtube
What it does
The computer iteratively attempts to mimic an input pictures through drawing it with 100 circles of varying circle and radii, and continuously improve its accuracy based on a generic genetic algorithm
How we built it
We followed 3 main steps that are common in genetic algorithms:
- Create population of a generation
- Use the current generation to breed a new generation. More accurately drawn individuals will be more likely to pass its traits down to its children
- Children will occasionally experience mutations, which are randomly occuring changes to their DNA properties.
In our case, the DNA would be the coordinates and colors of all our circles.
The actual app itself is built with the P5 JavaScript framework, which is similar to the Processing language/environment.
Challenges we ran into
The most challenging aspect was trying to optimize our fitness function, our cross-breeding function, as well as our mutation function, as the simulation takes a long time, and usually it is very difficult to get significant results in an hour. Thus, we had to be very careful in terms of when to test.
In the end, we were not able to get a visibly optimal solution, but we believe that with further optimizations, the algorithm should be able to produce better results.
Accomplishments that we're proud of
Understanding what we're doing
What we learned
Genetic algorithm, as well as some of the core concepts behind it.
What's next for AI-Draw
- Stop using JavaScript and use Python
- Generate automated file I/O to have better testing procedures
- Host onto server
- Make it generic so that people can upload their files instead of using a fixed one
Log in or sign up for Devpost to join the conversation.