-
Notifications
You must be signed in to change notification settings - Fork 182
Google Summer of Code 2024 (GSOC2024)
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).
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:
- Interactive Computer Graphics - 6th / 7th Edition by Edward Angel and Dave Shreiner
- Effective Computation in Physics by Katy Huff and Anthony Scopatz.
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:
- Subscribing to our mailing list and sending a message to [email protected]
- Opening a discussion and Select GSOC Request
- Joining our discord community.
Potential candidates should follow all these steps before applying for the GSoC:
- Take a look at the guidelines on how to contribute to FURY.
- Go through the tutorials and examples on the website, make sure you're familiar with the library.
- 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.
- 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!)
- 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.
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 2 or 3 of these projects will be selected. Not more!
If you have any questions or if you want to contact a mentor:
- open a new discussion with GSOC as a category.
- join our discord community and ask them to our GSOC channel.
Description:
The primary objective is to implement key improvements, including transitioning to keyword-only arguments for a more robust and readable codebase. Additionally, the initiative aims to integrate lazy loading, enhancing the tool's efficiency by loading resources only when needed. This modernization effort reflects a commitment to maintainability, code clarity, and optimizing performance in FURY, ensuring it remains at the forefront of scientific visualization tools in the Python ecosystem. Other potential tasks may include code refactoring, adopting best practices, and incorporating new features to further elevate FURY's capabilities and user experience.
Project Steps:
- Step 1: keyword-only arguments integration.
- Step 2: lazy loading implementation.
- Step 3: Improve and simplify the management of the current website.
- Step 4: Improve Issues and Pull Requests Triage + Triage automation.
- Step 4: Integrates multiple Github Actions to simplify the workflows.
- Step 5: Refactor some FURY packages + Improves Docstring
- Step 6: Add Tutorials
Difficulty: Beginner
Dedication: Part-time (175 hours) or full-time (350 hours) project
Skills Required: Python, Sphinx.
Mentors: Serge Koudoro, Nasim Anousheh
Description:
The primary objective is to implement an AI communication wizard in Python! Your mission is to revolutionize the way we connect with our vibrant community. Picture this savvy bot delving into the vast realms of our website, documentation, blog, and even the lively discussions on Discord and GitHub.
This ingenious AI marvel is designed to be a maestro of communication, perpetually learning from every platform interaction. Imagine its prowess: effortlessly responding to common queries on GitHub discussions, holding insightful conversations in our lively Discord channel, and taking the helm of our Twitter account to curate and broadcast engaging content. From summarizing blog posts to showcasing merged pull requests and sparking highlights in discussions, this AI agent is poised to be the maestro of seamless, dynamic communication across all our channels.
Project Steps:
- Step 1: Choose technology to use.
- Step 2: Starting Learning process
- Step 3: Implement discord Integration.
- Step 4: Implement Github Integration
- Step 4: Implement Twitter integration
During development, the candidate will produce tests and documentation for the resulting code and API.
Difficulty: Beginner / Intermediate
Dedication: Part-time (175 hours) or full-time (350 hours) project
Skills Required: Python, LLM, Rest API.
Mentors: Javier Guaje, Serge Koudoro
Description:
Dive into the cutting-edge world of graphics with the Integration of WGPU Backend into FURY using wgpu-py! This exciting collaboration opens doors to enhanced graphics capabilities, fusing the versatility of FURY with the robustness of the WGPU backend. Brace yourself for a seamless fusion of two powerful tools, promising a new era of immersive and accelerated visualizations.
Project Steps:
- Step 1: Integrate Basic primitives.
- Step 2: Integrate Renderer.
- Step 3: Study this backend limits.
- Step 4: Streamlines/ Streamtube integration.
- Step 5: Study and connection both animation framework.
Difficulty: Advanced
Dedication: Part-time (175 hours) or full-time (350 hours) project
Skills Required: Python, Shader Programming, OpenGL, scientific visualization.
Mentors: Elefterios Garyfallidis, Serge Koudoro