GSoC 2024 Projects - aiidateam/aiida-core GitHub Wiki

What is AiiDA ?

AiiDA is a python framework for managing computational science workflows, with roots in computational materials science. It helps researchers manage large numbers of simulations (10k, 100k, 1M, ...) and complex workflows involving multiple executables. At the same time, it records the provenance of the entire simulation pipeline with the aim to make it fully reproducible.

AiiDA is used in research projects at universities, research institutes and companies (see SciPy 2020 talk, SciPy 2022 talk, publications, and testimonials).

Why work on AiiDA?

  • Help accelerate the transition to open (computational) science
  • Help fix the reproducibility crisis. Computational science is a good place to start.
  • Work with a team of computational scientists (mostly physics backgrounds) who are passionate about both science and coding.
  • We have an active Discourse community & biweekly developer meetings.

A background in materials science is not needed, but a basic interest in materials science topics will make things easier for you.

Getting started

To be considered as a GSoC student, we ask you to make a small pull request to aiida-core, or any active repositories in aiidateam and aiidalab organizations - could be a simple bug fix, improving the documentation, etc. See e.g. (for aiida-core) GitHub issues by-label

Say hi on our GSOC 2024 topic on Discourse.

Project 1 - Explore the AiiDA node graph in the browser

level intermediate

Expected Size 350h

AiiDA automatically stores entities in its database and links them forming a directed graph. This directed graph automatically tracks the provenance of all data produced by calculations or returned by workflows. This project's plan is to develop an intuitive tool for browsing AiiDA graphs in the React framework. We can use an open-source library for node graph (e.g. Rete, react-flow or similar) or build it from scratch. The node graph viewer will communicate with AiiDA with the REST API.

The result of this project should replace the existing AiiDA Provenance Browser, that is powering the Materials Cloud Explore sections. The current solution is built on a deprecated framework (AngularJS) and has some drawbacks that should be improved upon, including:

  • the graph browser does not easily distinguish input and output nodes (example), one solution here is to keep inputs on one side, and outputs on other side of the selected node;
  • the graph browser should visualize all the connecting nodes (currently the maximum number shown is 10, example);
  • when the user selects a new node, the page redirects to a new page, thus losing the smooth transition from one node to another. The new implementation should just update all the UI components when selecting a new node in the graph browser, instead of redirecting to a new page.

Expected outcomes

An AiiDA node graph viewer

  • that is built with React (and ideally published to the npm repository as a Component);
  • allows the user to explore the AiiDA provenance dynamically, e.g. forward and backward along the provenance graph;
  • shows input and output nodes of a selected node;
  • allows the preview of the node.

Skills

REST API, HTML, Javascript, React.

Mentors

Project N - Your Idea Here

If you're already familiar with AiiDA and have your own idea on how to improve it, we're happy to consider it (you may also want to check the development roadmap for further interesting project ideas). In this case, please think about the steps you would take to attack the problem and contact us in advance so that we can draw up a rough work plan.

Mentorship

The mentors for GSOC 2024 are

Please use the GSOC 2024 topic on Discourse

GSoC 2024 related info