Learn STRAWBERRY-FIELDS with Real Code Examples
Updated Nov 25, 2025
Code Sample Descriptions
1
Strawberry Fields Simple Quantum Circuit
import strawberryfields as sf
from strawberryfields.ops import Sgate,CNOT,MeasureFock
prog = sf.Program(2)
with prog.context as q:
Sgate(0.543)|q[0]
CNOT|(q[0],q[1])
MeasureFock()|q[0]
MeasureFock()|q[1]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
A minimal example creating a 2-mode photonic quantum circuit, applying gates, and measuring the output.
2
Strawberry Fields Coherent State Preparation
import strawberryfields as sf
from strawberryfields.ops import Coherent,MeasureFock
prog = sf.Program(1)
with prog.context as q:
Coherent(1.0)|q[0]
MeasureFock()|q[0]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Prepares a coherent state in a single mode and measures it.
3
Strawberry Fields Squeezed State
import strawberryfields as sf
from strawberryfields.ops import Sgate,MeasureFock
prog = sf.Program(1)
with prog.context as q:
Sgate(0.8)|q[0]
MeasureFock()|q[0]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Prepares a squeezed state in a single mode and measures it.
4
Strawberry Fields Beam Splitter Example
import strawberryfields as sf
from strawberryfields.ops import BSgate,MeasureFock
prog = sf.Program(2)
with prog.context as q:
BSgate(0.5,0)|q[0],q[1]
MeasureFock()|q[0]
MeasureFock()|q[1]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Applies a beam splitter gate between two modes.
5
Strawberry Fields Displacement Gate
import strawberryfields as sf
from strawberryfields.ops import Dgate,MeasureFock
prog = sf.Program(1)
with prog.context as q:
Dgate(1.0)|q[0]
MeasureFock()|q[0]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Applies a displacement gate on a single mode.
6
Strawberry Fields Two-mode Entanglement
import strawberryfields as sf
from strawberryfields.ops import Sgate,CNOT,MeasureFock
prog = sf.Program(2)
with prog.context as q:
Sgate(0.6)|q[0]
CNOT|(q[0],q[1])
MeasureFock()|q[0]
MeasureFock()|q[1]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Creates entanglement between two modes using squeezing and CNOT.
7
Strawberry Fields Rotation Gate
import strawberryfields as sf
from strawberryfields.ops import Rgate,MeasureFock
prog = sf.Program(1)
with prog.context as q:
Rgate(0.7)|q[0]
MeasureFock()|q[0]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Applies a rotation gate on a single mode and measures it.
8
Strawberry Fields Kerr Gate
import strawberryfields as sf
from strawberryfields.ops import Kgate,MeasureFock
prog = sf.Program(1)
with prog.context as q:
Kgate(0.5)|q[0]
MeasureFock()|q[0]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Applies a Kerr gate on a single mode.
9
Strawberry Fields Controlled-Z Gate
import strawberryfields as sf
from strawberryfields.ops import CZgate,MeasureFock
prog = sf.Program(2)
with prog.context as q:
CZgate(0.5)|q[0],q[1]
MeasureFock()|q[0]
MeasureFock()|q[1]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Applies a controlled-Z gate between two modes.
10
Strawberry Fields Homodyne Measurement
import strawberryfields as sf
from strawberryfields.ops import Sgate,MeasureX
prog = sf.Program(1)
with prog.context as q:
Sgate(0.5)|q[0]
MeasureX()|q[0]
eng = sf.Engine('fock',backend_options={'cutoff_dim':5})
result = eng.run(prog)
print(result.samples)
Measures a mode using homodyne measurement.