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.
If you're new to Open Ephys, we recommend reading through our main website, this wiki, and our google group, or just email firstname.lastname@example.org 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 https://github.com/open-ephys/plugin-GUI. Most of the open issues and bugs are still located in the repository of our slightly older non-plugin software at https://github.com/open-ephys/GUI/issues.
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 email@example.com for all communication related to GSoC. Do not email firstname.lastname@example.org unless you have a specific question about the software.
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 email@example.com:
- 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 https://github.com/open-ephys/gui/issues
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 (https://github.com/open-ephys/gui/tree/jvoigts), but it needs to be made more robust and user-friendly.