Back to NumFOCUS
GSoC 2026

Matplotlib Overlay Layer API for Smooth Interactive Tools

I propose to implement the Overlay Layer API for Matplotlib’s interactive backends. Currently, tools like the Cursor widget force a full figure redraw on every mouse move, making even a simple crosshair feel laggy. This project introduces a canvas-owned Overlay Manager that stores lightweight, layered overlay primitives (lines, rectangles, etc.) with in-place update handles. Overlays will be drawn independently of the main figure using the fastest available path: native GUI painting (starting with QtAgg), a blit-based fallback when possible, or a lightweight full-redraw fallback otherwise. As the minimum deliverable, I will build a fast, smooth built-in Crosshair tool (integrated with ToolManager) that works correctly with shared Axes and becomes a standard interactive feature alongside Pan/Zoom.

Project details

Contributor

Vikash Kumar_23

Mentors

Not available

Technologies

Not listed in the archive