Inspiration

We took inspiration for our project from a YouTube Short someone made a long time ago, where any image you entered would have its pixels rearranged to become Former President Obama. Subsequently, we decided to create the pixel morph engine to turn any picture into our friend Riti's face. However, we felt that this was incomplete, and since we finished this engine on time, we decided to stay up and create a game around it.

What it does

Guess-A-Morph follows the same format as Pictionary, but with an elegant twist (or morph?). The game consists of multiple rounds, where a picker is assigned a target image that a randomly selected source image will morph into. The quicker the image is guessed, the more points the corresponding guessers gets, while the picker wants as many people as possible to get the correct answer. The guessers need to guess the correct image within a certain time limit to gain points. The completely morphed image will be shown at the end of the timer or if all guessers guess the word. Users can also add their own pictures to the game live, like a funny photo of a friend (used consensually) or an animal that isn't already in the game. Users can add as many images as they want, and at least one of the new images is guaranteed to show up in the next 7 rounds. Multiple players can join the game from different machines if they are on the same network, so friends can play together throughout campus.

How we built it

We wrote all the code for the engine and game in Java, and used a little c++ to manipulate the builder and launcher .exe's. We created programs that subsample the image to an acceptable pixel count (since too many pixels would take way too long to process, since the time complexity is (O(n^2)). We then assemble these pixels onto a display we created, and assign each pixel to a target position based on the selected target image: We have a pipeline that selects the target position based on the color of each pixel, in such a way that identical pixels are not sent to the same location. Our animator program then runs and pushes each pixel to the ideal location. During this animation, the guessers must try and guess the name of the image while the number of letters are revealed at the top (as the time ticks down, letters in the name will be revealed).

Challenges we ran into

We really struggled with the pipeline that assigned the pixels to their target, but realized that identical pixel (in color) would be assigned to the same target, which would leave massive gaps in the resultant display. We changed the code such that each target "dies" after being selected, and the next pixel to be assigned must choose the next best match.

Accomplishments that we're proud of

We are incredibly impressed with our ability to stay focused for such an extended period of time (we're all college freshmen in our first Hackathon). This is our own full-stack project that we have completed from end-to-end, and creating it was an incredibly rewarding process.

What we learned

We learned how to collaborate with other programmers in GitHub, and how to use AI tools to expedite our plans and shore our weakness.

What's next for Guess-A-Morph

We plan on updating our asset folders with more images, and creating a mobile version that users can either download or join on the web.

Built With

Share this project:

Updates

Submission history