⚛️ Quantum AI IDE — REST API

Quantum circuit simulator & NovaLang converter — backend API

⚡ Pure Python Quantum Simulator
📖 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

ParameterTypeDefaultDescription
codestringNovaLang quantum code
shotsint1024Number 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 Python JavaScript
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

ParameterTypeDefaultDescription
codestringNovaLang quantum code
targetstring"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 🌀 Grover 📐 QFT 🔍 DJ
# 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!