GSOC 2026 Project #16 : HNN (Human Neocortical Neurosolver) Projects : Refactor and expand HNN-Core testing infrastructure

Difficulty: Intermediate

Duration: 350 hours (full time)

Skills:

  • Experience with Python programming

  • Experience with Git version control

  • Experience with software testing, including pytest or similar testing frameworks

  • Optional: Experience with Github Actions, Continuous Integration, and Continuous Delivery

Mentors:

Austin Soplata (asoplata (Austin E. Soplata) · GitHub), Nicholas Tolley (ntolley (Nicholas Tolley) · GitHub)

About HNN-Core: The Human Neocortical Neurosolver (HNN) is a software for interpreting the cell and circuit neural origin of macroscale magneto-/electro-encephalography (MEG/EEG) data using biophysically-detailed microcircuit simulations. HNN-Core is the modern open source interface defining the HNN network model that allows simulations to be run through a user-friendly graphical user interface (GUI) or through a Python API as a library. Official website of HNN software (https://hnn.brown.edu/), HNN Textbook website with tutorials and examples (HNN Textbook), Contributing guide (Contributing Guide — hnn-core 0.5.0 documentation).

Goal: The current testing suite in HNN-Core has several areas that could be significantly improved to simplify and generalize how tests work, increase code reliability, and test edge cases more comprehensively. The goal of this project is to refactor the test infrastructure to be more systematic, comprehensive, and maintainable while improving code coverage across the codebase.

Subgoals:

  • Main issue summarizing requirements: REF/TEST: Large test refactors · Issue #1118 · jonescompneurolab/hnn-core · GitHub

  • Expand the existing Network fixture in conftest.py to support multiple network configurations including networks with no drives, different sizes, and various drive combinations. Refactor existing tests to use these standardized fixtures consistently, instead of defining their own networks locally.

  • Identify and split long, monolithic tests into smaller, independent test functions where possible. For example, refactor test_add_drives to test individual drive types and their arguments separately before testing combinations.

  • Use Codecov or pytest coverage tools to identify untested code paths and add targeted tests to improve coverage, focusing on edge cases and full argument coverage for functions.

  • Add at least one long-duration simulation test using the default model with standard drives to catch timing-related bugs that only appear over extended timeframes.

  • Modernize the codebase by, for example, replacing os.path usage with Pathlib throughout the test suite for improved readability and maintainability.

  • Enable tests to run on all installation types (not just editable source) to support a wider range of development workflows and better debugging for users.

  • Bonus: Expand our GUI testing framework in particular.

Tech keywords: Python, software testing, pytest, code coverage, continuous integration, computational neuroscience, NEURON simulator

Related issues:

1 Like

Hello, my name is Satvik Saluja, and I’m interested in contributing to the HNN-Core project for GSoC.

I have experience with Python, Git, and software testing. I also enjoy competitive programming. I recently started contributing to the repository and worked on tasks mentioned in Issue #1118. As part of that, I submitted two pull requests:

I would really appreciate any feedback on these PRs when convenient. In the meantime, I would be happy to work on additional issues or improvements. Could you please suggest what I should focus on next?

Thank you!

1 Like

For those who are interested in applying for this Project, feel free to follow the instructions on this HNN-Core GitHub issue here. These steps are not required but will improve your chances of consideration. Thank you

Thank you for your interest and PRs Satvik! We started reviewing your PRs this week but are still finalizing our response and approach. For now, I would suggest working on your proposal for the Project and also reviewing other INCF GSOC projects that you may be interested in, simply because there are always far more applicants than there are available Contributor slots. We will respond to your PRs as soon as we are able, and please keep in mind that we have many GSOC PRs that require review.

Hello everyone,

I’m Bhumika a Data Science student, I’ve recently started exploring the HNN-Core codebase while preparing my Google Summer of Code proposal. I’m particularly interested in scientific computing and computational neuroscience, and I’ve been focusing on understanding and improving the testing infrastructure of the project.

So far, I’ve submitted a couple of pull requests related to the test suite:

• TEST: Add pytest configuration file with markers for the test suite
• TEST: Add edge-case tests for option validation utilities

Working on these contributions has helped me better understand the repository structure and the current testing workflow.

I’m continuing to explore the codebase. Looking forward to learning more from the community and contributing further.

1 Like

Hello mentors,

I’ve been exploring the HNN-Core codebase and working on a couple of contributions. In PR #1271, I added support for custom loss functions in the optimizer by introducing a cleaner interface, so users can define their own objective functions without modifying the simulation pipeline.

In PR #1272, I fixed the broken Codecov setup by updating the CI workflows and enabling proper coverage reporting across platforms, including Windows.

I’ve also submitted my GSoC proposal and am continuing to explore the codebase further. Would really appreciate any feedback, thanks!

1 Like