Dyber SDK

Run a circuit on the illustrative simulator

Build a gate-model quantum circuit, run it on an illustrative statevector simulator with a simple loss-noise model, and inspect the counts and model resource estimates. It mirrors the API of pip install dyber, running in your browser.

q0: ─── q1: ───
Python equivalent
from dyber import Dyber, Circuit

dy = Dyber()
c = Circuit(2)
c.h(0); c.cx(0, 1); c.measure_all()
job = dy.backend("local_simulator").run(c, shots=1024)
print(job.result().counts())

Results

Build a circuit and click Run.

Statevector simulator running in your browser, with the same gate set and resource model as the Python SDK. Illustrative noise: a Monte Carlo quantum-trajectory sampler applies the v2 loss model (erasure plus silent Pauli) at a 0.5 percent per-cycle loss input. The browser's noise sampler is a separate illustration; the Python SDK applies noise only when loss_per_cycle is passed, as output bit flips at the model's logical error estimate, so counts differ. Resource numbers are model values: abstract circuit model with assumed loss heralds. Not a hardware operating point. The hcat_qpu backend is not available. Install for Python: pip install dyber (0.2.1, Apache-2.0).

Three ways to run the simulator

One circuit model, three front doors. Everything runs on the local simulator.

1. Python SDK

pip install dyber

from dyber import Dyber, Circuit
c = Circuit(2); c.h(0); c.cx(0, 1)
c.measure_all()
job = Dyber().backend("local_simulator") \
             .run(c, shots=1000)
print(job.result().counts())

2. Terminal (CLI)

# run any OpenQASM 3 file
dyber run bell.qasm --shots 1000

# start the local REST API
dyber serve

# built-in starter examples
dyber examples bell

3. REST API (any language)

curl -s -X POST http://127.0.0.1:8787/jobs \
  -H "Content-Type: application/json" \
  -d '{"qasm": "OPENQASM 3.0; qubit[2] q; bit[2] c;
       h q[0]; cx q[0], q[1];
       c = measure q;", "shots": 1000}'
# then GET /jobs/{id}/result

Bring your own language

Dyber deliberately has no proprietary quantum language. The SDK speaks OpenQASM 3 (import and export, with 2.0 compatibility), and ships dependency-free adapters for Qiskit (dyber.interop.from_qiskit(qc)) and Cirq (from_cirq(c)), so existing circuits run as-is. The REST API accepts raw OpenQASM text or a JSON circuit. Seven runnable examples ship with the source: GHZ, teleportation, Grover, parameter sweeps, QASM round-trip, Qiskit interop, and a curl API walkthrough. The Dyber-specific parts sit below the language: the H-cat native-op counts and the illustrative noise model, not syntax.