Ever wanted to challenge your memory? Or maybe improve it because your memory fades in the blink of an eye? MemoryBlinkr is here to help – a game where you only have until your next blink to remember an image or text and replicate it as accurately as possible.
We wanted a chance to work with computer vision and game development, and since the final product is essentially a collection of minigames with a common theme, it was perfect for learning a variety of new systems.
What it does
The project is a memory game where the user has to memorize something on the screen as quickly as possible, as it disappears when they blink and they have to reproduce it. We implemented a few versions as individual minigames:
- Grid game: A grid of black and white squares appears on the screen. Each level gets harder as the grid size increases and the goal is to advance as far as possible.
- Image game: A random image appears on the screen and the goal is to replicate the image by drawing on a canvas.
- Phrase game: The player inputs a topic, which is used to generate a short sentence. The sentence is presented briefly and the goal is to reinput the phrase given.
How we built it
We started by setting up our stack, and then split up the tasks of initializing the UI elements and blink detection, as they were the fundamental components of the MVP. The first game we developed was the grid game as it was the most straightforward and served as a baseline for the direction of the project.
Once we had these systems implemented, we began work on some other minigames which we found interesting, intentionally choosing concepts that let us broaden our skillsets. The paragraph minigame required an NLP API (we chose Cohere's), and the freeform drawing required some mathematical calculations to compare differences between images.
Finally, we spent the last night polishing the product and preparing for our pitch!
Challenges we ran into
- Image comparison: how do you quantify the differences between two images?
- Getting the camera to work for OpenCV, and adjusting the Eye Aspect Ratio (EAR) to correspond appropriately to a blink
Accomplishments that we're proud of
- Created a functional game !!
What we learned
- OpenCV for gesture detection
- Image processing/comparison with mean square error
What's next for MemoryBlinkr
- UI and feature improvements!