One of the leading quantum computing architectures is based on the
two-dimensional (2D) surface code. This code has many advantageous properties
such as a high error threshold and a planar layout of physical qubits where
each physical qubit need only interact with its nearest neighbours. However,
the transversal logical gates available in 2D surface codes are limited. This
means that an additional (resource intensive) procedure known as magic state
distillation is required to do universal quantum computing with 2D surface
codes. Here, we examine three-dimensional (3D) surface codes in the context of
quantum computation. We introduce a picture for visualizing 3D surface codes
which is useful for analysing stacks of three 3D surface codes. We use this
picture to prove that the CZ and CCZ gates are transversal in 3D surface
codes. We also generalize the techniques of 2D surface code lattice surgery to
3D surface codes. We combine these results and propose two quantum computing
architectures based on 3D surface codes. Magic state distillation is not
required in either of our architectures. Finally, we show that a stack of three
3D surface codes can be transformed into a single 3D color code (another type
of quantum error-correcting code) using code concatenation.Comment: 23 pages, 24 figures, v2: published versio