Ask most engineers to draw a qubit and they will sketch two levels, a ground state and an excited state, with the quantum information living in the balance between them. That picture works, but it has a weakness. A little bit of drift, a stray photon, a small nudge, and the two levels blur into each other. The information leaks out before you can catch it.
There is another way to build a qubit, and it starts by throwing out the two-level picture entirely. Instead of a switch with two settings, imagine a pendulum, or the vibration of light trapped in a microwave cavity. Such an oscillator has a continuous range of states, an infinite ladder of energy levels rather than two. That sounds like the wrong tool for storing a single bit. The trick, proposed by Daniel Gottesman, Alexei Kitaev, and John Preskill in 2001 and now known as the GKP code, is to hide the qubit in a carefully chosen pattern spread across that continuum.
Drawing a qubit as a grid
An oscillator can be described by two quantities that trade off against each other, roughly its position and its momentum. Plot them against each other and you get a two-dimensional map called phase space. A GKP qubit is not a single point on that map. It is a comb of sharp spikes arranged in a regular grid, like a checkerboard of peaks. The logical zero uses one grid, the logical one a grid shifted over by half a step.
Here is why the grid matters. The two most common ways an oscillator goes wrong are small shifts in position and small shifts in momentum. When a tiny shift bumps a GKP state, it nudges every spike in the comb by the same amount. Because the spikes sit on a regular lattice, you can measure how far the whole pattern has drifted from the grid lines and simply push it back. The error announces itself as a small displacement, and small displacements are exactly what the code is built to detect and undo. A stray error has to be big enough to hop a full grid spacing before it corrupts the actual bit.
Error correction baked into one mode
What makes the GKP qubit compelling is that the correction happens inside a single physical system. With the more familiar surface code, you spread one logical qubit across dozens or hundreds of physical qubits and constantly compare them to spot disagreements. A GKP qubit packs a form of error correction into one oscillator, catching the small analog errors before they ever become digital bit flips. Stack GKP qubits into a larger code and each one arrives pre-cleaned, which lowers the burden on everything above it.
The catch is that ideal GKP states are physically impossible. A perfect comb of infinitely sharp spikes would carry infinite energy. Real hardware settles for approximate versions with finite, slightly fuzzy peaks, and the fuzziness sets a floor on how well the code protects information. Making those peaks sharper means squeezing more energy and precision into the oscillator, which is hard.
From theory to the lab bench
For nearly two decades GKP lived mostly on the chalkboard. That changed when experimental groups managed to prepare and stabilize grid states in real systems. Researchers at Yale and elsewhere built them in superconducting microwave cavities, using an ancillary qubit to nudge the oscillator back onto the grid. A group at ETH Zurich demonstrated GKP states in the motion of a trapped ion, encoding the qubit in the tiny back-and-forth of a single atom. Those experiments showed that stabilizing the comb against natural drift is genuinely possible, not just a nice equation.
GKP now sits alongside cat qubits as one of the leading bosonic codes, the family of approaches that store logical information in the many states of an oscillator rather than in a crowd of two-level qubits. Cat qubits specialize in suppressing one kind of error; GKP aims to catch the small analog shifts that plague oscillators. Neither is a finished product. Both represent a bet that the cheapest path to a reliable qubit runs through the rich physics of a single vibrating mode, and that sometimes the best place to hide a bit of quantum information is in plain sight, spread across a grid.