Introduction: EEG and the Force

We invented an apparatus that simulates the Force. Using a wireless EEG headset and a home automation module, the wearer of the device is able to control ambient lighting in the room, with the aim to see the dark side of the room.

In addition to that, the wearer can control a flock of particles by using mindtricks. A strong mind will result in an attractive force that pulls the particles together into a new organism.

The headset searches your feelings by responding to relaxation. Relaxation leads to alpha waves within the brain's neurons. Alpha waves lead to a wireless signal transmitted to the home automation module and the interactive environment.



Components / Software:

The software application was made in NodeBox for OpenGL, a free, cross-platform library for generating 2D animations with Python programming code. It is built on Pyglet and has built-in support for paths, layers, motion tweening, hardware-accelerated image effects, simple physics and interactivity.

- Nodebox OpenGL.
- Wireless EEG headset (we used a prototype developed by IMEC / Holst Centre)
- EEG software and a homebrew python library to connect to it. (headset.py in the gitrep).
- Loxone home automation module.
- Housing for the electric components.

The full power of our fully operational setup can be witnessed at the following URL:
http://organisms.be/index.php/valence



Source.

The source code can be looked at in the git repository.

attractor.py: the graphic environment is an agent based simulation controlled by a physics system of attractive and repulsive forces. It uses circle packing to arrange the different cells into a new structure.

headset.py is the bridge between the EEG software (IMEC) and the environment. It receives a large packet of data over upd and translates that into variables containning the brainwave information.

Below is an example that increases the dimensions of an ellipse based on alpha level.

from nodebox.graphics import *
from headset import Headset

# Create a connection to the headset app.
headset = Headset(‘127.0.0.1’ port=12000)

def draw(canvas):
    global headset
    headset.update(buffer=1024) # Read new EEG data.
    canvas.clear()
    x = canvas.width / 2
    y = canvas.height / 2
    r = headset.alpha[0].current * 100
    ellipse(x, y, r*2, r*2)

canvas.draw = draw
canvas.run()




Controlling the lights.

The dimming of the lights was done by using a home automation device which runs as a miniserver.

The module came with software called Loxone config. That enabled us to write a small modular network to connect the relaxation parameter over UDP to the dimmer module, part of the automation configuration.


--



A simulation of the attractor environment. See the forces, circle packing and the two sets of particles in action.


Wireless EEG-headset controls an interactive particle  system and surrounding lights.