📖 Overview
This API lets you run quantum circuits written in NovaLang
on a pure Python quantum simulator, or convert them to
Qiskit,
Cirq, or
Q#.
No external quantum libraries required — built with numpy.
✅ 200 Success
⚠️ 400 Bad Request
❌ 500 Server Error
POST
/api/run-circuit
Run NovaLang code on quantum simulator
📥 Request Body
| Parameter | Type | Default | Description |
|---|---|---|---|
code | string | — | NovaLang quantum code |
shots | int | 1024 | Number of simulation shots |
📤 Response
{
"success": true,
"n_qubits": 2,
"instructions": 4,
"output": "measure(q0) = 1\nmeasure(q1) = 1",
"state_vector": [
{"bits": "11", "real": 1.0, "imag": 0.0, "prob": 1.0}
],
"measurements": [1, 1],
"counts": {"11": 1024},
"gates_applied": 2,
"errors": null
}
🖥 Try it
curl -X POST https://victus.nilgiri-wyvern.ts.net/api/run-circuit \
-H "Content-Type: application/json" \
-d '{
"code": "q0 = qubit()\nq1 = qubit()\nh(q0)\ncx(q0, q1)\nmeasure(q0)\nmeasure(q1)",
"shots": 1024
}'
import requests
code = """q0 = qubit()
q1 = qubit()
h(q0)
cx(q0, q1)
measure(q0)
measure(q1)"""
resp = requests.post(
"https://victus.nilgiri-wyvern.ts.net/api/run-circuit",
json={"code": code, "shots": 1024}
)
print(resp.json())
const code = `q0 = qubit()
q1 = qubit()
h(q0)
cx(q0, q1)
measure(q0)
measure(q1)`;
fetch('https://victus.nilgiri-wyvern.ts.net/api/run-circuit', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({code, shots: 1024})
})
.then(r => r.json())
.then(console.log);
POST
/api/export
Convert NovaLang → Qiskit / Cirq / Q#
📥 Request Body
| Parameter | Type | Default | Description |
|---|---|---|---|
code | string | — | NovaLang quantum code |
target | string | "qiskit" | qiskit, cirq, or qsharp |
📤 Response
{
"success": true,
"code": "from qiskit import ...\nqc = QuantumCircuit(2, 2)\nqc.h(0)\n...",
"language": "python",
"framework": "qiskit",
"target": "qiskit"
}
🖥 Try it
GET
/api/quantum/info
API info & capabilities
📤 Response
{
"name": "Quantum AI IDE — Backend Simulator",
"version": "1.0.0",
"max_qubits": 10,
"supports": ["qiskit", "cirq", "qsharp"],
"algorithms": ["Bell State", "Grover Search", ...],
"endpoints": {
"POST /api/run-circuit": "...",
"POST /api/export": "...",
"GET /api/quantum/info": "..."
}
}
🧪 Sample NovaLang Codes
# Bell State q0 = qubit() q1 = qubit() h(q0) cx(q0, q1) measure(q0) measure(q1)
# Grover's Search (2 qubits) q0 = qubit() q1 = qubit() h(q0) h(q1) # Oracle cz(q0, q1) # Diffusion h(q0) h(q1) x(q0) x(q1) cz(q0, q1) x(q0) x(q1) h(q0) h(q1) measure(q0) measure(q1)
# Quantum Fourier Transform (2 qubits) q0 = qubit() q1 = qubit() h(q0) cz(q0, q1) h(q1) measure(q0) measure(q1)
# Deutsch-Jozsa (balanced) q0 = qubit() q1 = qubit() x(q1) h(q0) h(q1) cx(q0, q1) h(q0) measure(q0)
⚙️ How It Works
📦 Pure Python — No Qiskit/Cirq required. Uses only numpy for matrix operations.
🔄 State vector simulation — Tracks full 2ⁿ amplitude vector (up to 10 qubits).
🎲 Measurement sampling — Probabilistic collapse based on Born rule.
📤 Code conversion — NovaLang → Qiskit/Cirq/Q# via pattern-matching parser.
🔗 No external dependencies (except FastAPI + numpy). Runs in your timetable app's backend!