This week the short-term and long-term goals are coming together for the finished product. My Sphinx-Gallery PR to show which API entries are used in examples throughout the entire project was merged and added to MNE (https://github.com/mne-tools/mne-python/pull/10999). This was inspired by my initial confusion at where all the beamformer example code was documented and wanting a better understanding of which API entries were missing examples. The object-oriented widget abstraction (https://github.com/mne-tools/mne-python/pull/10913) was also merged which is similarly a high-level goal to streamline GUIs in MNE in general that tying into my project because I'm designing a GUI. For the shorter-term goals, my PR on doing time-frequency source estimation was merged (https://github.com/mne-tools/mne-python/pull/11095) enabling my last main project PR (https://github.com/mne-tools/mne-python/pull/10920) to be merged once I finish adding all the features I have time for since I finished the tests this week. I plan to prioritize adding features to the GUI to make it easier to see and more powerful to understand the data rather than working in the object-oriented widget abstraction (from above) since I think that will have more of an impact on the project but it would be nice to bring things full circle and implement the abstraction as well.
I struggled much more than I thought on aligning the source coordinate frame to the T1 image. This was because the T1 image was moved from head-first supine to RAS in addition to its normal affine and the source estimate was already in RAS. This coordinate frame wrangling took longer than I had anticipated which meant the tests will be delayed until this week. I also need to fix the volume rendering. Now that the coordinate frame is solved, the basic deliverable GUI is functional! Although, I would like to clean things up a bit more, I'd consider this a successful GSoC (pending writing the tests, which shouldn't take too long).
The basic GUI works, hooray! I am just finishing up a few bugs and implementing the 3D viewer aspect before pushing. This week will be just about writing the tests and then the project will be finished.
Drawing near to the end, the user interface is taking shape and getting it fully functional and writing the tests are the final items on the to do list. This week a lot of progress was made on the appearance and functionality of the user interface. By the end of this week, things should be fairly well wrapped up.
Finally, most of the beamformer code is working and issues are mostly resolved, which means that my focus has shifted to the user interface. I've made good progress on its development but don't yet have a working example although it's quite close. PRs that support this work have been or will soon be merged, including plotting complex-valued time-frequency objects, the widget abstraction (https://github.com/mne-tools/mne-python/pull/10913), adding provenance to time-frequency baseline corrections (https://github.com/mne-tools/mne-python/pull/10979), adding vector dynamic imaging of coherent sources (DICS) beamforming (https://github.com/mne-tools/mne-python/pull/10980) and computing cross-spectral density from time-frequency epochs (https://github.com/mne-tools/mne-python/pull/10986). Looking forward to having a snazzy new GUI soon!
On a side note with broader-level project organization in mind, I added a PR to sphinx-gallery to make the coverage of API entries in examples (https://github.com/sphinx-gallery/sphinx-gallery/pull/983).