Inspiration Alice & Bob's cat qubits store information in two coherent states, \(\ket{+\alpha}\) and \(\ket{-\alpha}\). The two-photon stabilization that protects them also creates a problem: grown from vacuum, a cat becomes an equal superposition of both codewords. Preparing one definite codeword is a basic step for any computation. The standard fixes start the state off the codeword and then let the stabilization pull it in, which costs fidelity.

What it does BSE is a simulation study of a stabilized cat qubit in the full two-mode model (memory and buffer), covering both challenge tracks.

  • Preparing a codeword (Track 1): we first show that growing a cat from vacuum gives the even cat, a superposition and not a mixture, and that it lives 1.95 µs. An independent check from the model's slowest decay rate gives 1.94 µs. We then found method D: push the memory to exactly \(\alpha\) with the pump off, then switch the stabilization on.
    • The state \(\ket{\alpha, 0}\) is an exact steady state of the two-mode model, because \(g_2α^2\) cancels the buffer drive \(\varepsilon_d\). So nothing pushes the state off the codeword.
    • The preparation error is \(8.4 \times 10^{-6}\). That is 145\(\times\) lower than a displaced start at \(\beta\) = 1.5 and 68\(\times\) lower than the best ramped push.
  • Bit-flip and phase-flip errors (Track 2): at \(\alpha\) = 2.1 the bit-flip rate gives a bit-flip time of about 2.6 s. The phase-flip rate matches \(2\kappa_a \cdot \alpha^2\) to within 0.02%. We also extracted circuit corrections, the Kerr and cross-Kerr terms, and studied how measuring the qubit trades off against bit flips.

How we built it

  • Code: a tested Python package, catqubit, built on dynamiqs (JAX), with numpy, scipy and matplotlib. It covers the models, time evolution, preparation methods, observables and truncation checks, with 449 passing tests.
  • Convergence: every result was checked against the number of simulated photon levels, to 0.1%.
  • Traceable numbers: a script reads the outputs of the executed notebook into claims.json, which holds 255 values. Every number on our slides is tagged with its source.
  • Realism studies: a finite 50 ns push (6.7 MHz drive), the frequency shift the pump causes on the memory, distortion of the drive pulse, extra heating and loss, and the real circuit's Kerr terms.
  • AI use: we used Claude Code for code development, simulation run checks, and verifying our claims.

Challenges we ran into

  • Truncation: the inflation overshoot (6.89 photons at 230 ns) needs more photon levels than the steady state. At \(\alpha\) = 1.8, a too-small grid overstated the bit-flip rate by 0.6%.
  • The textbook estimate of the bit-flip rate is off by 34\(\times\). The exponential scaling exponent also depends on which range of α you fit over.
  • Once the circuit terms are added, method D's error rises to \(5.4 \times 10^{-5}\). A plain displaced start at \(\beta\) = 2.0 then reaches \(6.3 \times 10^{-5}\), so the gap shrinks to about 17%. We report both.

Accomplishments that we're proud of

  • A preparation method that is exact in the two-mode model: with memory loss set to zero, the error is \(9.3 \times 10^{-12}\).
  • Turning the pump off during the push matters. Pushing for 50 ns with the pump on is about 58× worse.
  • The method holds up when realistic hardware effects are included: the combined error is \(6.6 \times 10^{-5}\).

What we learned

  • Memory parity decides what a cat grown from vacuum becomes. Wigner fringes, not fidelity, tell a superposition from a mixture.
  • The best way to prepare a codeword is to start at a steady state, not to fight the stabilization.
  • Calibration matters unequally: a 22.5° phase error costs about 27\(\times\) more than a 10% amplitude error.
  • Back-of-envelope models need checking against the full simulation.

What's next for BSE

  • Cancel the memory Kerr. Our simulations show a correction recovers about \(7.5 \times 10^{-6}\), but it needs a memory drive we haven't shown the device can produce.
  • Rerun the adaptive measurement-stopping study with the measured bit-flip rates; the current version is optimistic.
  • Add the finite-push and Kerr studies to the main notebook.
  • Testing our method on hardware: a resonant memory pulse with the pump off, then switch the stabilization on.

Built With

  • dynamiqs
  • jax
  • jupyter
  • matplotlib
  • python
Share this project:

Updates

Submission history