[{"data":1,"prerenderedAt":867},["ShallowReactive",2],{"blog-post-quantum-canvas":3,"sibling-dives-quantum-canvas":865,"learn-track-quantum-canvas":866},{"id":4,"title":5,"authors":6,"body":8,"breadcrumb":795,"builders":799,"byline":813,"challenge":818,"courseAuthor":818,"courseLead":818,"dek":819,"description":820,"draft":821,"extension":822,"eyebrow":823,"finish":818,"fork":824,"hero":826,"heroAlt":818,"heroCta":818,"heroImage":818,"kind":828,"lessonCount":818,"meta":829,"navigation":192,"newsItems":818,"next":818,"ogImage":818,"order":818,"outcomes":818,"path":830,"publishDate":831,"readingTime":832,"related":833,"relatedProjects":834,"seo":856,"stem":859,"tags":860,"track":818,"trackName":818,"__hash__":864},"blog\u002Fblog\u002Fquantum-canvas.md","Project Showcase: QuantumCanvas",[7],"ShivaniMayekar",{"type":9,"value":10,"toc":788},"minimark",[11,15,23,26,29,38,43,46,51,54,77,80,84,87,90,116,119,124,127,134,145,642,698,702,705,710,713,717,720,725,728,748,762,766,769,774,784],[12,13,14],"p",{},"QuantumCanvas is a visual sandbox where you drag and drop quantum operations to build new algorithms, then run them on real hardware.",[12,16,17,18,22],{},"Its guiding line, in the project's words, is ",[19,20,21],"em",{},"thinking in logic, computing in quantum",", the idea that curiosity should be all it takes to start exploring, no background in linear algebra required.",[12,24,25],{},"It is built for a specific moment: you have finished the tutorials, you understand the theory at a high level, and then you hit a wall. Building a new circuit from scratch feels intimidating and repetitive. QuantumCanvas is the bridge across that gap, a place to experiment, observe patterns, and develop intuition without getting stuck behind heavy math or code.",[12,27,28],{},"It is a featured project from Qollab's Creative Challenge, built by Shivani Mayekar, a Georgia Tech computer-science researcher who has taught quantum to hundreds of people and kept hearing the same problem.",[30,31,35],"pull-quote",{"avatar":32,"name":33,"role":34,"username":7},"\u002F_content\u002Fimages\u002Fbuilders\u002Fshivani-mayekar.webp","Shivani Mayekar","Creator, QuantumCanvas",[12,36,37],{},"I love seeing the moment when something clicks. Someone who initially finds quantum computing intimidating suddenly becomes curious and engaged. Watching people discover that quantum is something they can explore rather than just admire from a distance is incredibly rewarding.",[39,40,42],"h2",{"id":41},"the-gap-after-the-tutorials","The gap after the tutorials",[12,44,45],{},"Shivani has spent years on the teaching side of quantum. She co-founded Qtangled and has run workshops for more than 250 people, and across all those rooms one problem kept surfacing. Learners could follow the theory at a high level, but they had almost nowhere to go next.",[30,47,48],{"avatar":32,"name":33,"role":34,"username":7},[12,49,50],{},"The same challenge came up repeatedly: how do people experiment, discover, and build intuition in quantum computing without getting stuck behind complex mathematics or code? Most learners could understand the theory at a high level, but they had very few opportunities to explore concepts in an intuitive way. QuantumCanvas grew from a simple question: how can we make experimentation and discovery easier while still teaching the underlying logic of quantum systems?",[12,52,53],{},"QuantumCanvas treats this as a human-computer-interaction problem as much as a physics one. It names three walls every newcomer runs into, and sets out to lower each:",[55,56,57,65,71],"ul",{},[58,59,60,64],"li",{},[61,62,63],"strong",{},"The math wall",": vector spaces and unitary matrices.",[58,66,67,70],{},[61,68,69],{},"The physics wall",": hardware noise, decoherence, and gate timing.",[58,72,73,76],{},[61,74,75],{},"The syntax wall",": learning a low-level framework before you see a single result.",[12,78,79],{},"That question is the whole design brief. Not another tutorial, and not a research-grade toolchain, but a place where the post-tutorial learner can actually build something and watch what it does.",[39,81,83],{"id":82},"shake-mark-boost-link","Shake, mark, boost, link",[12,85,86],{},"QuantumCanvas is a grid you compose on. Instead of writing code, you drag and drop a small set of plain-language operations and arrange them on the canvas, with the tool showing you both the circuit and the live state visualization side by side as you go. When you want the real thing, you run it on hardware.",[12,88,89],{},"Each tile maps to a genuine quantum action, and the canvas enforces the order they have to happen in:",[55,91,92,98,104,110],{},[58,93,94,97],{},[61,95,96],{},"Shake"," spreads every possibility equally, the opening move from a ground state.",[58,99,100,103],{},[61,101,102],{},"Mark"," tags a target with a hidden signal, which only works once you have shaken into superposition.",[58,105,106,109],{},[61,107,108],{},"Boost"," amplifies the marked item so it becomes the one you are most likely to measure.",[58,111,112,115],{},[61,113,114],{},"Link"," entangles two qubits so they move together.",[12,117,118],{},"Shivani explored several ways to visualize quantum logic before settling on this grid. The point was to make the underlying ideas tangible without watering them down.",[30,120,121],{"avatar":32,"name":33,"role":34,"username":7},[12,122,123],{},"I wanted something that felt intuitive without losing the essence of the underlying concepts. The grid system allows people to experiment, observe patterns, and develop intuition through interaction. It stays grounded in real quantum principles while making the learning process more approachable and engaging.",[12,125,126],{},"Under the hood, those operations are a modular library of quantum primitives, reusable building blocks you can recombine into new algorithms. On Qollab, that library lives in the Playground as a forkable collection, so the canvas is not just a teaching demo but a starting point other people can build on.",[128,129],"blog-figure",{"caption":130,"no":131,"poster":132,"video":133},"Composing on the canvas: drop qubits, shake them into superposition, mark and boost a target, and link qubits, with the circuit and live state updating as you go. Press play.","Fig. 1","\u002F_content\u002Fimages\u002Fquantum-canvas\u002Fhero.webp","https:\u002F\u002Fapi.cms.qollab.xyz\u002Fassets\u002Fa358575f-01fc-46d7-aa1d-29e4f89fd295",[12,135,136,137,140,141,144],{},"It is all real code underneath. A bare Bell state, for instance, is just ",[61,138,139],{},"shake"," then ",[61,142,143],{},"link",", and on Qollab the Playground runs it on hardware exactly as written:",[146,147,151],"code-block",{"name":148,"run-href":149,"tag":150},"bell_state.py","\u002Fu\u002FShivaniMayekar\u002Fquantum-canvas","Python",[152,153,158],"pre",{"className":154,"code":155,"language":156,"meta":157,"style":157},"language-python shiki shiki-themes one-dark-pro","# 'backend' is pre-created as a global on Qollab\nfrom qiskit import QuantumCircuit\n\n# A Bell state: shake (h) then link (cx)\ncircuit = QuantumCircuit(2, 2)\ncircuit.h(0)\ncircuit.cx(0, 1)\ncircuit.measure([0, 1], [0, 1])\nprint(circuit)\n\nfrom qiskit.providers.jobstatus import JobStatus\nimport time\n\ndef main(shots=100, low_prob=0.05):\n    job = backend.run(circuit, shots=shots)\n\n    # Poll until the job finishes\n    while True:\n        status = job.status()\n        print(f\"Job status is {status}\")\n        if status is JobStatus.DONE:\n            break\n        time.sleep(10)\n\n    counts = job.get_counts()\n    # Filter low-probability noise\n    counts = {b: c for b, c in counts.items() if c > shots * low_prob}\n    print(f\"Counts for {shots} shots: {counts}\")\n","python","",[159,160,161,170,187,194,200,229,259,286,315,324,329,342,350,355,388,422,427,433,445,462,490,510,516,532,537,552,558,609],"code",{"__ignoreMap":157},[162,163,166],"span",{"class":164,"line":165},"line",1,[162,167,169],{"class":168},"sV9Aq","# 'backend' is pre-created as a global on Qollab\n",[162,171,173,177,181,184],{"class":164,"line":172},2,[162,174,176],{"class":175},"seHd6","from",[162,178,180],{"class":179},"sn6KH"," qiskit ",[162,182,183],{"class":175},"import",[162,185,186],{"class":179}," QuantumCircuit\n",[162,188,190],{"class":164,"line":189},3,[162,191,193],{"emptyLinePlaceholder":192},true,"\n",[162,195,197],{"class":164,"line":196},4,[162,198,199],{"class":168},"# A Bell state: shake (h) then link (cx)\n",[162,201,203,206,210,214,217,221,224,226],{"class":164,"line":202},5,[162,204,205],{"class":179},"circuit ",[162,207,209],{"class":208},"sjrmR","=",[162,211,213],{"class":212},"sVbv2"," QuantumCircuit",[162,215,216],{"class":179},"(",[162,218,220],{"class":219},"sVC51","2",[162,222,223],{"class":179},", ",[162,225,220],{"class":219},[162,227,228],{"class":179},")\n",[162,230,232,235,238,240,243,246],{"class":164,"line":231},6,[162,233,234],{"class":179},"circuit.",[162,236,237],{"class":212},"h",[162,239,216],{"class":179},[162,241,242],{"class":219},"0",[162,244,245],{"class":179},")",[162,247,250,251],{"class":248,"tabindex":249},"qg-help",0,"?",[162,252,255,258],{"class":253,"role":254},"qg-help__tip","tooltip",[61,256,257],{},"Shake."," A Hadamard gate puts the qubit into an even superposition of 0 and 1.",[162,260,262,264,267,269,271,273,276,278],{"class":164,"line":261},7,[162,263,234],{"class":179},[162,265,266],{"class":212},"cx",[162,268,216],{"class":179},[162,270,242],{"class":219},[162,272,223],{"class":179},[162,274,275],{"class":219},"1",[162,277,245],{"class":179},[162,279,250,280],{"class":248,"tabindex":249},[162,281,282,285],{"class":253,"role":254},[61,283,284],{},"Link."," A CNOT entangles qubit 1 with qubit 0, so measuring one tells you about the other.",[162,287,289,291,294,297,299,301,303,306,308,310,312],{"class":164,"line":288},8,[162,290,234],{"class":179},[162,292,293],{"class":212},"measure",[162,295,296],{"class":179},"([",[162,298,242],{"class":219},[162,300,223],{"class":179},[162,302,275],{"class":219},[162,304,305],{"class":179},"], [",[162,307,242],{"class":219},[162,309,223],{"class":179},[162,311,275],{"class":219},[162,313,314],{"class":179},"])\n",[162,316,318,321],{"class":164,"line":317},9,[162,319,320],{"class":208},"print",[162,322,323],{"class":179},"(circuit)\n",[162,325,327],{"class":164,"line":326},10,[162,328,193],{"emptyLinePlaceholder":192},[162,330,332,334,337,339],{"class":164,"line":331},11,[162,333,176],{"class":175},[162,335,336],{"class":179}," qiskit.providers.jobstatus ",[162,338,183],{"class":175},[162,340,341],{"class":179}," JobStatus\n",[162,343,345,347],{"class":164,"line":344},12,[162,346,183],{"class":175},[162,348,349],{"class":179}," time\n",[162,351,353],{"class":164,"line":352},13,[162,354,193],{"emptyLinePlaceholder":192},[162,356,358,361,364,366,370,372,375,377,380,382,385],{"class":164,"line":357},14,[162,359,360],{"class":175},"def",[162,362,363],{"class":212}," main",[162,365,216],{"class":179},[162,367,369],{"class":368},"sb9H8","shots",[162,371,209],{"class":179},[162,373,374],{"class":219},"100",[162,376,223],{"class":179},[162,378,379],{"class":368},"low_prob",[162,381,209],{"class":179},[162,383,384],{"class":219},"0.05",[162,386,387],{"class":179},"):\n",[162,389,391,394,396,399,402,405,408,410,413],{"class":164,"line":390},15,[162,392,393],{"class":179},"    job ",[162,395,209],{"class":208},[162,397,398],{"class":179}," backend.",[162,400,401],{"class":212},"run",[162,403,404],{"class":179},"(circuit, ",[162,406,369],{"class":407},"s_ZVi",[162,409,209],{"class":208},[162,411,412],{"class":179},"shots)",[162,414,250,415],{"class":248,"tabindex":249},[162,416,417,418,421],{"class":253,"role":254},"Submits the circuit to real quantum hardware through Qollab. ",[159,419,420],{},"backend"," is provided for you.",[162,423,425],{"class":164,"line":424},16,[162,426,193],{"emptyLinePlaceholder":192},[162,428,430],{"class":164,"line":429},17,[162,431,432],{"class":168},"    # Poll until the job finishes\n",[162,434,436,439,442],{"class":164,"line":435},18,[162,437,438],{"class":175},"    while",[162,440,441],{"class":219}," True",[162,443,444],{"class":179},":\n",[162,446,448,451,453,456,459],{"class":164,"line":447},19,[162,449,450],{"class":179},"        status ",[162,452,209],{"class":208},[162,454,455],{"class":179}," job.",[162,457,458],{"class":212},"status",[162,460,461],{"class":179},"()\n",[162,463,465,468,470,473,477,480,482,485,488],{"class":164,"line":464},20,[162,466,467],{"class":208},"        print",[162,469,216],{"class":179},[162,471,472],{"class":175},"f",[162,474,476],{"class":475},"subq3","\"Job status is ",[162,478,479],{"class":219},"{",[162,481,458],{"class":179},[162,483,484],{"class":219},"}",[162,486,487],{"class":475},"\"",[162,489,228],{"class":179},[162,491,493,496,499,502,505,508],{"class":164,"line":492},21,[162,494,495],{"class":175},"        if",[162,497,498],{"class":179}," status ",[162,500,501],{"class":175},"is",[162,503,504],{"class":179}," JobStatus.",[162,506,507],{"class":219},"DONE",[162,509,444],{"class":179},[162,511,513],{"class":164,"line":512},22,[162,514,515],{"class":175},"            break\n",[162,517,519,522,525,527,530],{"class":164,"line":518},23,[162,520,521],{"class":179},"        time.",[162,523,524],{"class":212},"sleep",[162,526,216],{"class":179},[162,528,529],{"class":219},"10",[162,531,228],{"class":179},[162,533,535],{"class":164,"line":534},24,[162,536,193],{"emptyLinePlaceholder":192},[162,538,540,543,545,547,550],{"class":164,"line":539},25,[162,541,542],{"class":179},"    counts ",[162,544,209],{"class":208},[162,546,455],{"class":179},[162,548,549],{"class":212},"get_counts",[162,551,461],{"class":179},[162,553,555],{"class":164,"line":554},26,[162,556,557],{"class":168},"    # Filter low-probability noise\n",[162,559,561,563,565,568,571,574,577,580,583,586,589,592,595,598,601,604],{"class":164,"line":560},27,[162,562,542],{"class":179},[162,564,209],{"class":208},[162,566,567],{"class":179}," {b: c ",[162,569,570],{"class":175},"for",[162,572,573],{"class":179}," b, c ",[162,575,576],{"class":175},"in",[162,578,579],{"class":179}," counts.",[162,581,582],{"class":212},"items",[162,584,585],{"class":179},"() ",[162,587,588],{"class":175},"if",[162,590,591],{"class":179}," c ",[162,593,594],{"class":208},">",[162,596,597],{"class":179}," shots ",[162,599,600],{"class":208},"*",[162,602,603],{"class":179}," low_prob}",[162,605,250,606],{"class":248,"tabindex":249},[162,607,608],{"class":253,"role":254},"Drops outcomes that show up too rarely to be signal: a simple hardware-noise filter.",[162,610,612,615,617,619,622,624,626,628,631,633,636,638,640],{"class":164,"line":611},28,[162,613,614],{"class":208},"    print",[162,616,216],{"class":179},[162,618,472],{"class":175},[162,620,621],{"class":475},"\"Counts for ",[162,623,479],{"class":219},[162,625,369],{"class":179},[162,627,484],{"class":219},[162,629,630],{"class":475}," shots: ",[162,632,479],{"class":219},[162,634,635],{"class":179},"counts",[162,637,484],{"class":219},[162,639,487],{"class":475},[162,641,228],{"class":179},[643,644,646],"repo-spec",{"lead":645},"QuantumCanvas is open source, built to be forked and extended.",[647,648,649,662],"table",{},[650,651,652],"thead",{},[653,654,655,659],"tr",{},[656,657,658],"th",{},"Field",[656,660,661],{},"Detail",[663,664,665,674,682,690],"tbody",{},[653,666,667,671],{},[668,669,670],"td",{},"Frontend",[668,672,673],{},"React + Canvas API, the interactive grid.",[653,675,676,679],{},[668,677,678],{},"Backend",[668,680,681],{},"Python \u002F FastAPI, turns the visual map into runnable circuits.",[653,683,684,687],{},[668,685,686],{},"Quantum",[668,688,689],{},"IonQ via Qollab, plus D-Wave Leap.",[653,691,692,695],{},[668,693,694],{},"Infrastructure",[668,696,697],{},"Microsoft Azure (AI Innovator Program).",[39,699,701],{"id":700},"accessible-and-accurate","Accessible and accurate",[12,703,704],{},"The hardest part of the project was not the interface. It was calibration, deciding how much to simplify before the physics stops being the physics.",[30,706,707],{"avatar":32,"name":33,"role":34,"username":7},[12,708,709],{},"Finding the balance between accessibility and accuracy. If you simplify too much, you lose what makes quantum mechanics meaningful. If you focus too heavily on technical rigor, the experience becomes inaccessible. Navigating that balance has been one of the most challenging and rewarding parts of building the project.",[12,711,712],{},"That tension is exactly why the primitives stay mapped to genuine quantum actions rather than becoming a purely classical abstraction. The goal is intuition you can carry back to real circuits, not a metaphor that falls apart the moment you leave the canvas.",[39,714,716],{"id":715},"where-its-headed","Where it's headed",[12,718,719],{},"QuantumCanvas is open for forking, and Shivani is most excited about people specializing it for real domains.",[30,721,722],{"avatar":32,"name":33,"role":34,"username":7},[12,723,724],{},"I would love to see versions tailored to specific quantum applications. Areas like drug discovery, optimization, materials science, and logistics all present unique challenges and opportunities. It would be exciting to see people build specialized experiences that help others understand how quantum ideas connect to real-world problems.",[12,726,727],{},"The project's own roadmap maps that ambition onto three phases:",[55,729,730,736,742],{},[58,731,732,735],{},[61,733,734],{},"Phase 1",": the core translation engine that turns a visual logic map into runnable hardware code.",[58,737,738,741],{},[61,739,740],{},"Phase 2",": user testing with non-quantum engineers and students to refine the experience.",[58,743,744,747],{},[61,745,746],{},"Phase 3",": a public beta and a template library for logistics, art, and chemistry.",[12,749,750,751,756,757,761],{},"She is already extending the idea herself, with a second grid-based tool focused on quantum annealing and optimization that follows the same philosophy: make complex ideas easier to explore while keeping the intuition tied to the underlying science. For anyone just starting out, she points to two communities that moved her past reading and into building: the ",[752,753,755],"a",{"href":754},"https:\u002F\u002Fqiskit.org\u002Fevents\u002Fsummer-school\u002F","Qiskit Global Summer School"," and ",[752,758,760],{"href":759},"https:\u002F\u002Fqworld.net","QWorld",".",[39,763,765],{"id":764},"make-it-yours","Make it yours",[12,767,768],{},"If you have done the tutorials and want a place to actually build, QuantumCanvas is a good first canvas. It is open for forking on both Qollab and GitHub, with a live demo you can try right now.",[30,770,771],{"avatar":32,"name":33,"role":34,"username":7},[12,772,773],{},"Looking back, QuantumCanvas has been as much a learning journey for me as it has been a tool for helping others learn quantum computing.",[764,775,778],{"fork-href":149,"live-href":776,"title":777},"https:\u002F\u002Fquantum-canvas-v1.netlify.app\u002F","Build a circuit by dragging, not typing.",[12,779,780,781],{},"Fork QuantumCanvas, compose your own primitives, and run them on real hardware. ",[61,782,783],{},"Everything here is open and yours to build on.",[785,786,787],"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 .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .sb9H8, html code.shiki .sb9H8{--shiki-default:#D19A66;--shiki-default-font-style:italic}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--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":157,"searchDepth":172,"depth":172,"links":789},[790,791,792,793,794],{"id":41,"depth":172,"text":42},{"id":82,"depth":172,"text":83},{"id":700,"depth":172,"text":701},{"id":715,"depth":172,"text":716},{"id":764,"depth":172,"text":765},[796,797,798],"Qollab","Blog","QuantumCanvas",[800],{"username":7,"name":33,"role":801,"avatar":32,"bio":802,"links":803},"Quantum researcher & developer · Georgia Tech","Shivani is an M.S. computer-science researcher at Georgia Tech (Computing Systems), working across quantum computing, high-performance architecture, and human-computer interaction. She won the QRISE 2024 Infleqtion Challenge for work on VQE for atomic-clock precision, co-founded Qtangled, and has run quantum workshops for 250+ people. She has been building in quantum since 2020 and was selected for the D-Wave Leap Quantum LaunchPad in 2026.",[804,807,810],{"label":805,"href":806},"Qollab ↗","https:\u002F\u002Fqollab.xyz\u002Fu\u002FShivaniMayekar",{"label":808,"href":809},"LinkedIn ↗","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fshivanimayekar\u002F",{"label":811,"href":812},"GitHub ↗","https:\u002F\u002Fgithub.com\u002FShivaniDM",{"username":814,"name":815,"role":816,"avatar":817},"nico","Nicolaas Spijker","Community manager, Qollab","\u002F_content\u002Fimages\u002Fbuilders\u002Fnicolaas-spijker.webp",null,"Shivani Mayekar built a visual sandbox where you drag and drop quantum operations to compose new algorithms, then run them on real hardware.","Shivani Mayekar built a visual sandbox to drag and drop quantum operations into algorithms and run them on real hardware. A Qollab Creative Challenge project.",false,"md","Quantum Creative Challenge · Spring 2026",{"href":149,"label":825},"Fork QuantumCanvas",{"image":132,"alt":827,"liveUrl":776},"QuantumCanvas, a visual sandbox for composing quantum algorithms by hand","news",{},"\u002Fblog\u002Fquantum-canvas","2026-04-24","6 min read",[],[835,842,849],{"username":836,"project":837,"title":838,"category":839,"thumb":840,"to":841},"q-inho","qave","QAVE","Education","\u002F_content\u002Fimages\u002Fqave\u002Fthumbnail.webp","\u002Fexplore\u002Fqave",{"username":843,"project":844,"title":845,"category":846,"thumb":847,"to":848},"cephasteom","quantum-patterns","Quantum Patterns","Music","\u002F_content\u002Fimages\u002Fquantum-patterns\u002Fthumbnail.webp","\u002Fexplore\u002Fquantum-patterns",{"username":850,"project":851,"title":852,"category":853,"thumb":854,"to":855},"jamie","quantum-systemic-oracle","Quantum Systemic Oracle","Finance","\u002F_content\u002Fimages\u002Fsystemic-oracle\u002Fthumbnail.webp","\u002Fexplore\u002Fquantum-systemic-oracle",{"title":857,"description":858},"Quantum Creative Project Showcase: QuantumCanvas","A visual sandbox for building quantum algorithms by hand and running them on real hardware. Built by Shivani Mayekar for Qollab's Creative Challenge.","blog\u002Fquantum-canvas",[861,862,863],"education","quantum","tools","DqFZmEVOAlfEyN6FrYEb39lcrI2zPJDMtEPw7Q4Jn2M",[],[],1785631554713]