GSoC 2026
GNU Octave

GNU Octave โ€” Project Ideas

Summer of Code - Getting Started

Jump to navigation

Jump to search

mentoring organization for GSoC 2026.

Since 2011 the GNU Octave project has successfully mentored:

in Summer of Code (SoC) programs by Google and ESA.

Those SoC programs aim to advertise open-source software development and to attract potential new Octave developers.

Steps toward a successful application

  • ๐Ÿ˜‰๐Ÿ’ฌ We want to get to know you (before the deadline). Communicate with us.- Join orOctave DiscourseIRCfor general discussion and to ask questions (Please do not use the bug tracker for general GSOC inquiries unrelated to specific bugs found with Octave.) Using a nickname is fine. - Show us that you're motivated to work on Octave ๐Ÿ’ป. There is no need to present an overwhelming CV ๐Ÿ†; evidence of involvement with Octave is more important. If you never talked to us, we will likely reject your proposal, even it looks good ๐Ÿšฎ

  • Join

  • ๐Ÿ‘ฉ๐Ÿ”ฌ Get your hands dirty.- We are curious about your programming skills ๐Ÿš€

  • Your application will be much stronger if you fix Octave bugsorsubmit patchesbefore or during the application period. - You can take a look at the short projectsfor some simple bugs to start with.

  • Your application will be much stronger if you Use Octave!- If you come across something that does not work the way you like โžก๏ธ try to fix that ๐Ÿ”ง

  • Or if you find a missing function โžก๏ธ try to implement it.

  • We are curious about your programming skills ๐Ÿš€

  • ๐Ÿ“๐Ÿ’ก Tell us what you are going to do.- Do not write just to say what project you're interested in. Be specific about what you are going to do, include links ๐Ÿ”—, show us you know what you are talking about ๐Ÿ’ก, and ask many smart questions๐Ÿค“ - Remember, we are volunteer developers and not your boss๐Ÿ™‚

  • Do not write just to say what project you're interested in. Be specific about what you are going to do, include links ๐Ÿ”—, show us you know what you are talking about ๐Ÿ’ก, and ask many

  • ๐Ÿ“” Prepare your proposal with us.- Try to show us as early as possible a draft of your proposal ๐Ÿ“‘

  • If we see your proposal for the first time after the application deadline, it might easily contain some paragraphs not fully clear to us. Ongoing interaction will give us more confidence that you are capable of working on your project ๐Ÿ™‚๐Ÿ‘

  • Hereโ€™s a sample proposal outline that you can use as a reference when drafting your own application. Sample Proposal - Then submit the proposal following the applicable rules, e.g. for GSoC. ๐Ÿ“จ

How do we judge your application?

Depending on the mentors and SoC program there are varieties, but typically the main factors considered would be:

You have demonstrated interest in Octave and an ability to make substantial modifications to Octave- The most important thing is that you've contributed some interesting code samples to judge your skills. It's OK during the application period to ask for help on how to format these code samples, which normally are Mercurial patches.

You showed understanding of your topic- Your proposal should make it clear that you're reasonably well versed in the subject area and won't need all summer just to read up on it.

Well thought out, adequately detailed, realistic project plan- "I'm good at this, so trust me" isn't enough. In your proposal, you should describe which algorithms you'll use and how you'll integrate with existing Octave code. You should also prepare a project timeline and goals for the midterm and final evaluations.

What you should know about Octave

GNU Octave is mostly written in C++ and its own scripting language that is mostly compatible with Matlab. There are bits and pieces of Fortran, Perl, C, awk, and Unix shell scripts here and there. In addition to being familiar with C++ and Octave's scripting language, you as successful applicant will be familiar with or able to quickly learn about Octave's infrastructure. You can't spend the whole summer learning how to build Octave or prepare a changeset and still successfully complete your project ๐Ÿ˜‡

You should know:

Suggested projects

The following suggested projects are distilled from the Projects page for the benefit of potential SoC participants. You can also look at our completed past projects, or the current | Octave Development Roadmap for more inspiration.

propose your own projects. If you are passionate about your project, it will be easy to find an Octave developer to mentor and guide you. Please note that for such a proposal to be successful it will almost certainly involve initiating pre-proposal discussion over at the

Octave Discourse forum.

Custom re-implementation of the texi2html (v.1.82) command line tool

Implement a compiled .oct function to relax the dependency of the pkg-octave-doc package on texi2html (v.1.82) command line tool, which is no longer maintained or further developed but also not readily available to all linux distributions. The idea is to have a texi2html function within the pkg-octave-doc package that will replace the functionality of the texi2html (v.1.82) command line tool. This will also help improve the speed of pkg-octave-doc processing large packages, which contain specific tags (such as @math) which are currently handled within Octave code.

Project size[?]andDifficulty

  • ~350 hours (hard)

Required skills

  • Perl, C++, Octave, Texinfo, HTML

Potential mentors

Add anova object to the statistics package

Implement anova classdef including its methods and extend the functionality of the statistics package for Analysis of Variance. More information about this project can be found at the related issue in the statistics repository.

Project size[?]andDifficulty

  • ~350 hours (hard)

Required skills

  • Octave, analysis of variance, statistics, classdef

Potential mentors

Add LinearModel and CompactLinearModel objects to the statistics package

Implement LinearModel and CompactLinearModel classdefs including their methods and extend the functionality of the statistics package for linear regression by refactoring the existing fitlm function and implementing the missing stepwiselm function. More information about this project can be found at the related issue in the statistics repository.

Project size[?]andDifficulty

  • ~350 hours (hard)

Required skills

  • Octave, linear models, statistics, classdef

Potential mentors

Implement missing ODE capabilities to support Chebfun

Chebfun uses interpolation to approximate functions to very high accuracy, giving numerical computing that feels like symbolic computing. The software is implemented as collection of โ€œclassdefโ€ classes and is licensed under the BSD license. In the past several years, weโ€™ve made an effort to get Chebfun working on Octave; see the current progress here. However, Chebfun does not yet fully work, largely due to differences and issues with missing Octave classdef and ODE related features. We plan to continue that effort, with a focus on implementing missing ODE functionality in Octave itself. Work may include improving or extending the ODE capabilities of Octave via the SUNDIALS package, patches to Chebfun itself, or general improvement to Octaveโ€™s โ€œclassdefโ€ implementation, depending on interest.

Project size[?]andDifficulty

  • ~350 hours (hard)

Required skills

  • Octave, numerical differential equations, polynomial interpolation and approximation theory, C++.

Potential mentors

Project sizes

As of 2024, possible project sizes are 90 (small), 175 (medium), or 350 hours (large) [1].

Related Pages

Command Palette

Search for a command to run...