# My ideas for a quantum hackathon

*Updated in September 2020*

Whether you are attending a quantum hackathon, or just want a quantum project to work on at home, I have some ideas for you!

What follows is by no means a comprehensive account of everything useful or interesting that can be done with quantum computing. It is completely biased towards the things that I am personally interested in. So if you want to know more about any of them, feel free to ask me.

# Quantum Games

Making a game doesn’t necessarily mean making something big and fancy. Just pushing a pixel around can be enough, and it can be a fun and creative way to turn knowledge about quantum gates into something tangible.

If you want some pointers on how to get started, here’s a twitter thread with some ideas and resources.

There are two approaches that can be taken to combine quantum with games. One is to ask “What can games do for quantum computing?” From this starting point, you could design a game that helps teach something about quantum programming. This could be a game that is explicitly educational. It could also be one that uses a quantum effect to implement the central game mechanic, allowing a player to interact with quantum mechanics in a playful way. Here are some examples of these types of game.

The other approach is to ask “What can quantum computing do for games?”. In this case, the aim is to find something that computer games need, and that only quantum computation can provide. You won’t be able to implement anything with such a ‘quantum advantage’ quite yet, but you could create a proof-of-principle version based on a small-scale example. One of my own efforts towards this is the topic below.

# Procedural Generation

Procedural generation is when we design algorithms to design things for us. It is often used to content such as puzzles and maps for use in games, or to create realistic textures for use in CGI. It can also be used to create images, animations, music, stories, or pretty much anything.

For example, here’s an island I made.

In the future, quantum computers could be of great use in the creation and analysis of procedurally generated content. But we can also create interesting and unique results with current quantum hardware and simulators. I know because I have a proof-of-principle projects to prove just that principle. See the blog posts below for more details.

These are just me dipping a toe in the vast ocean of possibilities for quantum procedural generation. So why not see what you can come up with?

# Quantum Error Correction

We are not yet at the point where quantum error correction can be used to reduce noise in quantum computation. Nevertheless, small-scale implementations of QEC can and have been done. One motivation for this is to test how well current hardware can implement the basic tools and techniques required.

It is with this aim in mind that QEC-based tools have been added to Qiskit Ignis.

Specifically, this package is designed to allow people to implement a certain family of quantum error correcting codes — the topological codes — in order to test prototype quantum hardware.

Currently, the tools in Ignis allow you to create quantum repetition codes, and then decode the output to see how well errors were corrected. There are many ways in which this can (and will) be expanded, including new quantum error correcting codes, or different ways of testing a quantum computer using the existing codes, and different decoding algorithms. All are potential projects for a hack.

The idea of creating new decoders is especially interesting to me. I created a citizen science project in 2016 in which the process of creating new decoders was made into a game called Decodoku.

Players came up with various heuristic algorithms, which had some interesting properties. These will be incorporated into Ignis, allowing them to be used on all the codes that get implemented within the `TopologicalCodes`

package. If you design a new decoding algorithm, it could share the same destiny.

# More Ideas

There are many more potential projects that you can do. From the hardware level of writing new backends for Qiskit and designing your own gates in Qiskit Pulse, to high-level applications for chemistry or material design. For inspiration, check out recaps of our flagship hackathons: the Qiskit camps.