GSoC 2021 — Final Report

Jeffrey Paul
3 min readAug 19, 2021

Summer of 2021 held quite a few surprises for me. I’d have never imagined working with SunPy as a GSoC student and here I am concluding it with the final report. Before I summarize all the 30+ pull requests I’ve made to Sunkit-Pyvista, I just want to take a moment to than the brilliant mentors I’ve gotten to work with. The were not only patient and understanding but also extremely helpful with making me understand how everything works.

Coming to Sunpy, or should I say Sunkit-Pyvista.

Sunkit-Pyvista was created with the intention of extending Sunpy’s extensive plotting capabilities to 3D with the help of a VTK wrapper for Python — Pyvista.

My experience with either of these libraries were extremely short-lived, but over the summer I got my hands dirty with them and loved every bit of it. I would’ve never imagined me doing a project regarding astronomy or 3D plotting, but here we are today.

The original idea was proposed by one of the mentors a while and after an entire summer of working on it, I’m proud to say that I was a part of this library’s initial setup.

The entire project was planned out over the 10 weeks of the GSoC period and I’m pretty proud to say that we had gotten done with everything slightly ahead of time which left us a few buffer weeks for us to review code and catch some bugs. For now, majority of the plotting/visualization functionality from Sunpy has been added to Sunkit-Pyvista, and we do have plans for some pretty cool stuff later on! I’m excited to see how this project would be used.

Now, here’s a list of all the significant PRs I’ve made to the library which were carefully reviewed by both my mentors before any merges happened. The entire list of all my PRs can be found here. Every PR came with it’s own change-log and was carefully documented throughout.

  1. Initial setup of the code written by one of the mentors
  2. Ability to set camera coordinates functionality
  3. Addition of Pfsspy field lines visualization
  4. Drawing_Quadrangle on a 3D map
  5. Unit test time!
  6. Efficient Plotting with MultiBlocks
  7. Clip Interval for clipping of data
  8. Functionality to Plot tiny sphere at a given coordinate
  9. Adding in some examples
  10. Ah, bug-fixes
  11. Saving and loading plots
  12. Figure tests are now a thing!
  13. Performance enhancements to draw_quadrangle
  14. Plot_limb from Sunpy, but in 3D
  15. Color enhancements

Aside from these PRs, a lot more smaller ones were made which were related these significant ones in terms of enhancements or bug-fixes, but for the most part, everything is covered here. I think we’re set to have our 0.1 release right after the mentors take care of how the documentation works.

We also planned to work on some cool animations using the Pyvistaqt module but this was out of the scope of the original GSoC project so we’ve put a pin in it for now.

Of course, my work doesn’t stop here. Being one of the main developers of this project, I’d love to continue working and building on it. Here’s to the amazing folks at SunPy and GSoC for this opportunity. 🍻



Jeffrey Paul

An aspiring Software Engineer with a new found interest for open source contribution.