NOTE: For "Try it Out", you can't try it out unless you have a MindFlex EEG+Arduino connected via USB to the computer running the Processing program :(
Inspiration
Spontaneous inspiration by pure chance and luck--a friend gave us an EEG, and we suddenly decided that we wanted to use the data output to create cool things, despite the fact that as freshman comp sci newbies we had almost no idea how to do it!
What it does
We're using a Mattel Mindflex with an attached Arduino to extract data on brain waves. The user puts the Mindflex on their head and connects it to the computer. Packets of data are sent from the Arduino to the computer at a rate of about one packet per second. This data includes intensity of focus, relaxation, and frequencies of specific brain waves. Our program, written in Processing, processes (no pun intended) this data and creates a variety of visual representations. There are a total of four different modes each displaying data representations of different aspects of brain waves. The first mode displays a circle which changes in size and color depending on how focused the mental state of the participant is. It grows larger and turns more green as the focus of the participant increases while decreasing in size and changing colors to red proportionately as the focus decreases. The second mode, intensity of focus is also displayed using red dots. As the user becomes more intensely focused, the rate at which red dots are displayed, their size, and their intensity of the color increases. As the user becomes less focused, the rate at which red dots are displayed, their size, and their intensity of color decreases. The third mode displays the calmness of a user. It does so by constructing a line rotating around the axis which increases in size and changes in color based on the calmness of the individual. The last mode is more for making art of the data the Mindflex receives. Using the two variables focus and calmness(x and y), it plots the distance between the two points. This mode is primarily used for the displaying of the data in an artistic form. The user can switch between these two modes by typing the numbers on the keypad of the computer.
How I built it
We worked on the software implementation of transforming raw data from the MindFlex/Arduino into various visual forms. The application was constructed in Processing, a Java-based IDE mainly used for visual and art programming, although Processing has many more capabilities. To handle the data packets, Processing's Serial library was utilized.
Challenges I ran into
We're a group of freshmen who collectively have very little programming experience, so the biggest (and arguably the most fun and meaningful) challenge was that we had to learn and read documentation along the way. Furthermore, the "toy" EEG we had the privilege to borrow from one of our friends is, of course, far from industry/research grade. Hence, most of the data output is near nonsensical as the brain is a very complex organ. The two data values we used, "Calmness" and "Focus" were black boxes and derived from trade secret algorithms, but are backed up with statistical significance and so have correlation to some degree with associated brain states.
Accomplishments that I'm proud of
As a group of programming newbies, we were really just satisfied with creating a working program. It was a wonderful and unique experience to see real-world and potentially meaningful data collected and transferred by hardware and processed with our own custom-made program.
What I learned
It was really cool creating BrainArt, but we quickly realized that a major limiting factor was the quality of data reading and interpretation. If we were able to access an industry/research grade brainwave scanner, the possibilities would be endless. There are technologies such as optical drawing/typing, thought-powered video games and more that are based off of the concept of brain wave interpretation. We think that through BrainArt, we were able to take our first peek and step into the vast world of hardware/software interaction and data interpretation and visualization. So far, high school and college programming courses have only taught us basic language syntax. We've been producing passionless and boring text output in the terminal in the classroom, but BrainArt has taught us that programming can be so much more.
What's next for BrainArt
Intense brain-controlled 3D games! Beautifully brain-generated fireworks! Just kidding. There's not much more we can do with the arbitrary and limited output of the MindFlex, but it was a great programming exercise and eye-opener. Perhaps a statistical data-crunching program could be created in order to attempt to make sense of the varying brain wavelength readings in addition to the two black box values, but we don't really trust the stability and consistency of the MindFlex--there may be too much data noise/error.
Log in or sign up for Devpost to join the conversation.