Skip to content

Google Summer of Code 2020

Serge Koudoro edited this page Jan 17, 2020 · 16 revisions

Introduction to FURY

FURY is a free and open source software library for scientific visualization. FURY contains many tools for visualing different scientific data like graph network, biology data, diffusion magnetic resonance imaging (dMRI) analysis and tractography but also contains implementations of other computational imaging. 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 2020

GSoC is a program the allows students to learn by 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 subscribing to our mailing list and sending a message to [email protected]

Advice

Potential candidates should take a look at the guidelines on how to contribute to FURY. Making a small enhancement/bugfix/documentation fix/etc to FURY already before applying for the GSoC is a requirement from the PSF; it can help you get some idea how things would work during the GSoC. 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

Projects

We currently have 5 project ideas:

  • Project 1: Create new user interface widget. (Difficulty: intermediate). More information here
  • Project 2: Improve our animation framework via glsl (Difficulty: Advanced). More information here
  • Project 3: Create the Fury showcase (Difficulty: easy). More information here
  • Project 4: Improve website features via a new sphinx extensions (Difficulty: Intermediate). More information here
  • Project 5: Bring your own idea! (Difficulty: Easy/Intermediate/Advanced) If you've got a brilliant idea you'd like to propose, please make a new issue with the 'gsoc2020' tag to discuss it!

Note: Since we want to provides the best mentoring to our students, only 2 or 3 of these projects will be selected. Not more!

Projects in Details:

  1. Create new user interface widget

    Description: In this project you will build scifi-like 3D and 2D user interfaces inspired from Guardians of the Galaxy video. FURY provides many visualization capabilities. However we were not happy with interactive capabilities found in existing GUIs. For this reason we built our own UI engine. No Qt! Everything is integrated in the VTK scene. See example below that was generated during our 2016 GSoC participation. This is an example of an orbital orbital menu.

    In this project you will extend this work and add more futuristic widgets. The motto of this project is make everything interactive without performance issues. Here are the different steps to achieve:

    • Step 1: Get familiar with the library by fixing some issues like #75 #76 #108.
    • Step 2: Create ComboBox UI
    • Step 3: Select, Explore and develop one of this 3 subjects: Tree UI, Tab UI, Layout management.

    Difficulty: intermediate

    Skills required: Python, OpenGL and VTK

    Mentors: Serge Koudoro and David Reagan

  2. Improve our animation framework via glsl

    Description: Our new visualization engine supports GLSL shading language. Join our effort to built stunning animation of scientific datasets. You will have to program vertex and fragment shaders to generate different effects on VTK polydata. For examples, see code here. Here is an example without shaders

    Here are the different steps to achieve:

    • Step 1: Understand and Extend our current animation framework by fixing issues and adding new animation (Blink, Shear, waves... )
    • Step 1: Extend the framework to make it easy to combine animations.
    • Step 3: Create Demo of complexe animation and generate videos.

    Difficulty: high

    Skills required: GLSL, Python, OpenGL and VTK

    Mentors: Javier Guaje, Serge Koudoro

  3. Create the Fury showcase

    Description: Fury can be use with multiple different scientific data. As you can see on our gallery, our showcaseis primilary focus in medical

    Here are the different steps to achieve:

    • Step 1: Understand and Extend our current animation framework by fixing issues and adding new animation (Blink, Shear, waves... )
    • Step 1: Extend the framework to make it easy to combine animations.
    • Step 3: Create Demo of complexe animation and generate videos.

    Difficulty: high

    Skills required: GLSL, Python, OpenGL and VTK

    Mentors: David Reagan, Serge Koudoro

  4. Improve website features via a new sphinx extensions

    Description: Our new visualization engine supports GLSL shading language. Join our effort to built stunning animation of scientific datasets. You will have to program vertex and fragment shaders to generate different effects on VTK polydata. For examples, see code here. Here is an example without shaders

    Here are the different steps to achieve:

    • Step 1: Understand and Extend our current animation framework by fixing issues and adding new animation (Blink, Shear, waves... )
    • Step 1: Extend the framework to make it easy to combine animations.
    • Step 3: Create Demo of complexe animation and generate videos.

    Difficulty: high

    Skills required: GLSL, Python, OpenGL and VTK

    Mentors: David Reagan, Serge Koudoro