BCI-UE4-Plugin - Brain-Computer-Interface for Unreal Engine 4

Brain-Computer-Interface Dev-Kit for Unreal Engine 4


  • Fully open-source and customizable Brain-Computer-Interface for UE4
  • Different levels of depth for usage: C++, Blueprint, optional GUI (for easier access)
  • Compatible with nearly all available hardware via openvibe
  • Compatible with multiple Acquisition Software Packages (ranging from consumer to professional research products)
  • Focus on transparency and customizability
  • Focus on simplicity and versatility, as far as technologies allow us
  • Signal Generation for Simulated Inputs
  • For experimentation, research, education, game design, art, training,

Compatible Software:

  • OpenVibe is “a software platform dedicated to designing, testing and using brain-computer interfaces”. It covers the signal-processing and can be very powerful. The community can be found in the OpenVibe Forum.

  • Neuromore

  • BioEra

Please note: The preprocessing of signals is done with the EEG-Acquisition Software and is not done with our UE4-BCI-Interface. However, any signal can further be processed and used within Unreal Engine. To capture and export signals from UE4, take a look at our Data Tracker and Visualization Plugin. In general, please act responsibly!

UE4-BCI-Plugin Example:
Download ExampleMap (241 MB)


Introduction Video:

Community Projects and Customers:

  • [UE4] BCITreeShadow by Bryan Zhu
    Art Project for the Guangzhou Academy of Fine Arts
    (he also made a nice documentationon / tutorial on the project)

  • Brain computer interface (BCI) generated music in Games by Richard Smith
    School of Design and Informatics Abertay University. [In progress. Draft]

  • StoryUP

Communication Channel:
Thauros-Development ✧@✧

If you are a student or you simply want to do something awesome with our plugin,
but you can’t afford it, feel free to get in contact with us


Very nice.

We are happy to present you the Brain Computer Interface for Unreal Engine 4.

Have fun and let us know about your ideas for future updates!

This is great!
But i Can’t seem to download on the market place link.

thanks Superxcm, the marketplace team has this on their high priority list! :slight_smile:

Thanks! Will wait for it :slight_smile:

should be up again! feel free to get in touch with us if you experience any problems

Thanks @LeeF for releasing this great plugin. From your video it seems OpenVibe is interfaced using its TCP-IP outlet. How about LSL compatibility? GitHub - sccn/labstreaminglayer: LabStreamingLayer super repository comprising submodules for LSL
This open format is getting widespread and allows to connect not only to OpenVibe, but also QUSP and more…

Thank you for this info Jonas_OMI! We are always interested in increasing the compatibility to other products. Are you interested in using LSL?
Openvibe supports LSL in principle, see this post, so the Plugin should work with LSL Data as well.

This is so cool! What a way to release something that has received great transaction this year (2016). I have a Muse for meditation. I am fascinated about other uses. :cool:

Thank you PeterLNewton, yes it is quite an undiscovered frontier :slight_smile:

Actually I would be especially interested in using LSL directly in order to stay “software agnostic” and be able to later get rid or change this third-party biosignal analysis plateform. Please keep me informed if you decide to integrate this LSL compatibility in your plugin!

thanks Jonas_OMI
At least one way to process raw EEG-Data must exist, either a third-party tool like openvibe, or you must write a custom interface for acquisition, which is in someway obsolete, because Openvibe (based mainly on python) is powerful to calculate any kind of parameter or can be fully integrated into own software chains (because open-source) to run in the background and to pass-through signals with a minimum of preprocessing.
We can recommend it, because it is free and provides an incredible amount of inter-compatibility of hardware inputs and outgoing data streams, including LSL.

If you are interested in doing some simple signal-processing within Unreal Engine 4, you can take a look at our Signal- and Data-Processing Plugin that features Interactive Real-Time Visualization within your game


You can still use LSL in that context. I do. My data is streamed from the hardware via LSL. Then, I use Python to do my signal processing and send the result on yet another stream; if I’m feeling fancy then I’ll use NeuroPype to do the signal processing and it has both inlets and outlets for LSL. Then UE4 or Unity picks up the processed signal stream.

Thanks bullale, I will mention a LSL implementation in our next dev meeting. I think an LSL interface for Unreal Engine shouldn’t be too hard to implement. If you already did some development and you want to contribute - you’re welcome!

I’ve sent an email to your marketplace email with questions, thanks in advance.

Today I bought BCI Plugin.
When I try to play the example map I get this error:

I really need to use this plugin in the version UE4.17. and found no Emotiv plugin for this version.
I hope you got some solution and I didn’t buy this great plugin for nothing.

Hello ChevCheliosSun,

you got mail :slight_smile:

We are really sorry, but the Marketplace Rules don’t allow us to include the third party software from emotiv within the marketplace release!
Though these are the right steps you mentioned, we made the instructions on the forum a little bit more clearer!

We will send you a precompiled 4.17 version with the emotiv sdk included!



Hello Lee!
Ok, now it is not giving the error message. Great I see the plugin is working.
BUT: The example project does not completely clear for me. I mean what to do now? I did not find any tutorial step-by-step. Please give me the right directions.
I need to use Only the Emotiv Mental Commands. I just need to get a mental command for an action event.

And when I try to train the command in the example level, it doesn’t do anything.

Thank you in advance.

Sorry for this but it’s me again :slight_smile:
Why do I have this error?
LogBCI: Error: EDK_INVALID_USER_ID: The user ID supplied to the function is invalid!

And when I hit train reference start button, nothing happens it wont start.
I’m using Unreal Engine and free SDK version.
I’ve just set up everything I have another username wich is working correctly with EPOC+ in Emotiv Control panel.
But when I try it in my project with the same username then it fails.
I get these two lines in my output log:
EDK_OK: success!
Connection to EmoEngine established!

I just want to use the cloud computing only free method I don’t need raw EEG or other fancy things.

Please tell me how to fix this.

Propably in the plugin the engine connect should have use remote connect?
I’m talking about this:
The EDK needs to be initialized via IEE_EngineConnect() or IEE_EngineRemoteConnect()!

I’m not sure but maybe you wrote the plugin the way it connects only via IEE_EngineConnect() wich requires raw EEG as well as paid emotiv SDK license?

And Maybe if you would use IEE_EngineRemoteConnect()! it would working as it should be completely for free?

If above is true, how to make it to be functional for free?
Or else: Why does the user ID beeing invalid?