[{"data":1,"prerenderedAt":1039},["ShallowReactive",2],{"blog-post-qcflows":3,"sibling-dives-qcflows":1037,"learn-track-qcflows":1038},{"id":4,"title":5,"authors":6,"body":10,"breadcrumb":955,"builders":959,"byline":985,"challenge":990,"courseAuthor":990,"courseLead":990,"dek":991,"description":992,"draft":993,"extension":994,"eyebrow":995,"finish":990,"fork":996,"hero":998,"heroAlt":990,"heroCta":990,"heroImage":990,"kind":1001,"lessonCount":990,"meta":1002,"navigation":191,"newsItems":990,"next":990,"ogImage":990,"order":990,"outcomes":990,"path":1003,"publishDate":1004,"readingTime":1005,"related":1006,"relatedProjects":1007,"seo":1028,"stem":1031,"tags":1032,"track":990,"trackName":990,"__hash__":1036},"blog\u002Fblog\u002Fqcflows.md","Project Showcase: QCFlows",[7,8,9],"itaborala","iosifinaangelidi","eelvex",{"type":11,"value":12,"toc":948},"minimark",[13,17,26,29,38,43,46,102,105,112,116,124,827,838,890,894,897,900,907,911,914,919,922,927,931,934,944],[14,15,16],"p",{},"A circuit diagram shows you the gates. It says nothing about the thing that makes the circuit quantum: the web of correlations that forms, shifts, and spreads between qubits as the state evolves.",[14,18,19,20,25],{},"QCFlows makes that web visible. Draw a circuit onto an interactive qubit graph, or import your QASM, and a live dashboard renders the correlation structure as a dynamic network you can scrub through, layer by layer. It runs in the browser at ",[21,22,24],"a",{"href":23},"https:\u002F\u002Fapp.qcflows.net\u002F","app.qcflows.net",", and the whole stack is open source.",[14,27,28],{},"It is a Spring 2026 challenge project from three researchers in the QUEST group at the Cyprus Institute: Paulo Itaboraí, who leads the project, with Dr. Iosifina Angelidi on theory and Dr. Kostas Blekos on quantum information. The starting point is a frustration the group kept meeting in its own research.",[30,31,35],"pull-quote",{"avatar":32,"name":33,"role":34,"username":7},"","Paulo Itaboraí","Project lead, QCFlows",[14,36,37],{},"We keep coming back to how difficult it actually is to visualize entanglement. The project is based on quantum tomography ideas, but those often stay on the academic side and don't get across to a general audience. We're trying to bring the visualization of correlations between qubits to a general audience.",[39,40,42],"h2",{"id":41},"seeing-past-the-gate-diagram","Seeing past the gate diagram",[14,44,45],{},"Most circuit tools stop at a static, gate-by-gate layout. The correlation structure that builds up while those gates run is invisible in that view, and it is precisely the part that carries the quantum behaviour. QCFlows puts it on screen: an interactive qubit graph and a metric-matrix heatmap sit alongside a traditional wire view, all linked to the live statevector, so every gate you add or remove redraws the whole picture.",[47,48,50],"repo-spec",{"lead":49},"One dashboard, four linked views of the same state.",[51,52,53,66],"table",{},[54,55,56],"thead",{},[57,58,59,63],"tr",{},[60,61,62],"th",{},"Field",[60,64,65],{},"Detail",[67,68,69,78,86,94],"tbody",{},[57,70,71,75],{},[72,73,74],"td",{},"Qubit graph",[72,76,77],{},"The circuit drawn as a network; edges weight live pairwise correlations.",[57,79,80,83],{},[72,81,82],{},"Metric matrix",[72,84,85],{},"A heatmap of every pair under the chosen metric and basis.",[57,87,88,91],{},[72,89,90],{},"Circuit timeline",[72,92,93],{},"Scrub through the gate sequence; every view follows in real time.",[57,95,96,99],{},[72,97,98],{},"Statevector readout",[72,100,101],{},"The raw amplitudes behind the pictures.",[14,103,104],{},"The idea predates the challenge. As Kostas tells it, it came from all three of them at once, out of calculations and preliminary graphs they were already making about how information moves through a circuit.",[30,106,109],{"avatar":32,"name":107,"role":108,"username":9},"Dr. Kostas Blekos","Quantum information, QCFlows",[14,110,111],{},"The point, when we started this, was to get insight into how quantum algorithms work in the dynamic sense.",[39,113,115],{"id":114},"a-direction-for-correlation","A direction for correlation",[14,117,118,119,123],{},"The dashboard's default lens is the team's own metric: the K-network, formalized in their June 2026 paper, ",[21,120,122],{"href":121},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2606.16549","“What does measuring one qubit reveal about another?”"," It answers a question a symmetric weight cannot: if you measure qubit i in a given basis, how strongly does that outcome reshape the state of qubit j? The scoring engine behind it is compact enough to read in one sitting.",[125,126,130],"code-block",{"name":127,"run-href":128,"tag":129},"k_measure.py","https:\u002F\u002Fgithub.com\u002FItaborala\u002FQCFlows","Python · excerpt",[131,132,137],"pre",{"className":133,"code":134,"language":135,"meta":136,"style":32},"language-python shiki shiki-themes one-dark-pro","# How the backend scores a directed correlation, K[i->j], from a pair's\n# reduced density matrix. Excerpt from qcflows_api\u002Fk_measure.py.\nimport numpy as np\nfrom qiskit import QuantumCircuit\n\n# A 4-qubit ladder: each CX hands correlation one qubit down the line.\nCIRCUIT = QuantumCircuit(4)\nCIRCUIT.ry(1.2, 0)\nCIRCUIT.cx(0, 1)\nCIRCUIT.ry(1.2, 1)\nCIRCUIT.cx(1, 2)\nCIRCUIT.ry(1.2, 2)\nCIRCUIT.cx(2, 3)\n\ndef directional_k(rho2, zero_idx, one_idx, tol=1e-10):\n    \"\"\"K for measuring one qubit (Z basis) and inspecting the other.\"\"\"\n    s0 = rho2[np.ix_(zero_idx, zero_idx)]   # measured qubit read 0\n    s1 = rho2[np.ix_(one_idx, one_idx)]     # measured qubit read 1\n    p0, p1 = np.real(np.trace(s0)), np.real(np.trace(s1))\n    if p0 \u003C tol or p1 \u003C tol:\n        return 0.0\n    value = 4.0 * p0 * p1 * (1.0 - squared_fidelity(s0 \u002F p0, s1 \u002F p1))\n    return float(np.clip(value, 0.0, 1.0))\n\ndef directed_pair_k(rho2):\n    \"\"\"(K[i->j], K[j->i]) from one 2-qubit reduced density matrix.\"\"\"\n    k_ij = directional_k(rho2, [0, 1], [2, 3])   # measure i, inspect j\n    k_ji = directional_k(rho2, [0, 2], [1, 3])   # measure j, inspect i\n    return k_ij, k_ji\n\n# The flow: truncate the circuit after every gate and rescore every pair.\nfor m in range(len(CIRCUIT.data) + 1):\n    state = prefix_state(CIRCUIT, m)   # statevector after the first m gates\n    print(f\"marker {m}:\\n{k_matrix(state).round(2)}\")\n","python","· excerpt",[138,139,140,149,155,172,186,193,199,223,247,268,287,307,326,346,351,390,397,417,435,467,493,502,565,592,597,611,617,659,690,698,703,709,744,773],"code",{"__ignoreMap":32},[141,142,145],"span",{"class":143,"line":144},"line",1,[141,146,148],{"class":147},"sV9Aq","# How the backend scores a directed correlation, K[i->j], from a pair's\n",[141,150,152],{"class":143,"line":151},2,[141,153,154],{"class":147},"# reduced density matrix. Excerpt from qcflows_api\u002Fk_measure.py.\n",[141,156,158,162,166,169],{"class":143,"line":157},3,[141,159,161],{"class":160},"seHd6","import",[141,163,165],{"class":164},"sn6KH"," numpy ",[141,167,168],{"class":160},"as",[141,170,171],{"class":164}," np\n",[141,173,175,178,181,183],{"class":143,"line":174},4,[141,176,177],{"class":160},"from",[141,179,180],{"class":164}," qiskit ",[141,182,161],{"class":160},[141,184,185],{"class":164}," QuantumCircuit\n",[141,187,189],{"class":143,"line":188},5,[141,190,192],{"emptyLinePlaceholder":191},true,"\n",[141,194,196],{"class":143,"line":195},6,[141,197,198],{"class":147},"# A 4-qubit ladder: each CX hands correlation one qubit down the line.\n",[141,200,202,206,210,214,217,220],{"class":143,"line":201},7,[141,203,205],{"class":204},"sVC51","CIRCUIT",[141,207,209],{"class":208},"sjrmR"," =",[141,211,213],{"class":212},"sVbv2"," QuantumCircuit",[141,215,216],{"class":164},"(",[141,218,219],{"class":204},"4",[141,221,222],{"class":164},")\n",[141,224,226,228,231,234,236,239,242,245],{"class":143,"line":225},8,[141,227,205],{"class":204},[141,229,230],{"class":164},".",[141,232,233],{"class":212},"ry",[141,235,216],{"class":164},[141,237,238],{"class":204},"1.2",[141,240,241],{"class":164},", ",[141,243,244],{"class":204},"0",[141,246,222],{"class":164},[141,248,250,252,254,257,259,261,263,266],{"class":143,"line":249},9,[141,251,205],{"class":204},[141,253,230],{"class":164},[141,255,256],{"class":212},"cx",[141,258,216],{"class":164},[141,260,244],{"class":204},[141,262,241],{"class":164},[141,264,265],{"class":204},"1",[141,267,222],{"class":164},[141,269,271,273,275,277,279,281,283,285],{"class":143,"line":270},10,[141,272,205],{"class":204},[141,274,230],{"class":164},[141,276,233],{"class":212},[141,278,216],{"class":164},[141,280,238],{"class":204},[141,282,241],{"class":164},[141,284,265],{"class":204},[141,286,222],{"class":164},[141,288,290,292,294,296,298,300,302,305],{"class":143,"line":289},11,[141,291,205],{"class":204},[141,293,230],{"class":164},[141,295,256],{"class":212},[141,297,216],{"class":164},[141,299,265],{"class":204},[141,301,241],{"class":164},[141,303,304],{"class":204},"2",[141,306,222],{"class":164},[141,308,310,312,314,316,318,320,322,324],{"class":143,"line":309},12,[141,311,205],{"class":204},[141,313,230],{"class":164},[141,315,233],{"class":212},[141,317,216],{"class":164},[141,319,238],{"class":204},[141,321,241],{"class":164},[141,323,304],{"class":204},[141,325,222],{"class":164},[141,327,329,331,333,335,337,339,341,344],{"class":143,"line":328},13,[141,330,205],{"class":204},[141,332,230],{"class":164},[141,334,256],{"class":212},[141,336,216],{"class":164},[141,338,304],{"class":204},[141,340,241],{"class":164},[141,342,343],{"class":204},"3",[141,345,222],{"class":164},[141,347,349],{"class":143,"line":348},14,[141,350,192],{"emptyLinePlaceholder":191},[141,352,354,357,360,362,366,368,371,373,376,378,381,384,387],{"class":143,"line":353},15,[141,355,356],{"class":160},"def",[141,358,359],{"class":212}," directional_k",[141,361,216],{"class":164},[141,363,365],{"class":364},"sb9H8","rho2",[141,367,241],{"class":164},[141,369,370],{"class":364},"zero_idx",[141,372,241],{"class":164},[141,374,375],{"class":364},"one_idx",[141,377,241],{"class":164},[141,379,380],{"class":364},"tol",[141,382,383],{"class":164},"=",[141,385,386],{"class":204},"1e-10",[141,388,389],{"class":164},"):\n",[141,391,393],{"class":143,"line":392},16,[141,394,396],{"class":395},"subq3","    \"\"\"K for measuring one qubit (Z basis) and inspecting the other.\"\"\"\n",[141,398,400,403,405,408,411,414],{"class":143,"line":399},17,[141,401,402],{"class":164},"    s0 ",[141,404,383],{"class":208},[141,406,407],{"class":164}," rho2[np.",[141,409,410],{"class":212},"ix_",[141,412,413],{"class":164},"(zero_idx, zero_idx)]   ",[141,415,416],{"class":147},"# measured qubit read 0\n",[141,418,420,423,425,427,429,432],{"class":143,"line":419},18,[141,421,422],{"class":164},"    s1 ",[141,424,383],{"class":208},[141,426,407],{"class":164},[141,428,410],{"class":212},[141,430,431],{"class":164},"(one_idx, one_idx)]     ",[141,433,434],{"class":147},"# measured qubit read 1\n",[141,436,438,441,443,446,449,452,455,458,460,462,464],{"class":143,"line":437},19,[141,439,440],{"class":164},"    p0, p1 ",[141,442,383],{"class":208},[141,444,445],{"class":164}," np.",[141,447,448],{"class":212},"real",[141,450,451],{"class":164},"(np.",[141,453,454],{"class":212},"trace",[141,456,457],{"class":164},"(s0)), np.",[141,459,448],{"class":212},[141,461,451],{"class":164},[141,463,454],{"class":212},[141,465,466],{"class":164},"(s1))\n",[141,468,470,473,476,479,482,485,488,490],{"class":143,"line":469},20,[141,471,472],{"class":160},"    if",[141,474,475],{"class":164}," p0 ",[141,477,478],{"class":208},"\u003C",[141,480,481],{"class":164}," tol ",[141,483,484],{"class":160},"or",[141,486,487],{"class":164}," p1 ",[141,489,478],{"class":208},[141,491,492],{"class":164}," tol:\n",[141,494,496,499],{"class":143,"line":495},21,[141,497,498],{"class":160},"        return",[141,500,501],{"class":204}," 0.0\n",[141,503,505,508,510,513,516,518,521,523,525,528,531,534,537,540,543,546,548,551],{"class":143,"line":504},22,[141,506,507],{"class":164},"    value ",[141,509,383],{"class":208},[141,511,512],{"class":204}," 4.0",[141,514,515],{"class":208}," *",[141,517,475],{"class":164},[141,519,520],{"class":208},"*",[141,522,487],{"class":164},[141,524,520],{"class":208},[141,526,527],{"class":164}," (",[141,529,530],{"class":204},"1.0",[141,532,533],{"class":208}," -",[141,535,536],{"class":212}," squared_fidelity",[141,538,539],{"class":164},"(s0 ",[141,541,542],{"class":208},"\u002F",[141,544,545],{"class":164}," p0, s1 ",[141,547,542],{"class":208},[141,549,550],{"class":164}," p1))",[141,552,555,556],{"class":553,"tabindex":554},"qg-help",0,"?",[141,557,560,564],{"class":558,"role":559},"qg-help__tip","tooltip",[561,562,563],"strong",{},"The K score."," Read one qubit in the Z basis. K asks how distinguishable the other qubit's two conditional states become, weighted by how informative the readout was; the weight peaks at a 50\u002F50 split. Zero means the measurement reveals nothing about the partner.",[141,566,568,571,574,576,579,582,585,587,589],{"class":143,"line":567},23,[141,569,570],{"class":160},"    return",[141,572,573],{"class":208}," float",[141,575,451],{"class":164},[141,577,578],{"class":212},"clip",[141,580,581],{"class":164},"(value, ",[141,583,584],{"class":204},"0.0",[141,586,241],{"class":164},[141,588,530],{"class":204},[141,590,591],{"class":164},"))\n",[141,593,595],{"class":143,"line":594},24,[141,596,192],{"emptyLinePlaceholder":191},[141,598,600,602,605,607,609],{"class":143,"line":599},25,[141,601,356],{"class":160},[141,603,604],{"class":212}," directed_pair_k",[141,606,216],{"class":164},[141,608,365],{"class":364},[141,610,389],{"class":164},[141,612,614],{"class":143,"line":613},26,[141,615,616],{"class":395},"    \"\"\"(K[i->j], K[j->i]) from one 2-qubit reduced density matrix.\"\"\"\n",[141,618,620,623,625,627,630,632,634,636,639,641,643,645,648,651],{"class":143,"line":619},27,[141,621,622],{"class":164},"    k_ij ",[141,624,383],{"class":208},[141,626,359],{"class":212},[141,628,629],{"class":164},"(rho2, [",[141,631,244],{"class":204},[141,633,241],{"class":164},[141,635,265],{"class":204},[141,637,638],{"class":164},"], [",[141,640,304],{"class":204},[141,642,241],{"class":164},[141,644,343],{"class":204},[141,646,647],{"class":164},"])   ",[141,649,650],{"class":147},"# measure i, inspect j",[141,652,555,653],{"class":553,"tabindex":554},[141,654,655,658],{"class":558,"role":559},[561,656,657],{},"Direction matters."," The two calls swap which qubit is measured. K[i→j] and K[j→i] can genuinely differ, which undirected metrics like mutual information cannot express.",[141,660,662,665,667,669,671,673,675,677,679,681,683,685,687],{"class":143,"line":661},28,[141,663,664],{"class":164},"    k_ji ",[141,666,383],{"class":208},[141,668,359],{"class":212},[141,670,629],{"class":164},[141,672,244],{"class":204},[141,674,241],{"class":164},[141,676,304],{"class":204},[141,678,638],{"class":164},[141,680,265],{"class":204},[141,682,241],{"class":164},[141,684,343],{"class":204},[141,686,647],{"class":164},[141,688,689],{"class":147},"# measure j, inspect i\n",[141,691,693,695],{"class":143,"line":692},29,[141,694,570],{"class":160},[141,696,697],{"class":164}," k_ij, k_ji\n",[141,699,701],{"class":143,"line":700},30,[141,702,192],{"emptyLinePlaceholder":191},[141,704,706],{"class":143,"line":705},31,[141,707,708],{"class":147},"# The flow: truncate the circuit after every gate and rescore every pair.\n",[141,710,712,715,718,721,724,726,729,731,733,736,739,742],{"class":143,"line":711},32,[141,713,714],{"class":160},"for",[141,716,717],{"class":164}," m ",[141,719,720],{"class":160},"in",[141,722,723],{"class":208}," range",[141,725,216],{"class":164},[141,727,728],{"class":208},"len",[141,730,216],{"class":164},[141,732,205],{"class":204},[141,734,735],{"class":164},".data) ",[141,737,738],{"class":208},"+",[141,740,741],{"class":204}," 1",[141,743,389],{"class":164},[141,745,747,750,752,755,757,759,762,765],{"class":143,"line":746},33,[141,748,749],{"class":164},"    state ",[141,751,383],{"class":208},[141,753,754],{"class":212}," prefix_state",[141,756,216],{"class":164},[141,758,205],{"class":204},[141,760,761],{"class":164},", m)   ",[141,763,764],{"class":147},"# statevector after the first m gates",[141,766,555,767],{"class":553,"tabindex":554},[141,768,769,772],{"class":558,"role":559},[561,770,771],{},"The flow."," Each marker is the circuit truncated after m gates. Rescoring at every marker turns a static diagram into motion: correlation appears at one CX, then gets handed down the line by the next.",[141,774,776,779,781,784,787,790,793,796,799,802,804,807,810,813,815,817,820,822,825],{"class":143,"line":775},34,[141,777,778],{"class":208},"    print",[141,780,216],{"class":164},[141,782,783],{"class":160},"f",[141,785,786],{"class":395},"\"marker ",[141,788,789],{"class":204},"{",[141,791,792],{"class":164},"m",[141,794,795],{"class":204},"}",[141,797,798],{"class":395},":",[141,800,801],{"class":208},"\\n",[141,803,789],{"class":204},[141,805,806],{"class":212},"k_matrix",[141,808,809],{"class":164},"(state).",[141,811,812],{"class":212},"round",[141,814,216],{"class":164},[141,816,304],{"class":204},[141,818,819],{"class":164},")",[141,821,795],{"class":204},[141,823,824],{"class":395},"\"",[141,826,222],{"class":164},[14,828,829,830,833,834,837],{},"The answer comes back directed. K",[141,831,832],{},"i→j"," and K",[141,835,836],{},"j→i"," can genuinely differ, so the qubit graph becomes a map with arrows rather than a symmetric mesh. And because every score is computed from two-qubit reduced density matrices, it stays cheap enough to drive the dashboard in real time.",[47,839,841],{"lead":840},"Three lenses on every pair of qubits, switchable per measurement basis.",[51,842,843,851],{},[54,844,845],{},[57,846,847,849],{},[60,848,62],{},[60,850,65],{},[67,852,853,866,874,882],{},[57,854,855,858],{},[72,856,857],{},"K-network",[72,859,860,861,833,863,865],{},"The default: a directed, measurement-induced correlation score. K",[141,862,832],{},[141,864,836],{}," can differ.",[57,867,868,871],{},[72,869,870],{},"Mutual information",[72,872,873],{},"Undirected total correlation, classical and quantum together.",[57,875,876,879],{},[72,877,878],{},"Entanglement of formation",[72,880,881],{},"The entanglement on its own, separated from classical correlation.",[57,883,884,887],{},[72,885,886],{},"Bases",[72,888,889],{},"Every metric viewable under Z, X, and Y measurement.",[39,891,893],{"id":892},"from-simulator-to-hardware","From simulator to hardware",[14,895,896],{},"Where do the density matrices come from? On a simulator, straight from the statevector. On hardware, the same numbers arrive by quantum state tomography: run the circuit many times, measure, and reconstruct each pair's state from the statistics. QCFlows treats the two as interchangeable sources feeding the same dashboard.",[14,898,899],{},"The experiment the team most wants to run on IonQ is a full tomography of a cat-state preparation, based on the algorithm in Iosifina's paper. Done faithfully, it needs mid-circuit measurement, a capability IonQ has slated for its upcoming Tempo processor. Until then, the team has a fallback ready.",[30,901,904],{"avatar":32,"name":902,"role":903,"username":8},"Dr. Iosifina Angelidi","Theory, QCFlows",[14,905,906],{},"Otherwise, we run each layer of unitaries and measurements, save the output state, and refit it into the next layer until we get the cat state. That is what the algorithm in the paper does.",[39,908,910],{"id":909},"made-to-be-taken-apart","Made to be taken apart",[14,912,913],{},"The architecture is deliberately modular: a backend that computes quantum-information metrics and a frontend that visualizes them, talking over websockets, published as two separate repositories. The split is the point. You can run the full dashboard, or skip it and call the API from your own project, where every metric comes back as plain JSON.",[30,915,916],{"avatar":32,"name":33,"role":34,"username":7},[14,917,918],{},"If you just want to compute a mutual-information network metric, you should be able to take that part of the app and be happy about it.",[14,920,921],{},"The same thinking extends to hosting. The app lives at a public URL, but the repositories ship with instructions for running it yourself, and for Paulo that half of the offer matters more than the finished product.",[30,923,924],{"avatar":32,"name":33,"role":34,"username":7},[14,925,926],{},"Even more than giving a finished app, the contribution is to say: here are these metrics, these ways of looking into quantum algorithms. If you have an idea for a completely different application that uses this kind of data, you should be able to take the source code and deploy it yourself.",[39,928,930],{"id":929},"make-it-yours","Make it yours",[14,932,933],{},"QCFlows is open and forkable on Qollab, both repositories are MIT-licensed, and the dashboard is live in your browser right now. Draw a few gates onto the qubit graph, or import a QASM file, and watch the correlation structure respond.",[929,935,938],{"fork-href":936,"live-href":23,"title":937},"\u002Fu\u002Fitaborala\u002Fqcflows","Draw a circuit. Watch it correlate.",[14,939,940,941],{},"Fork QCFlows, load a circuit onto the qubit graph, and watch its correlation structure form and move, layer by layer. ",[561,942,943],{},"Everything here is open and yours to build on.",[945,946,947],"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 .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":32,"searchDepth":151,"depth":151,"links":949},[950,951,952,953,954],{"id":41,"depth":151,"text":42},{"id":114,"depth":151,"text":115},{"id":892,"depth":151,"text":893},{"id":909,"depth":151,"text":910},{"id":929,"depth":151,"text":930},[956,957,958],"Qollab","Blog","QCFlows",[960,973,979],{"username":7,"name":33,"role":961,"avatar":32,"bio":962,"links":963},"Project lead · quantum & music technology","Paulo is an interdisciplinary researcher working where physics meets music technology. A PhD student at the Cyprus Institute, part of the ERA-chair QUEST grant, in collaboration with DESY, he investigates variational quantum algorithms for high-energy physics and tools for sonifying and visualizing quantum computation. He also supports Quantum Patterns, a second project in this challenge.",[964,967,970],{"label":965,"href":966},"Qollab ↗","https:\u002F\u002Fqollab.xyz\u002Fu\u002Fitaborala",{"label":968,"href":969},"Site ↗","https:\u002F\u002Fitabora.space\u002F",{"label":971,"href":972},"GitHub ↗","https:\u002F\u002Fgithub.com\u002FItaborala",{"username":8,"name":902,"role":974,"avatar":32,"bio":975,"links":976},"Theory","Iosifina is a postdoctoral research fellow at the Cyprus Institute, working on quantum circuits and entanglement stabilization. She leads the theory side of QCFlows, including the cat-state preparation the team plans to run as a full tomography experiment on IonQ hardware.",[977],{"label":965,"href":978},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Fiosifinaangelidi",{"username":9,"name":107,"role":980,"avatar":32,"bio":981,"links":982},"Quantum information","Kostas is a researcher in the same QUEST group, focused on quantum information and hybrid algorithms for around a decade. He co-conceived QCFlows and works on its metrics and backend.",[983],{"label":965,"href":984},"https:\u002F\u002Fqollab.xyz\u002Fu\u002Feelvex",{"username":986,"name":987,"role":988,"avatar":989},"nico","Nicolaas Spijker","Community manager, Qollab","\u002F_content\u002Fimages\u002Fbuilders\u002Fnicolaas-spijker.webp",null,"Paulo Itaboraí, Iosifina Angelidi, and Kostas Blekos built a live dashboard that renders a quantum circuit as a dynamic graph of correlations, so you can watch entanglement form and move across the layers of an algorithm.","QCFlows renders a quantum circuit as a live graph of correlations, so you can watch entanglement form and move layer by layer. A Qollab Spring 2026 project.",false,"md","Quantum Creative Challenge · Spring 2026",{"href":936,"label":997},"Fork QCFlows",{"image":999,"alt":1000,"liveUrl":23},"\u002F_content\u002Fimages\u002Fqcflows\u002Fhero.webp","The QCFlows dashboard: a quantum circuit rendered as a dynamic qubit graph beside a correlation heatmap","news",{},"\u002Fblog\u002Fqcflows","2026-07-02","6 min read",[],[1008,1015,1021],{"username":1009,"project":1010,"title":1011,"category":1012,"thumb":1013,"to":1014},"q-aad","quantum-market-game","Quantum Market Game","Finance","\u002F_content\u002Fimages\u002Fquantum-market-game\u002Fthumbnail.webp","\u002Fexplore\u002Fquantum-market-game",{"username":1016,"project":1017,"title":1018,"category":1012,"thumb":1019,"to":1020},"jamie","quantum-systemic-oracle","Quantum Systemic Oracle","\u002F_content\u002Fimages\u002Fsystemic-oracle\u002Fthumbnail.webp","\u002Fexplore\u002Fquantum-systemic-oracle",{"username":1022,"project":1023,"title":1024,"category":1025,"thumb":1026,"to":1027},"lukeshim","entangled-body","Entangled Body","Art","\u002F_content\u002Fimages\u002Fentangled-body\u002Fthumbnail.webp","\u002Fexplore\u002Fentangled-body",{"title":1029,"description":1030},"Quantum Creative Project Showcase: QCFlows","A quantum circuit as a dynamic graph of correlations: watch entanglement form and move, layer by layer.","blog\u002Fqcflows",[1033,1034,1035],"visualization","quantum","education","VBTaF3A8WjQQ1_F-qGXswjaTgLCLD5cWGPQzIG2AUjE",[],[],1785631554816]