Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Google Summer of Code program provides a stipend for university students who want to spend a summer contributing code to open-source projects. Open Ephys participated as a mentoring organization in 2016, but we were not accepted for the 2017 program. We'll try again in 2018, but until . Until then, we'll leave this page up as a reference.Below is will serve as a list of projects that would be extremely beneficial to our user base, and which could be completed in a 12-week period. 

Getting started

If you're new to Open Ephys, we recommend reading through our main website, this wiki, and our google group, or just email and let us know what projects you might be interested in working on. You should also download our software and work your way through this Tutorial

To start working with our code, please work with the newer, plugin-based code base at Most of the open issues and bugs are still located in the repository of our slightly older non-plugin software at

If you haven't already, you should read through the GSoC Student Manual. The 2017 student application window is March 20th through April 3rd.

Please use for all communication related to GSoC. Do not email unless you have a specific question about the software.

Application instructions

You'll officially apply through Google starting March 20th. The information on this page is intended to help you decide if you'd like to develop a proposal with us.

Open Ephys is looking for students to help us improve our GUI, an open-source data acquisition application used by neuroscientists. You'll have the opportunity to contribute code that will be applied immediately to real experiments in labs around the world, as well as to learn about the scientific motivations that drove us to create Open Ephys.

The only prerequisite is proficiency in C++, as demonstrated through coursework, code samples, and discussions with potential mentors. Experience with signal processing, data visualization, machine learning, embedded systems, and/or the Juce framework may be helpful, but are not necessary. Our software runs on Windows, Mac, and Linux, so you'll be able to work with the OS of your choice.

To start developing your proposal with Open Ephys, please send the following information to

  • Contact details: full name, location, email, and Skype account
  • An up-to-date resume
  • A link to your GitHub page (with a list of the repositories you've contributed the most to)
  • A 1-page letter describing the project(s) you're interested in working on (see below for suggestions). Your letter should describe what you've already done with the software to make sure that you understand what each of these projects is really about. Mention if you're somewhere that has active electrophysiology researchers who might help you test your development.
  • Bonus points if you've already squashed some bugs listed at

Proposal ideas

Below is a list of potential projects for GSoC students. This is just a subset of the many possibilities, so feel free to suggest your own ideas as well. This list will also be useful for anyone else that's looking for ways to contribute to the GUI.

1. Julia plugin module

Description: Creating custom processing modules for the Open Ephys GUI currently requires knowledge of C++. However, most scientists prefer to write code in high-level languages, such as Python and Matlab. Julia is a relatively new language for scientific computing that combines a syntax similar to Matlab with the speed of compiled C++. It's easy to call Julia code from a C++ application using the Julia C++ interface. In order to take advantage of the vast amount of signal processing code that's been written by neuroscientists, and to make it easier for users to modify the GUI, we'd like to make it possible to run Julia code directly within our software. Julia modules could be used for such applications as detecting patterns in spiking activity or performing spectral analysis on neural signals. We already have a working minimal prototype (, but it needs to be made more robust and user-friendly.