Prospective GSoC 2026 contributor – introduction and guidance request

Hello everyone,

My name is Mohit, and I am a Computer Science student from India currently pursuing B.Tech in CSE.

I am very interested in contributing to Matplotlib and preparing for Google Summer of Code 2026.

I have experience working with Python, machine learning projects, and web development (React, Flask). I recently started exploring the Matplotlib repository and reading the contributing guidelines.

I would like to begin contributing and would really appreciate guidance on beginner-friendly issues or areas where new contributors can start.

Thank you, and I look forward to learning from the community.

1 Like

"Welcome Mohit! Since you have a background in React and Flask, you might find the Matplotlib web backend or documentation styling particularly interesting.

To get started, I’d suggest setting up a local development environment and trying to run the existing test suite. Proving you can run the tests locally is usually a great first step before picking up a code issue. Looking forward to seeing your contributions!"

@Akshay_Jaiswal Thank you for the guidance! I took your advice to heart. Over the last week, I worked on documentation styling and successfully got my first PR (#31275) passing CI to fix the Sphinx minigallery directives.

I also looked into the backend side you mentioned, and I am incredibly interested in the GSoC 2026: “Overlay layer API for interactive backends” project. Given my React/Flask background, building a fast, backend-independent layer for interactive elements like cursors sounds like a perfect fit.

I am currently reading through Issue #30515 to draft my proposal. For the mentors of this project: Should the initial GSoC scope focus on getting this overlay working for just one specific interactive backend to prove the concept, or is the goal to draft the base class to support all of them immediately?

Hi @Mohit_7999 please answer these questions specifically:

https://discourse.matplotlib.org/t/gsoc-introduction-template/26165/4

for the proposal, implement specific than generalize is usually a better plan of attack. This is the type of thing that will start as provisional API to allow for changes to make the generalization easier.

Hi @story645, thanks for sharing the template — here are my responses:

What do you use Matplotlib for?
I mainly use Matplotlib in my ML projects for data visualization. I’ve used it to create bar charts, pie charts, and line plots.

Recently, I worked on a project called Chemical Parameter Visualization where I read data from CSV files and plotted it using different graphs. That helped me understand how to present data more clearly for analysis.

Are you interested in any part of the Matplotlib API?
I’m particularly interested in the interactive and backend side.

While building a crosshair cursor prototype using blitting, I noticed how full redraws affect performance. That got me interested in how Matplotlib handles rendering and interaction internally.

Which GSoC project are you interested in?
I’m interested in the Overlay Layer API for interactive backends.

From what I understand, the goal is to avoid full redraws and update only the interactive elements using a separate overlay layer. I find this interesting because I’ve already seen this issue while working on interactive plots.

Do you have experience relevant to the project?
Yes.

I built a prototype called Matplotlib-Overlay-Interaction-Engine where I implemented a crosshair cursor using blitting to avoid full redraws. This helped me understand the rendering pipeline better.

I also submitted a PR (#31275) related to documentation (minigallery) and I’m currently updating it based on feedback.

What’s your programming experience?
I mainly use Python for ML and backend-related work, and C++ for DSA.

Some of my projects include:

  • NeuroZone (ML + web integration)

  • Face Emotion Detection

  • Chatbot using APIs

Why I’m interested in this project
I want to understand how a real library like Matplotlib is designed and optimized internally.

While working on my prototype, I realized how important efficient rendering is for interactive applications, and I’d like to contribute to improving that in a more structured way.

Hi @story645, thank you for the guidance earlier—it really helped shape my thinking.

Taking your suggestion to implement specifically rather than generalize, I am planning to focus the initial architecture entirely on the Agg backend first before extending the Overlay API to Qt and Tk.

I have put together a detailed technical draft of my GSoC proposal around this approach. I would be incredibly grateful for your feedback, particularly on whether the FigureCanvasBase integration aligns with Matplotlib’s long-term design goals:

GOOGLE DOC LINK HERE - GSoC Proposal: Matplotlib - Overlay Layer API for High-Performance Interactive Rendering - Google Docs

Also, a quick architectural question: When handling background cache invalidation during zoom/pan events, would it be better to rely heavily on draw_event callbacks, or should the OverlayManager explicitly track those axis limit changes internally?

Thanks again for your time!

Hi @story645, I hope you’re doing well.

I’ve made some refinements to my proposal, especially clarifying the API design and interaction behavior based on my earlier draft.

I completely understand how busy things are at the moment, so no rush at all — but if you happen to get a chance, I’d really appreciate any feedback, particularly on whether the FigureCanvasBase-based approach aligns with the intended project direction.

Here’s the updated proposal: Matplotlib Overlay Layer API for High Performance Interactive Rendering - Google Docs

Thanks again for your time and guidance!