Skip to content

Google Summer of Code 2026

Maharshi Gor edited this page Mar 25, 2026 · 13 revisions

Introduction to FURY

FURY is a free and open source software library for scientific visualization and 3D animations. FURY contains many tools for visualizing a series of scientific data including graph and imaging data. FURY is participating in GSoC this year for the first time under the umbrella of the Python Software Foundation (PSF).

How to become a part of FURY's Google Summer of Code 2026

GSoC is a program that allows everyone (students, professional, academic, etc...) to learn contributing to an open-source project while receiving a fellowship from Google, and mentorship from open-source software developers. For details about this year's GSoC, please refer to this page.

Before considering becoming part of the FURY GSoC, please read about our expectations.

All participants should have basic knowledge of computer graphics, scientific computing, and development in Python. For a comprehensive introduction to these topics, please refer to these 2 books:

However, you should be already familiar with data analysis using Python and Numpy before applying.

Be happy to ask questions directly by choosing one of the following options:

Getting Started (Make sure to use v2 branch to do all the steps below as we are transitioning to wgpu).

Potential candidates should follow all these steps before applying for the GSoC:

  1. Take a look at the guidelines on how to contribute to FURY.
  2. Go through the tutorials and examples on the website, make sure you're familiar with the library.
  3. Run the tests. FURY has unit tests that are at about 90% coverage (amount of lines of code tested). Make sure you know how to run them, and if you've never done Python unit tests before you might want to read up on Pytest library.
  4. Figure out how to run a single test! Running one test instead of all of them will speed up your workflow when you are writing your tests! (hint, it's in the contributing docs!)
  5. Make your first contribution to FURY !!! Making a small enhancement/bugfix/documentation fix/etc to FURY is really important! It shows your understanding of the library and your Github knowledge. The fix does not need to be related to your proposal. We have and will continue adding some beginner-friendly issues in Github. You can see some of them here

This is a requirement from the PSF; it can help you get some idea of how things would work during the GSoC.

A Note on the Use of AI:

The FURY maintainers are well-versed in AI tools and utilize them regularly. While AI can be a helpful assistant, we expect every contributor to have a deep, line-by-line understanding of their pull requests (PRs). Before submitting, ensure you have thoroughly researched the problem, consulted the documentation, and verified that the issue hasn't already been addressed. Quality and technical accuracy are our priorities; unverified AI-generated content can lead to delays or rejection.

Furthermore, If you submit a PR that is clearly a blind copy-paste from a LLM, it won't just be rejected — it will make you look like you aren't doing the work. Use AI to optimize your workflow, but don't let it make you look like a "black box" contributor. Show us your own thinking.

Project Ideas (4)

Notice 1: More project ideas might appears Stay tuned and check regularly this page!

Notice 2: We want to provide the best mentoring to our students, only 1 or 2 of these projects will be selected. Not more!

If you have any questions or if you want to contact a mentor:

Project 1. Improving FURY Documentation Generation

Description:

The primary objective is to improve and modernize FURY’s documentation generation system. High-quality documentation is essential for a scientific visualization library like FURY, as it directly affects usability, learning experience, and community adoption.

Currently, the documentation build produces multiple warnings, some tutorials do not correctly generate visual outputs, and there is no support for animated content. These limitations reduce documentation clarity, increase maintenance overhead, and make it harder for users to fully understand FURY’s visualization workflows.

This project focuses on cleaning up the documentation build process, eliminating warnings, ensuring all tutorials generate their corresponding images, and adding support for GIF-based images for animated tutorials. These improvements will enhance documentation reliability, visual expressiveness, and long-term maintainability, keeping FURY’s documentation aligned with modern best practices.

Project Steps:

  • Step 1: Audit the documentation build and identify all existing warnings.
  • Step 2: Remove all documentation generation warnings (Sphinx configuration and extensions).
  • Step 3: Ensure all tutorials correctly generate and include static images.
  • Step 4: Standardize and simplify tutorial image generation workflows.
  • Step 5: Add support for GIF-based images to enable animated tutorials.
  • Step 6: Update documentation guidelines to support new features and prevent regressions.

Difficulty: Beginner

Dedication: Part-time (175 hours) or full-time (350 hours) project

Skills Required: Python, Sphinx.

Mentors: Maharshi Gor, Mohamed Abouagour

Project 2. Improving FURY Website and Demonstrations

Description:

The primary objective is to improve and modernize the FURY website while enhancing interactive and visual demonstrations of the library’s capabilities. The website serves as the first point of contact for many users and contributors, making clarity, accessibility, and visual appeal critical for community growth and adoption.

Currently, parts of the website are difficult to maintain, some content is outdated, and demonstrations could be better organized and more visually engaging. Additionally, the lack of clear, interactive examples limits the ability of new users to quickly understand FURY’s strengths and real-world use cases.

This project focuses on simplifying website management, improving structure and content organization, and developing high-quality demonstrations that clearly showcase FURY’s visualization features. By refining the website and adding well-designed demos, FURY will offer a more welcoming, informative, and compelling experience for both users and contributors.

Project Steps:

  • Step 1: Review the current website structure and identify maintainability and usability issues.
  • Step 2: Simplify and improve the website build and deployment process.
  • Step 3: Update and reorganize website content for clarity and consistency.
  • Step 4: Improve existing demonstrations to make them clearer, more visual, and easier to follow.
  • Step 5: Add new demonstrations highlighting key FURY features and workflows.
  • Step 6: Ensure demonstrations are well-integrated into the website and easy to discover.

Difficulty: Beginner

Dedication: Part-time (175 hours) or full-time (350 hours) project

Skills Required: Python, Web basics (HTML/CSS), Documentation tools.

Mentors: Maharshi Gor, Praneeth Shetty

Project 3. Billboard Actors for Existing FURY Actors

Description:

The primary objective is to extend FURY’s visualization capabilities by introducing billboard actors for existing FURY actors. Billboard actors are visual elements that always face the camera, making them particularly useful for annotations, labels, markers, and simplified representations in 3D scenes.

While FURY provides a rich set of actors for scientific visualization, many use cases can benefit from billboard-based representations to improve readability and performance, especially in complex or large-scale visualizations. Adding billboard versions of existing actors will help users create clearer, more informative scenes without sacrificing interactivity.

This project focuses on designing and implementing billboard actors that integrate seamlessly with the current FURY actor system. By reusing existing actors where possible and following FURY’s design principles, this enhancement will improve visual clarity, usability, and flexibility for a wide range of visualization workflows.

Project Steps:

  • Step 1: Review existing FURY actors and identify candidates for billboard-based implementations.
  • Step 2: Design a consistent API for billboard actors aligned with existing FURY actor patterns.
  • Step 3: Implement billboard actors that always face the camera.
  • Step 4: Integrate billboard actors with existing rendering and interaction systems.
  • Step 5: Add examples and demonstrations showcasing billboard actor use cases.
  • Step 6: Document the new billboard actors and their usage in tutorials and references.

Difficulty: Intermediate - Advance

Dedication: Part-time (175 hours) or full-time (350 hours) project

Skills Required: Python, Scientific visualization, Gaming Basic.

Mentors: Mohamed Abouagour, Maharshi Gor, Serge Koudoro

Project 4. Exporting FURY Scenes and Animations to Blender for Advanced Rendering

Description:

The goal of this project is to enable seamless integration between FURY and Blender, allowing users to export 3D scenes and animations from FURY to Blender for advanced rendering. This would expand FURY by tapping into Blender's powerful rendering and animation tools, prividing flexibility in ways that are not currently possible within FURY alone.

The project would involve using the Blender Python API to create an export pipeline that supports exporting 3D scenes, actors, and animations from FURY, retaining key attributes such as geometry, materials, lighting, camera setups, and animations. This functionality will be crucial for users who need high-quality renders for presentations, publications, or advanced visual storytelling.

Project Steps:

  • Step 1: Review the FURY scene and animation architecture to identify exportable elements.
  • Step 2: Design a Blender export interface that seamlessly integrates with FURY, utilizing the Blender Python API.
  • Step 3: Implement scene export, ensuring all FURY actors (e.g., meshes, lights, cameras) are correctly translated to Blender-compatible formats.
  • Step 4: Implement animation export, preserving animation keyframes, camera movements, and actor transformations.
  • Step 5: Test the export pipeline with various FURY scenes, ensuring accuracy and maintaining performance.
  • Step 6: Provide documentation and examples demonstrating the export process from FURY to Blender.

Difficulty: Intermediate - Advanced

Dedication: Part-time (175 hours) or full-time (350 hours)

Skills Required: Python, Blender Python API, 3D graphics, Scientific visualization.

Mentors: Mohamed Abouagour, Maharshi Gor, Serge Koudoro

More Projects to come