This is your work, valued

Santa Barbara, California, United States

Craig Gidney

Elite
@Strilanc

Software engineer turned research scientist on the quantum computing team at Google.

Quirk. A drag-and-drop quantum circuit simulator that runs in your browser. A toy for exploring and understanding small quantum circuits.

1.1k

ObjC-CollapsingFutures. Futures, for Objective-C, that automatically collapse so it's nearly impossible to mix up the level of future nesting despite the lack of generics.

105

magic-state-cultivation. Code for the paper "Magic state cultivation: growing T states as cheap as CNOT gates"

35

May. An option type for .Net

31

Tinker. Warcraft 3 game hosting bot

27

PickleJar. A parser/packer combinator library for .net, where "Jars" (a serializer paired with a deserializer) are created by combining and augment primitive jars into complex jars. The resulting combinators are optimized and compiled at runtime.

24

quantum-factor-2025-code. Code for simulations and plots for the paper "How to factor 2048 bit RSA integers with less than a million noisy qubits"

20

python-chp-stabilizer-simulator. Simple python implementation of Scott Aaronson et al's CHP simulator.

19

quantumpseudocode. An experimental python library for succinctly specifying quantum algorithms in an imperative pythonic style.

18

honeycomb_threshold. Code for estimating the threshold of the honeycomb code

16

falling-with-style. Factoring with Shor's algorithm by unavoidable luck (april fools!)

14

Wc3PowerTowers. Various resources extracted from my Warcraft 3 map, Power Towers.

14

LinqToCollections. Implements types and extension methods for working with IReadOnlyList, IReadOnlyCollection, and IReadOnlyDictionary in a functional style.

13

midout. Code for the paper "Relaxing Hardware Requirements for Surface Code Circuits using Time-dynamics"

12

Methods. Interesting methods and types that aren't large enough to warrant their own repositories, but that I want to link to.

11

Quantum-Pseudo-Telepathy. Code demonstrating the quantum process used to consistently win a game that can only be won 8 times out of 9 classically.

9

PaperImpl-2017-DirtyPeriodFinding. Example ProjectQ implementation of the constructions described in my preprint "Factoring with n+2 clean qubits and n-1 dirty qubits".

9

IntervalReferences. Tracking nesting depth to allow efficient array slicing, with no memory leaks and logarithmic slicing costs.

8

quantum-karatsuba-2019. Reversible Karatsuba multiplication in O(n) space and O(n^lg(3)) operations.

7

qbp_np_younes_test. Simulated implementation of a claimed NP=BQP algorithm, showing that it doesn't work.

7

Strilanc.github.io. Algorithmic Assertions - Craig Gidney's Computer Science Blog

7

UnionFind-.Net. A simple implementation of a disjoint set data structure in C#.

6

CliffordTableau. Represent Clifford operations using a table.

6

honeycomb-boundaries. Python

6

Hand-Qubits. Qubits you can hold in your hands.

6

efficient-quantum-factoring-2019. Latex and etc for the paper "How to factor 2048 bit numbers in 8 hours with 20 million noisy qubits"

5

Angle. A simple library for working with directions and rotations in 2d.

5

PolyNumber. Representing numbers as the roots of polynomials with integer coefficients. More interesting than efficient or useful, especially considering the inability to represent sqrt(2) without also having -sqrt(2).

5

GameJam2013-AtTheCore. A game made in 48 hours at the 2013 halifax game jam.

4

Solomonoff-Mad-Scientist. For science!

4

Snitch. A surface code simulator.

4

AnimatronTheTerrible. Creates and records visualizations. Warning: the code is not cleaned up or intended to be readable/usable by others, as it is made up of many layers of experimentation and hackery.

4

Rational-Secret-Sharing-Master-s-Thesis. My master's thesis on rational secret sharing. Includes the thesis itself (latex and pdf), an implementation of the protocols described (C#), as well as the slides from my defense.

3

Example-Custom-Virtualizing-Search-for-Windows-Store-Apps. An example implementation of UI virtualizing to make a fast search in windows store apps.

3

Eve-Quantum-Clone-Computer. As you ask Eve to perform operations and measurements, she keeps track of what has and hasn't been ruled out about the current state. Sometimes she ends up knowing enough to make a near-perfekt clone.

3

Quantum. Microsoft Quantum Development Kit Samples

3

more-bacon-less-threshold. Code for the paper "More bacon less threshold"

3

slowmatch. Example of minimum weight embedded matching in python.

3

NP-vs-Quantum-Simulation-Walters-Algorithm. Simulates the algorithm from the paper 'A linear time quantum algorithm for 3SAT', which is actually exponential time.

3

NotAMonad. A pedagogical repository, containing examples of types that are monads (i.e. have wrapping, transforming, flattening methods) and also types that aren't (at least, not in a natural or desirable way).

3

yoked-surface-codes. Source code written as part of the paper "Yoked Surface Codes"

3

matching-example. Minimum weight perfect matching in Euclidean space

3

stability-sims-2022. Code for "Stability Experiments: The Overlooked Dual of Memory Experiments"

2

ZigXag. A point-and-click ZX calculus graph editor with built-in simulation and circuit export tooling.

2

SurfaceCodeTurnTable. Experimental surface code simulator where the user activates/deactivates stabilizer configurations.

2

MpqLibrary. A library for reading MPQ files (targeted at wc3 maps)

2

quantum-factor-2025-paper. Latex source code for the paper "How to factor 2048 bit RSA integers with less than a million noisy qubits" (https://arxiv.org/abs/2505.15917)

1

classical-quantum-adder. Code for the paper "A Classical-Quantum Adder with Constant Workspace and Linear Gates"

1

Schonhage-Strassen-Animation. Hacky code that animates an FFT-based multiplication on a user entered number.

1

windowed-quantum-arithmetic. Repository for my paper "Windowed quantum arithmetic".

1