This person does not exist was a huge trend in 2019, providing individuals with different machine-learning generated faces using a generative adversarial network. We wanted to create something fun and enjoyable for everyone, even those who haven't played pokemon - using the tools we have, a database of pokemon sprites and machine learning.

What it does

This pokemon does not exist aims to create your own unique pokemon depending on the inputs you give as the tyes of pokemon.

How we built it

The machine learning model we used here is a Variational Autoencoder (link). We passed in a dataset consisting of all Pokemon 2D sprites and trained the model using Google Colab. The resulting model takes in vectors in a "latent space" and outputs generated Pokemon sprites. We are also able to sample from different sets of Pokemon to generate with certain properties (demonstrated in our app by the ability to select Pokemon type).

The web interface was built using plain JavaScript, CSS, HTML hosted on a Node.js server by Google Compute Engine. Endpoints were written with the Express framework, and we used MongoDB Atlas (also hosted by Google Cloud Platform) to store our generated sprites. Compute Engine also provided us a public IP address which we could redirect our domain at.

Challenges we ran into

We had difficulties regarding different aspects of the project. Since we had teammates of different skill levels and some that were not experienced with developing code in a group, we had to make our to-dos clear and make sure everyone knew what their role was. Learning to use Google Cloud Compute Engine was a challenge as we all had minor experience with the technology. Setting up the environment and making our app run on the engine also took a long time. We had an attempt to integrate our app with the Google App Engine and we realized it would be difficuly and had to come up with an alternative solution.

Accomplishments that we're proud of

We've grown as a team - we all got to know each other a bit better, and at the end, we have an app up and running on our domain.

What we learned

There is always a learning opportunity, no matter how familiar you are with the technology that you use.

What's next for This Pokemon Does Not Exist

Maybe add real animals and/or other sprites such as Digimon into the dataset so that the Pokemon sprites will have additional training information data to generate models off of.

Testing out different models to produce more convincing sprites.

Built With

Share this project: