GSOC 2026 Project #38 : ATHENA Research Center / EBRAINS - Modular Software Environments and Service Integration for the EBRAINS Software Distribution

The EBRAINS Software Distribution (ESD) is a curated collection of tools for computational neuroscience, supporting education, research, and simulation across heterogeneous hardware — including HPC, GPUs, and neuromorphic computing systems. Many ESD tools are developed by the research community and leverage diverse hardware architectures for performance and scalability. Currently, the ESD covers ~70 top-level scientific tools and 800+ dependencies, and it is deployed as a “monolith”. This creates two major challenges:

Flexibility: Researchers might want to combine the ESD with other, possibly experimental, tools that are not yet in the official release. Conversely, smaller minimum-size software ecosystems can be beneficial for other applications, such as for GDPR-sensitive environments.

Service compatibility: The ESD contains “client” software that interacts with EBRAINS “web” services. The service-side environment must be strictly compatible with the client-side version, which can’t be guaranteed unless services are also part of the ESD.

This project focuses on adding modularity to the ESD’s spack buildtool-based build and deployment functionality to support more flexible, on-demand environments. You will develop spack-based tooling to generate custom environments, both subsets and supersets, that maintain consistency and alignment with the official ESD releases.

Another part of this project involves extending the ESD to support “services”. While most of the ESD comprises end-user tools, services often depend on a smaller or different set of dependencies. By leveraging the spack package manager used by the ESD, we can explicitly track distinct service-side dependencies and define compatibility constraints between client and server versions, influencing both the ESD client-side and the service-side build configurations.

Key Objectives:

  1. Add support for creating ESD-derived software ecosystems:

  2. Develop tools to extract partially overlapping subsets of the ESD while ensuring the “concretized” dependency tree remains compatible with the full official deployment.

  3. Develop and integrate a format for ESD service packages based on the spack package format; i.e. recipes for backend services that define strict compatibility constraints with their client-side counterparts in the ESD.

  4. Showcase a service build (e.g., for a Knowledge Graph or Neuromorphic access service) that adheres to specific client-server version range constraints and can be deployed as a lightweight, ESD-aligned container.

Technology Stack & Required Skills:

  1. Primary (Must Have): Python

  2. Secondary (Good to Have): Spack Package Manager, Shell Scripting, Build tools