Skip to content

GSoC 2025 Projects

Purva Thakre edited this page Mar 2, 2025 · 8 revisions

Introduction

toqito is an open-source library for researchers in quantum information theory. We are participating in the 2025 Google Summer of Code (GSoC) under the NumFOCUS GSoC application. Please help us improve and extend these capabilities, and learn about quantum computing in the process!

GSoC aims to help get people started in the open-source world. However, toqito aims to recruit new long-term contributors/maintainers. Because toqito is for a relatively niche scientific/engineering topic, we are doubtful to accept a proposal from anyone without some background in quantum computing. Without some relevant background, completing a meaningful project in the period allowed by the GSoC program will be challenging.

NOTE: Applicants no longer need to be currently enrolled students. You can read more about eligibility here.

Contributing guide

Please read the Students contributing guide on the NumFOCUS GSoC repo. Also, check out the list of toqito project ideas below!

Your next steps should be something like this:

  1. Pick a project idea you find interesting and relevant to your skill set. The following section has some ideas, but you're encouraged to develop the project idea that best fits your interests!

  2. Come up with some specific goals for the project. For example, using the "toqito example gallery" idea below, a specific goal might look like "A new example using toqito to do XYZ".

  3. Use these specific goals to start putting together a proposal draft.

  4. Get feedback on your draft by posting a new thread in the toqito Discord channel. It's okay if the draft is still a work in progress!

If you have questions, feel free to ask directly on GitHub via the issues board, the Discord channel, or directly via the mentor contact info which is at the bottom of this page.

The application period for GSoC 2025 is March 24 - April 8. The full timeline is available at this link.

Ideas

Below is a list of ideas that could make good GSoC projects, depending on the applicant. Applicants are welcome to submit proposals for other project ideas, but we strongly encourage you to discuss your idea with us before submitting your proposal. To get feedback on a project idea, or a draft proposal, please start a new thread in the toqito Discord channel.


Project Title: Create and add to an example gallery for toqito

Project Description:

The example gallery should be a collection of stand-alone Python scripts showing examples of using toqito to showcase various use cases in quantum information theory research. Most topics have only one or two examples that only cover a small part of the relevant toqito functionality. This project's goal is to create an examples page with tiled thumbnails that link to specific examples and to additional add new examples in one or more gallery topic areas. Proposals for any topic areas are welcome, but here are some gaps that would be great to address:

  • New topic: examples of customizing toqito's ExtendedNonlocalGame class for use cases associated to quantum key distribution (QKD), bit commitment (BC), etc.
  • New topic: examples that showcase quantum state antidistinguishability (using modules in the state_opt/ directory) to illustrate explicit examples from the literature.
  • Existing topics: flesh out with additional examples

As an ideal example of such a gallery, refer to the scikit-learn examples page as an ideal format for showcasing the examples as well as the scope and style of the examples to include on this page.

Expected Outcomes: The primary outcome is to create an example gallery page (like the one from scikit-learn) and to populate this page with (at least) 3 - 5 examples that showcase the toqito module for specific quantum computing applications. Some set of these examples could be reworked from the existing documentation page, but at least two of the dedicated examples should be new and showcase a feature that is not currently showcased.

Skills Required / Preferred: some Python required, familiarity with quantum computing and some linear algebra.

Mentors: Vincent Russo [email protected], Purva Thakre [email protected]

Length: 175 hours

Difficulty: Easy


Project Title: Benchmarking and Profiling

Project Description:

Create a set of benchmarks to test how long various models take to execute and whether performance is improving or slowing down. The goal of this project is to implement a broad and more cohesive set of benchmarks to measure and record performance over time and to identify bottlenecks for improvement. We also would want to create a set of benchmarks compared to other quantum software packages (i.e. QETLAB, Ket.jl, Yao.jl, etc.).

Expected Outcomes: One or more toqito modules are fully covered by benchmarks

Skills Required / Preferred: some Python required, curiosity, desire to learn, knowledge of profiling, or benchmarks desirable

Mentors: Vincent Russo [email protected], Purva Thakre [email protected]

Length: 175 hours

Difficulty: Medium


Project Title: Tools for Quantum State Distinguishability and Exclusion

Project Description: toqito currently has modules to investigate the subdomains of quantum state distinguishability (ppt_distinguishability.py, state_distinguishability.py, is_distinguishable.py) and quantum state exclusion (is_antidistinguishable.py, state_exclusion.py). The goal of this project will be to create a general module that is able to take as input an ensemble of quantum states (a set of complex-valued vectors and associated probability vector) and to be able to perform various "figure-of-merit" distinguishability and exclusion analyses on the given ensemble.

Many of the tools used to perform these analyses can be performed by semidefinite programs (SDPs). There are many solvers in Python (cvxpy, picos, etc.) that specialize in the mathematical software to implement these optimizations problems numerically.

Expected Outcomes: A complete module that is able to process an ensemble of quantum states and successfully perform the corresponding optimization problems that cover figures-of-merit including "minimum-error", "unambiguous", etc. paradigms of quantum state distinguishability and exclusion. In the ideal case, these tools could be directly applied to writing up a paper that focuses on a specific problem in this research domain (contingent on time, expertise, and interest by the student).

Skills Required / Preferred: Familiarity with linear algebra and convex optimization. While some background in quantum information or quantum computing is useful, this can mostly be abstracted to be concerned with tools like SDPs (semidefinite programs) and the quantum information knowledge can be obtained during the internship.

Mentors: Vincent Russo [email protected], Purva Thakre [email protected]

Length: 350 hours

Difficulty: Hard


Project Title: Numerical analysis of nonlocal and extended nonlocal games

Project Description: toqito currently has modules to study both nonlocal (nonlocal_games.py) and extended nonlocal games (extended_nonlocal_games.py). The goal of this project will be to enhance the functionality (specifically of the extended nonlocal game code) and make use of these improvements to apply to solving open questions in the realm of extended nonlocal games. As these games are by proxy less well understood than their less general nonlocal game counterparts, computational methods will likely prove fruitful in resolving open questions.

For instance, there are a number of directions that one could consider numerically as open questions arising from DOI:10.48550/arXiv.1704.07375.

Expected Outcomes: A set of computational enhancements and additions to the extended nonlocal game module for additional performance and applicability. Ideally, numerical methods to resolve open questions in extended nonlocal games, and if the student is motivated and inclined, research potential for publication.

Skills Required / Preferred: Familiarity with quantum information theory. Strong mathematical background with an emphasis on linear algebra. An interest and some level of knowledge on nonlocal games, Bell inequalities, and interactive proof systems is a bonus.

Mentors: Vincent Russo [email protected], Purva Thakre [email protected]

Length: 350 hours

Difficulty: Hard


Mentors

We encourage you to post questions to the toqito issues board or the Discord channel](https://discord.gg/eNmfDMGk) but if you have a question that you don't want to post publicly, you can also email us directly:

  1. Vincent Russo [email protected]
  2. Purva Thakre [email protected]