[{"data":1,"prerenderedAt":1092},["ShallowReactive",2],{"blog-post-quantum-advantage-lab":3,"sibling-dives-quantum-advantage-lab":1090,"learn-track-quantum-advantage-lab":1091},{"id":4,"title":5,"authors":6,"body":8,"breadcrumb":1019,"builders":1023,"byline":1038,"challenge":1043,"courseAuthor":1043,"courseLead":1043,"dek":1044,"description":1045,"draft":1046,"extension":1047,"eyebrow":1048,"finish":1043,"fork":1049,"hero":1051,"heroAlt":1043,"heroCta":1043,"heroImage":1043,"kind":1054,"lessonCount":1043,"meta":1055,"navigation":215,"newsItems":1043,"next":1043,"ogImage":1043,"order":1043,"outcomes":1043,"path":1056,"publishDate":1057,"readingTime":1058,"related":1059,"relatedProjects":1060,"seo":1081,"stem":1084,"tags":1085,"track":1043,"trackName":1043,"__hash__":1089},"blog\u002Fblog\u002Fquantum-advantage-lab.md","Project Showcase: Quantum Advantage Lab",[7],"hsadeghi",{"type":9,"value":10,"toc":1013},"minimark",[11,15,18,27,32,35,42,48,54,60,65,69,72,77,80,83,87,90,925,928,992,996,999,1009],[12,13,14],"p",{},"Most people are told that quantum computers are faster. Far fewer ever see why. Quantum Advantage Lab is built to close that gap: pick one of four famous algorithms, press go, and watch it run step by step beside the classical method solving the same problem.",[12,16,17],{},"The four races span the canon: Grover's search, a variational eigensolver for molecular ground states, a discrete-time quantum walk, and Hamiltonian simulation. Each one streams the quantum computation's intermediate state, the amplitudes climbing, the energy converging, the probability spreading, next to a classical baseline doing the same job. It is built and MIT-licensed by Hossein Sadeghi, a quantum-software veteran with a decade at D-Wave and Pasqal, and it runs on IonQ's trapped-ion hardware. What makes it unusual is not that it claims a win. It is how honest it is about what winning even means.",[19,20,24],"pull-quote",{"avatar":21,"name":22,"role":23,"username":7},"","Hossein Sadeghi","Creator, Quantum Advantage Lab",[12,25,26],{},"The whole idea started from the race: what algorithms can we show, and how do we visualize that competition? I had written the proposal, but it was not a case of \"I know the answer, I just need to implement it.\" It was going to be challenging.",[28,29,31],"h2",{"id":30},"the-four-races","The four races",[12,33,34],{},"All four races share a shape. On one side, a quantum circuit; on the other, the best classical method for the same task. Both run, and the Lab streams what is happening inside each, not just the answer at the end.",[12,36,37,41],{},[38,39,40],"strong",{},"Grover's search"," races amplitude amplification against a brute-force scan. You watch the amplitude of the target answer climb in a smooth arc while the classical search checks items one at a time. The picture makes Grover's true nature obvious: it is less a search than a rotation, one you can over-shoot if you run it too long.",[12,43,44,47],{},[38,45,46],{},"VQE",", the variational quantum eigensolver, hunts for a molecule's ground-state energy. You watch the energy descend toward the exact value, with a chemical-accuracy band drawn in, while a classical optimizer works the same landscape. It is the one race where the quantum side is genuinely hard, and the Lab shows you why: the optimization landscape is full of traps.",[12,49,50,53],{},[38,51,52],{},"The quantum walk"," sets a coined walk loose against an ordinary random walk on the same graph. Interference makes the quantum distribution spread ballistically, with sharp peaks at its edges, while the classical walk just diffuses into a bell curve. The gap between spreading like the square root of time and spreading linearly with time is the whole story, drawn live.",[12,55,56,59],{},[38,57,58],{},"Hamiltonian simulation"," evolves a spin chain with a Trotterized circuit and races it against direct matrix exponentiation. Finer time-slices mean a more faithful result and a deeper circuit, and you watch that depth-versus-accuracy tradeoff play out as the fidelity climbs. This is the race that ships ready to run in the code below.",[19,61,62],{"avatar":21,"name":22,"role":23,"username":7},[12,63,64],{},"It does not just show static circuits or final answers. It runs real Qiskit circuits, streams the intermediate solver state, pairs each quantum method with a meaningful classical baseline, and is shaped around IonQ-native execution.",[28,66,68],{"id":67},"an-honest-race","An honest race",[12,70,71],{},"Here is the part that most \"watch quantum win\" demos quietly skip. At the sizes that run on today's hardware, the quantum side does not finish first on a stopwatch. Four qubits are trivial for a laptop, every gate carries noise, and real jobs wait in a queue behind everyone else's. Quantum Advantage Lab does not pretend otherwise.",[19,73,74],{"avatar":21,"name":22,"role":23,"username":7},[12,75,76],{},"Quantum advantage is usually explained with asymptotic notation. That is technically correct, but it is not persuasive for most people. I built this to make the speedup something you can watch unfold, not just read about, even though in practice no such speedup exists yet.",[12,78,79],{},"So the Lab races the right thing. Not wall-clock time, but the mechanism: how many steps each method needs, how the quantum state evolves, where interference or amplitude amplification does its work. That is where the asymptotic story actually lives, and it is visible long before any hardware is genuinely faster.",[12,81,82],{},"It is also honest about the hardware itself. Live runs on IonQ go through a real queue and come back with real noise, so the Lab captures genuine hardware results and replays them on demand, each one labeled for what it is, with a clean statevector simulator alongside as the \"this is what perfect looks like\" reference. And because it targets IonQ's trapped-ion processor, the entangling layers in Grover and VQE map onto all-to-all connectivity without the SWAP overhead a superconducting chip would pay. The Lab can show you that directly, by comparing the transpiled circuits side by side.",[28,84,86],{"id":85},"how-it-works","How it works",[12,88,89],{},"Every race is a real circuit, not an animation. The Hamiltonian-simulation race is the most self-contained, and it ships ready to run in the Qollab Playground. It builds a transverse-field Ising chain, evolves it with a first-order Trotter circuit, and measures how close the sampled result is to exact evolution as the number of Trotter steps climbs:",[91,92,96],"code-block",{"name":93,"run-href":94,"tag":95},"hamiltonian_race.py","\u002Fu\u002Fhsadeghi\u002Fquantum-advantage-lab","Python · excerpt",[97,98,103],"pre",{"className":99,"code":100,"language":101,"meta":102,"style":21},"language-python shiki shiki-themes one-dark-pro","# Quantum Advantage Lab: the Hamiltonian Simulation race.\n# Evolve a transverse-field Ising chain with a Trotter circuit, then sweep\n# the step count and watch the quantum result close in on exact evolution.\nimport numpy as np\nfrom scipy.linalg import expm\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.circuit.library import PauliEvolutionGate\nfrom qiskit.quantum_info import SparsePauliOp\nfrom qiskit.synthesis import LieTrotter\n\nN_QUBITS, TIME = 4, 0.5\nN_STEPS_SWEEP  = [1, 2, 4, 8, 16]\n\ndef build_ising(n, J=1.0, h=1.0):              # H = -J sum ZZ - h sum X\n    terms = []\n    for i in range(n - 1):\n        zz = [\"I\"] * n; zz[i] = zz[i + 1] = \"Z\"\n        terms.append((\"\".join(zz), -J))\n    for i in range(n):\n        x = [\"I\"] * n; x[i] = \"X\"\n        terms.append((\"\".join(x), -h))\n    return SparsePauliOp.from_list(terms)\n\ndef trotter_circuit(H, t, n_steps, n):         # first-order Lie-Trotter\n    qc = QuantumCircuit(n, n)\n    qc.append(PauliEvolutionGate(H, time=t, synthesis=LieTrotter(reps=n_steps)), range(n))\n    qc.measure(range(n), range(n))\n    return qc\n\nH     = build_ising(N_QUBITS)\nexact = exact_distribution(H, TIME, N_QUBITS)   # classical baseline, via SciPy expm\n\nfor n_steps in N_STEPS_SWEEP:\n    qc     = trotter_circuit(H, TIME, n_steps, N_QUBITS)\n    tqc    = transpile(qc, backend, optimization_level=1)   # IonQ-native gates\n    counts = backend.run(tqc, shots=shots).result().get_counts()\n    probs  = counts_to_probs(counts, N_QUBITS)\n    print(f\"steps={n_steps:>2}  depth={tqc.depth():>3}  TV(quantum, exact)={tv_distance(probs, exact):.4f}\")\n","python","· excerpt",[104,105,106,115,121,127,144,158,171,184,197,210,217,242,280,285,328,339,366,406,435,449,473,496,524,529,562,576,636,656,664,669,686,719,724,741,762,796,833,851],"code",{"__ignoreMap":21},[107,108,111],"span",{"class":109,"line":110},"line",1,[107,112,114],{"class":113},"sV9Aq","# Quantum Advantage Lab: the Hamiltonian Simulation race.\n",[107,116,118],{"class":109,"line":117},2,[107,119,120],{"class":113},"# Evolve a transverse-field Ising chain with a Trotter circuit, then sweep\n",[107,122,124],{"class":109,"line":123},3,[107,125,126],{"class":113},"# the step count and watch the quantum result close in on exact evolution.\n",[107,128,130,134,138,141],{"class":109,"line":129},4,[107,131,133],{"class":132},"seHd6","import",[107,135,137],{"class":136},"sn6KH"," numpy ",[107,139,140],{"class":132},"as",[107,142,143],{"class":136}," np\n",[107,145,147,150,153,155],{"class":109,"line":146},5,[107,148,149],{"class":132},"from",[107,151,152],{"class":136}," scipy.linalg ",[107,154,133],{"class":132},[107,156,157],{"class":136}," expm\n",[107,159,161,163,166,168],{"class":109,"line":160},6,[107,162,149],{"class":132},[107,164,165],{"class":136}," qiskit ",[107,167,133],{"class":132},[107,169,170],{"class":136}," QuantumCircuit, transpile\n",[107,172,174,176,179,181],{"class":109,"line":173},7,[107,175,149],{"class":132},[107,177,178],{"class":136}," qiskit.circuit.library ",[107,180,133],{"class":132},[107,182,183],{"class":136}," PauliEvolutionGate\n",[107,185,187,189,192,194],{"class":109,"line":186},8,[107,188,149],{"class":132},[107,190,191],{"class":136}," qiskit.quantum_info ",[107,193,133],{"class":132},[107,195,196],{"class":136}," SparsePauliOp\n",[107,198,200,202,205,207],{"class":109,"line":199},9,[107,201,149],{"class":132},[107,203,204],{"class":136}," qiskit.synthesis ",[107,206,133],{"class":132},[107,208,209],{"class":136}," LieTrotter\n",[107,211,213],{"class":109,"line":212},10,[107,214,216],{"emptyLinePlaceholder":215},true,"\n",[107,218,220,224,227,230,234,237,239],{"class":109,"line":219},11,[107,221,223],{"class":222},"sVC51","N_QUBITS",[107,225,226],{"class":136},", ",[107,228,229],{"class":222},"TIME",[107,231,233],{"class":232},"sjrmR"," =",[107,235,236],{"class":222}," 4",[107,238,226],{"class":136},[107,240,241],{"class":222},"0.5\n",[107,243,245,248,251,254,257,259,262,264,267,269,272,274,277],{"class":109,"line":244},12,[107,246,247],{"class":222},"N_STEPS_SWEEP",[107,249,250],{"class":232},"  =",[107,252,253],{"class":136}," [",[107,255,256],{"class":222},"1",[107,258,226],{"class":136},[107,260,261],{"class":222},"2",[107,263,226],{"class":136},[107,265,266],{"class":222},"4",[107,268,226],{"class":136},[107,270,271],{"class":222},"8",[107,273,226],{"class":136},[107,275,276],{"class":222},"16",[107,278,279],{"class":136},"]\n",[107,281,283],{"class":109,"line":282},13,[107,284,216],{"emptyLinePlaceholder":215},[107,286,288,291,295,298,302,304,307,310,313,315,318,320,322,325],{"class":109,"line":287},14,[107,289,290],{"class":132},"def",[107,292,294],{"class":293},"sVbv2"," build_ising",[107,296,297],{"class":136},"(",[107,299,301],{"class":300},"sb9H8","n",[107,303,226],{"class":136},[107,305,306],{"class":300},"J",[107,308,309],{"class":136},"=",[107,311,312],{"class":222},"1.0",[107,314,226],{"class":136},[107,316,317],{"class":300},"h",[107,319,309],{"class":136},[107,321,312],{"class":222},[107,323,324],{"class":136},"):              ",[107,326,327],{"class":113},"# H = -J sum ZZ - h sum X\n",[107,329,331,334,336],{"class":109,"line":330},15,[107,332,333],{"class":136},"    terms ",[107,335,309],{"class":232},[107,337,338],{"class":136}," []\n",[107,340,342,345,348,351,354,357,360,363],{"class":109,"line":341},16,[107,343,344],{"class":132},"    for",[107,346,347],{"class":136}," i ",[107,349,350],{"class":132},"in",[107,352,353],{"class":232}," range",[107,355,356],{"class":136},"(n ",[107,358,359],{"class":232},"-",[107,361,362],{"class":222}," 1",[107,364,365],{"class":136},"):\n",[107,367,369,372,374,376,380,383,386,389,391,394,397,399,401,403],{"class":109,"line":368},17,[107,370,371],{"class":136},"        zz ",[107,373,309],{"class":232},[107,375,253],{"class":136},[107,377,379],{"class":378},"subq3","\"I\"",[107,381,382],{"class":136},"] ",[107,384,385],{"class":232},"*",[107,387,388],{"class":136}," n; zz[i] ",[107,390,309],{"class":232},[107,392,393],{"class":136}," zz[i ",[107,395,396],{"class":232},"+",[107,398,362],{"class":222},[107,400,382],{"class":136},[107,402,309],{"class":232},[107,404,405],{"class":378}," \"Z\"\n",[107,407,409,412,415,418,421,424,427,430,432],{"class":109,"line":408},18,[107,410,411],{"class":136},"        terms.",[107,413,414],{"class":293},"append",[107,416,417],{"class":136},"((",[107,419,420],{"class":378},"\"\"",[107,422,423],{"class":136},".",[107,425,426],{"class":293},"join",[107,428,429],{"class":136},"(zz), ",[107,431,359],{"class":232},[107,433,434],{"class":136},"J))\n",[107,436,438,440,442,444,446],{"class":109,"line":437},19,[107,439,344],{"class":132},[107,441,347],{"class":136},[107,443,350],{"class":132},[107,445,353],{"class":232},[107,447,448],{"class":136},"(n):\n",[107,450,452,455,457,459,461,463,465,468,470],{"class":109,"line":451},20,[107,453,454],{"class":136},"        x ",[107,456,309],{"class":232},[107,458,253],{"class":136},[107,460,379],{"class":378},[107,462,382],{"class":136},[107,464,385],{"class":232},[107,466,467],{"class":136}," n; x[i] ",[107,469,309],{"class":232},[107,471,472],{"class":378}," \"X\"\n",[107,474,476,478,480,482,484,486,488,491,493],{"class":109,"line":475},21,[107,477,411],{"class":136},[107,479,414],{"class":293},[107,481,417],{"class":136},[107,483,420],{"class":378},[107,485,423],{"class":136},[107,487,426],{"class":293},[107,489,490],{"class":136},"(x), ",[107,492,359],{"class":232},[107,494,495],{"class":136},"h))\n",[107,497,499,502,505,508,511],{"class":109,"line":498},22,[107,500,501],{"class":132},"    return",[107,503,504],{"class":136}," SparsePauliOp.",[107,506,507],{"class":293},"from_list",[107,509,510],{"class":136},"(terms)",[107,512,515,516],{"class":513,"tabindex":514},"qg-help",0,"?",[107,517,520,523],{"class":518,"role":519},"qg-help__tip","tooltip",[38,521,522],{},"The model."," A 1D transverse-field Ising chain: neighbouring spins coupled along Z, a field along X. A small, well-understood system to simulate.",[107,525,527],{"class":109,"line":526},23,[107,528,216],{"emptyLinePlaceholder":215},[107,530,532,534,537,539,542,544,547,549,552,554,556,559],{"class":109,"line":531},24,[107,533,290],{"class":132},[107,535,536],{"class":293}," trotter_circuit",[107,538,297],{"class":136},[107,540,541],{"class":300},"H",[107,543,226],{"class":136},[107,545,546],{"class":300},"t",[107,548,226],{"class":136},[107,550,551],{"class":300},"n_steps",[107,553,226],{"class":136},[107,555,301],{"class":300},[107,557,558],{"class":136},"):         ",[107,560,561],{"class":113},"# first-order Lie-Trotter\n",[107,563,565,568,570,573],{"class":109,"line":564},25,[107,566,567],{"class":136},"    qc ",[107,569,309],{"class":232},[107,571,572],{"class":293}," QuantumCircuit",[107,574,575],{"class":136},"(n, n)\n",[107,577,579,582,584,586,589,592,596,598,601,604,606,609,611,614,616,619,622,625],{"class":109,"line":578},26,[107,580,581],{"class":136},"    qc.",[107,583,414],{"class":293},[107,585,297],{"class":136},[107,587,588],{"class":293},"PauliEvolutionGate",[107,590,591],{"class":136},"(H, ",[107,593,595],{"class":594},"s_ZVi","time",[107,597,309],{"class":232},[107,599,600],{"class":136},"t, ",[107,602,603],{"class":594},"synthesis",[107,605,309],{"class":232},[107,607,608],{"class":293},"LieTrotter",[107,610,297],{"class":136},[107,612,613],{"class":594},"reps",[107,615,309],{"class":232},[107,617,618],{"class":136},"n_steps)), ",[107,620,621],{"class":232},"range",[107,623,624],{"class":136},"(n))",[107,626,515,627],{"class":513,"tabindex":514},[107,628,629,632,633,635],{"class":518,"role":519},[38,630,631],{},"Trotterization."," Approximates the time-evolution by chopping it into ",[104,634,551],{}," slices. More steps means a more faithful result and a deeper circuit, and watching that tradeoff is the race.",[107,637,639,641,644,646,648,651,653],{"class":109,"line":638},27,[107,640,581],{"class":136},[107,642,643],{"class":293},"measure",[107,645,297],{"class":136},[107,647,621],{"class":232},[107,649,650],{"class":136},"(n), ",[107,652,621],{"class":232},[107,654,655],{"class":136},"(n))\n",[107,657,659,661],{"class":109,"line":658},28,[107,660,501],{"class":132},[107,662,663],{"class":136}," qc\n",[107,665,667],{"class":109,"line":666},29,[107,668,216],{"emptyLinePlaceholder":215},[107,670,672,675,677,679,681,683],{"class":109,"line":671},30,[107,673,674],{"class":136},"H     ",[107,676,309],{"class":232},[107,678,294],{"class":293},[107,680,297],{"class":136},[107,682,223],{"class":222},[107,684,685],{"class":136},")\n",[107,687,689,692,694,697,699,701,703,705,708,711],{"class":109,"line":688},31,[107,690,691],{"class":136},"exact ",[107,693,309],{"class":232},[107,695,696],{"class":293}," exact_distribution",[107,698,591],{"class":136},[107,700,229],{"class":222},[107,702,226],{"class":136},[107,704,223],{"class":222},[107,706,707],{"class":136},")   ",[107,709,710],{"class":113},"# classical baseline, via SciPy expm",[107,712,515,713],{"class":513,"tabindex":514},[107,714,715,718],{"class":518,"role":519},[38,716,717],{},"The classical side."," SciPy exponentiates the full 2ⁿ×2ⁿ matrix directly. Exact, but the cost explodes with every qubit you add.",[107,720,722],{"class":109,"line":721},32,[107,723,216],{"emptyLinePlaceholder":215},[107,725,727,730,733,735,738],{"class":109,"line":726},33,[107,728,729],{"class":132},"for",[107,731,732],{"class":136}," n_steps ",[107,734,350],{"class":132},[107,736,737],{"class":222}," N_STEPS_SWEEP",[107,739,740],{"class":136},":\n",[107,742,744,747,749,751,753,755,758,760],{"class":109,"line":743},34,[107,745,746],{"class":136},"    qc     ",[107,748,309],{"class":232},[107,750,536],{"class":293},[107,752,591],{"class":136},[107,754,229],{"class":222},[107,756,757],{"class":136},", n_steps, ",[107,759,223],{"class":222},[107,761,685],{"class":136},[107,763,765,768,770,773,776,779,781,783,785,788],{"class":109,"line":764},35,[107,766,767],{"class":136},"    tqc    ",[107,769,309],{"class":232},[107,771,772],{"class":293}," transpile",[107,774,775],{"class":136},"(qc, backend, ",[107,777,778],{"class":594},"optimization_level",[107,780,309],{"class":232},[107,782,256],{"class":222},[107,784,707],{"class":136},[107,786,787],{"class":113},"# IonQ-native gates",[107,789,515,790],{"class":513,"tabindex":514},[107,791,792,795],{"class":518,"role":519},[38,793,794],{},"IonQ-native."," On trapped-ion hardware, all-to-all connectivity lets the entangling layers run with no SWAP gates, so the circuit stays shallow. Switch the backend to compare.",[107,797,799,802,804,807,810,813,816,818,821,824,827,830],{"class":109,"line":798},36,[107,800,801],{"class":136},"    counts ",[107,803,309],{"class":232},[107,805,806],{"class":136}," backend.",[107,808,809],{"class":293},"run",[107,811,812],{"class":136},"(tqc, ",[107,814,815],{"class":594},"shots",[107,817,309],{"class":232},[107,819,820],{"class":136},"shots).",[107,822,823],{"class":293},"result",[107,825,826],{"class":136},"().",[107,828,829],{"class":293},"get_counts",[107,831,832],{"class":136},"()\n",[107,834,836,839,841,844,847,849],{"class":109,"line":835},37,[107,837,838],{"class":136},"    probs  ",[107,840,309],{"class":232},[107,842,843],{"class":293}," counts_to_probs",[107,845,846],{"class":136},"(counts, ",[107,848,223],{"class":222},[107,850,685],{"class":136},[107,852,854,857,859,862,865,868,870,873,876,879,881,884,887,890,893,895,898,900,903,906,909,911,914,917],{"class":109,"line":853},38,[107,855,856],{"class":232},"    print",[107,858,297],{"class":136},[107,860,861],{"class":132},"f",[107,863,864],{"class":378},"\"steps=",[107,866,867],{"class":222},"{",[107,869,551],{"class":136},[107,871,872],{"class":132},":>2",[107,874,875],{"class":222},"}",[107,877,878],{"class":378},"  depth=",[107,880,867],{"class":222},[107,882,883],{"class":136},"tqc.",[107,885,886],{"class":293},"depth",[107,888,889],{"class":136},"()",[107,891,892],{"class":132},":>3",[107,894,875],{"class":222},[107,896,897],{"class":378},"  TV(quantum, exact)=",[107,899,867],{"class":222},[107,901,902],{"class":293},"tv_distance",[107,904,905],{"class":136},"(probs, exact)",[107,907,908],{"class":132},":.4f",[107,910,875],{"class":222},[107,912,913],{"class":378},"\"",[107,915,916],{"class":136},")",[107,918,515,919],{"class":513,"tabindex":514},[107,920,921,924],{"class":518,"role":519},[38,922,923],{},"The verdict."," Total-variation distance between the sampled quantum distribution and the exact one. Watch it shrink as the Trotter steps climb.",[12,926,927],{},"The same pattern drives the other three races: a real circuit on one side, an exact or best-effort classical solver on the other, and a stream of intermediate state in between. Because the architecture is modular, each race is a self-contained plug-in, which is what lets the Lab grow a fifth or sixth race without a rewrite.",[929,930,932],"repo-spec",{"lead":931},"Quantum Advantage Lab is open source and MIT-licensed, with a modular architecture built for community-contributed races.",[933,934,935,948],"table",{},[936,937,938],"thead",{},[939,940,941,945],"tr",{},[942,943,944],"th",{},"Field",[942,946,947],{},"Detail",[949,950,951,960,968,976,984],"tbody",{},[939,952,953,957],{},[954,955,956],"td",{},"Quantum",[954,958,959],{},"Qiskit, Grover, VQE, a quantum walk, and Hamiltonian simulation, each a real circuit.",[939,961,962,965],{},[954,963,964],{},"Hardware",[954,966,967],{},"qiskit-ionq, IonQ Forte trapped-ion QPU, all-to-all connectivity.",[939,969,970,973],{},[954,971,972],{},"Classical",[954,974,975],{},"NumPy, SciPy, tensor-network baselines, the side each race has to beat.",[939,977,978,981],{},[954,979,980],{},"What you see",[954,982,983],{},"Streaming intermediate state, amplitudes, energies, distributions, and fidelity, step by step.",[939,985,986,989],{},[954,987,988],{},"License",[954,990,991],{},"MIT, with a plug-in architecture for community-contributed modules.",[28,993,995],{"id":994},"make-it-yours","Make it yours",[12,997,998],{},"Quantum Advantage Lab is open and forkable on Qollab, MIT-licensed on GitHub, and live on the web right now. Pick a race, set the parameters, and step through it on a simulator or a real IonQ processor. The architecture is modular, so a new race is a plug-in, not a rewrite.",[994,1000,1003],{"fork-href":94,"live-href":1001,"title":1002},"https:\u002F\u002Fquantum-advantage-lab.vercel.app\u002F","Watch the speedup, and where it runs out.",[12,1004,1005,1006],{},"Fork the Lab, choose Grover, VQE, a quantum walk, or Hamiltonian simulation, and step through it beside its classical rival. ",[38,1007,1008],{},"Everything here is open and yours to build on.",[1010,1011,1012],"style",{},"html pre.shiki code .sV9Aq, html code.shiki .sV9Aq{--shiki-default:#7F848E;--shiki-default-font-style:italic}html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":21,"searchDepth":117,"depth":117,"links":1014},[1015,1016,1017,1018],{"id":30,"depth":117,"text":31},{"id":67,"depth":117,"text":68},{"id":85,"depth":117,"text":86},{"id":994,"depth":117,"text":995},[1020,1021,1022],"Qollab","Blog","Quantum Advantage Lab",[1024],{"username":7,"name":1025,"role":1026,"avatar":21,"bio":1027,"links":1028},"Hossein Sadeghi Esfahani","Creator · quantum software & hardware","Hossein holds a PhD from the University of British Columbia and has spent more than a decade in quantum software. He spent seven years at D-Wave Systems, rising from applied researcher to solution architect and team lead and co-inventing three patents in quantum optimization and benchmarking, then led academic and R&D partnerships on neutral-atom systems at Pasqal Canada. He has also served as an investigator in the Creative Destruction Lab's Quantum Stream, mentoring early-stage quantum startups. Quantum Advantage Lab is his solo build.",[1029,1032,1035],{"label":1030,"href":1031},"Qollab ↗","https:\u002F\u002Fqollab.xyz\u002Fu\u002Fhsadeghi",{"label":1033,"href":1034},"LinkedIn ↗","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fhosseinsadeghi\u002F",{"label":1036,"href":1037},"GitHub ↗","https:\u002F\u002Fgithub.com\u002Fhosseinsadeghi",{"username":1039,"name":1040,"role":1041,"avatar":1042},"nico","Nicolaas Spijker","Community manager, Qollab","\u002F_content\u002Fimages\u002Fbuilders\u002Fnicolaas-spijker.webp",null,"Hossein Sadeghi built a lab where four quantum algorithms run beside their classical counterparts and stream their intermediate state, so the mechanism behind a speedup is something you watch unfold rather than read about.","Quantum Advantage Lab runs four quantum algorithms beside their classical counterparts, streaming each step so the mechanism behind a speedup is something you watch. A Qollab Spring 2026 project.",false,"md","Quantum Creative Challenge · Spring 2026",{"href":94,"label":1050},"Fork the Lab",{"image":1052,"alt":1053,"liveUrl":1001},"\u002F_content\u002Fimages\u002Fquantum-advantage-lab\u002Fhero.webp","Quantum Advantage Lab's Race view: a quantum solver and a classical solver running the same Hamiltonian simulation side by side, state distributions streaming step by step","news",{},"\u002Fblog\u002Fquantum-advantage-lab","2026-06-30","8 min read",[],[1061,1068,1075],{"username":1062,"project":1063,"title":1064,"category":1065,"thumb":1066,"to":1067},"bawa27","qorbital","qOrbital","Education","\u002F_content\u002Fimages\u002Fqorbital\u002Fthumbnail.webp","\u002Fexplore\u002Fqorbital",{"username":1069,"project":1070,"title":1071,"category":1072,"thumb":1073,"to":1074},"xinyi","quantum-butterfly-field","Quantum Butterfly Field","Art","\u002F_content\u002Fimages\u002Fquantum-butterfly-field\u002Fthumbnail.webp","\u002Fexplore\u002Fquantum-butterfly-field",{"username":1076,"project":1077,"title":1078,"category":1065,"thumb":1079,"to":1080},"ShivaniMayekar","quantum-canvas","QuantumCanvas","\u002F_content\u002Fimages\u002Fquantum-canvas\u002Fthumbnail.webp","\u002Fexplore\u002Fquantum-canvas",{"title":1082,"description":1083},"Quantum Creative Project Showcase: Quantum Advantage Lab","Four quantum algorithms run beside their classical counterparts, streaming each step, so the mechanism behind a speedup becomes something you can watch.","blog\u002Fquantum-advantage-lab",[1086,1087,1088],"education","quantum","visualization","E7hA8Ne2mFhtYetTHyhZAz6QcGv9aGM37odhQgwaM2U",[],[],1785631554565]