-
Notifications
You must be signed in to change notification settings - Fork 80
GSoC 2025 Projects
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.
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:
-
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!
-
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". -
Use these specific goals to start putting together a proposal draft.
-
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.
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 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 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 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 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
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:
- Vincent Russo [email protected]
- Purva Thakre [email protected]