Experimenting with brain-controlled technology and interactive compositions

An implementation of Quartz Composer combining the Emotiv EPOC and interactive compositions with impressive visual effects


By working with Apple node-based visual programming language Quartz Composer, I implemented a simple solution to combine Emotiv EPOC and some interactive compositions with impressive visual effects in an effective way in a short time.

The Emotiv EPOC is a high resolution, multi-channel, neuroheadset. The headset allows the user to control software, apps, and machines, brain-controlled technology. The experiments consist of brain-computer software interfaces that record the brain signals from the headset and convert them into user inputs.

With a minimum viable product approach, I designed and developed three applications with distinctive interaction concepts behind.

The first experience presented a simple primary particle emitter and Core Image Filter fed by the user brain signals. It works similarly to a hand device trail, but implementing the brain-computer interface. 


The second experiment uses a Twirl Distortion patch in Quartz Composer. This patch rotates pixels around a point to give a twirling effect. You can specify the number of rotations as well as the centre and radius of the effect. By mapping the coordinates of the effect to the user’s position, we can implement the data input from the Emotiv to the cursor in the Quartz composition.


The third experiment uses a particle system with an image. Similarly, coordinates from the Emotiv input interacts with the particle system coordinate on the screen. The result is a playful interactive system.


I am interested in using this custom app I’ve written for my first physical installation and combining DMX protocols to enable users to control real objects, such as laser projector patterns.

I’m using a laser projector with several DMX channels that control different parameters – such as x-axis, y-axis, zoom, influencing the patterns the laser can produce.

Employing an Enttec DMX USB Pro interface and a custom Cinder C++ application, I directly controlled the lasers by reading the data coming from the Emotiv headset.

For the last project, I changed the setup by using a DMX dimmer pack and the Enttec DMX USB Pro and another Cinder custom app. The app itself was straightforward, using just a single channel to send different values to the dimmer. Using a similar approach, the channel assigned to the light received the input from the values controlled by the Emotiv. A very straightforward process again, but a very nice project.