Did some work this weekend on making np_epoc a little more usable, since v0.1 had VID/PID and encryption keys hardcoded to the headset I have.


VID/PID and key are now selectable by users. You can also get a device count to make sure you have the VID/PID pair set up correctly.

Hopefully key and ID detection will be done by emokit soon, but that's going to take a little more work since we're not yet sure how the key is deduced on connection.

Binaries are available on the sourceforge NP Labs release site. Currently I've only got OS X 10.6 Max 5 binaries up. Pd has been tested on linux, works fine, but the source package is... not the best at the moment, so I'll hopefully have OS X and Linux Pd binaries up soon. I'm still trying to figure out how I'm going to build the binaries for windows at all, since VS10 is giving me some problems against flext.

They say he who dies with the most maintainerships... dies very tired.

The emokit project, started by Daeken, aims to provide a free driver to access raw data coming from the Emotiv EPOC headset. However, he's been really busy being awesome elsewhere lately, so after picking up the decode key for the special pre-release unit, writing a C implementation of the library, and fielding some support emails, I (Kyle) have finally just gone ahead and taken the lead maintainer role on the project.

Many thanks go to Daeken for the initial work on getting the library and community together, and hopefully he'll come back to visit at some point.

The new main repo is at


Next big steps for the project are:

  • Isolating the power level readings
  • Finishing up and formalizing the C library
  • Getting a full v0.1 release out

I also develop the np_epoc external for Max/Pd. I expect that I'll be updating the external along with anything we get done with the headset itself, so keep an eye on that on my personal externals page.

It's been a while since I've started up a new website, and I found myself doing enough work on health hardware that I decided to spin it out into its own site. Not to mention, there's already a ton of drivers and software out there, but there's been no central place to record it thus far. openyou.org will feature posts about open source health technology, as well as information on library and driver projects to give developers and users new ways to learn about themselves via code.

Hopefully I manage to keep it up a little better than I have here and slashdong lately, too.

np_thirdspacevest Max/MSP External

As of last night, I got Windows, OS X, and Linux support working on the C version of libthirdspacevest for the The TN Games Third Space Vest, so now it seemed like a good idea to do my usual followup and make a Max/MSP and PureData external for it. So, there's now a np_thirdspacevest repo, and matching binary distribution site on sourceforge. I've just released version 0.1, the source code and Max 5 external are on sourceforge. Will build more externals as I need them or as I get demand, but, well, I've managed to go from getting hardware to full cross platform drivers and libraries for 3 languages in the span of a week, so I'm just gonna sit here and feel proud of myself for the moment.

Presenting libthirdspacevest, the open source, cross platform driver for the The TN Games Third Space Vest by Kyle Machulis/Nonpolynomial Labs.

Because apparently it wasn't enough to just work on the kinect.

Third Space Vest

This is a USB controlled vest with 8 air cells in it, which can be used to cause quick haptic force via pneumatics. In other words, it's a vest that can simulate being shot, by way of making the user feel like a roll of bubble wrap. I've also heard it described as "being poked by gnomes. And not with their fingers." While I cannot vouch for the physical accuracy of that statement (yet), it does fit well with the mental images of the feeling.

As usual, I decided to reverse engineer it to write my own drivers, which will eventually turn into Max/Pd externals, and also another project that I'll be annoucing later this week.

This normally wouldn't be a problem, but this time around, much like the issues emokit had, the manufacturer encrypted the protocol, but distributed a free (pre-compiled, closed source) SDK. I ended up writing up the procedure for reversing out the protocol and building the library, since it's one of the more complicated procedures I've had to do to get new hardware working. I was thinking about posting the doc here, but it's rather long.

Anyways, it's now done and there's proof of concept python using pyusb in the repo. I'll be extending this to a C API as soon as possible, just to get it over with since there's not a ton of functionality to the vest.

To close, here's a video of my cat versus the vest (running my code!):