I generated 100 artworks from real quantum measurements: what happened

Every generative art project you've seen uses pseudorandom numbers. Algorithms that look random but aren't — deterministic sequences that a sufficiently motivated person could predict and reconstruct.

I wanted something different. I wanted art generated from real quantum measurements: outcomes that are fundamentally unpredictable, not just practically unpredictable. Outcomes that did not exist until the moment a qubit was measured.

So I connected to two real quantum computers — Origin Quantum's WK_C180 (180 qubits) and IBM Quantum's ibm_fez (156 qubits) — and used their measurement outputs to make 100 unique pieces. No simulators, no classical fallbacks. Every pixel trace traces back to an actual quantum measurement that didn't exist until the circuit ran. This is the story of that run.

Why quantum randomness matters for art

When you call Math.random() in JavaScript, you get a number from a deterministic algorithm. Same internal state, same output, always. Pseudorandomness — plenty for most things, but fundamentally predictable.

Quantum randomness operates at a different level. Put a qubit in superposition with a Hadamard gate and measure it, and the 0-or-1 outcome is governed by the Born rule of quantum mechanics. No hidden variable decides it, no algorithm produces it. It simply happens.

For art, that means each piece is anchored in an event that is literally non-reproducible. You can't rewind the universe and get the same measurement twice. The pieces inherit that.

The pipeline, from qubit to pixel

Here's the complete chain, and each step ran the same way for every piece:

  1. Quantum circuit: a 12-qubit circuit applies Hadamard gates (superposition) and CNOT gates (entanglement) to create a maximum-entropy state.
  2. Measurement: the circuit runs on real hardware — 8,000 shots on Origin Quantum, 4,096 on IBM Quantum. The measurement distribution is the raw data.
  3. Quantum seed: the distribution is hashed through SHA-256 into a 256-bit hex seed, e.g. 2cf1b4034f223f5c3e6a83019656e65597828ae375db07b2ef358ac523dde706.
  4. Deterministic RNG: the seed initializes a custom QuantumRNG class (xorshift128+ style, expanded from SHA-512) that produces a reproducible stream of values.
  5. SVG generation: the RNG stream drives every visual decision — circles, rectangles, ellipses, bezier curves, polygons, gradients, and color harmonies (complementary, analogous, triadic, split-complementary, tetradic).
  6. PNG conversion: SVGs are rasterized to PNG.
  7. IPFS upload: art and metadata are pinned to IPFS via Pinata.
  8. Polygon mint: each NFT mints on Polygon mainnet as an ERC-721 token with 5% EIP-2981 royalties.

The neat part: once you have the quantum seed, the art is fully deterministic. Same seed, same image, always — you can regenerate any piece from its seed. But the seed itself came from quantum physics, and it can never be reproduced.

What the art looked like

Three pieces from the collection, each tracing back to a unique measurement:

Quantum Genesis #1 — Origin Quantum WK_C180

Quantum Genesis #1 — Origin Quantum WK_C180

Quantum Genesis #25 — IBM Quantum ibm_fez

Quantum Genesis #25 — IBM Quantum ibm_fez

Quantum Genesis #75 — IBM Quantum ibm_torino

Quantum Genesis #75 — IBM Quantum ibm_torino

Each NFT carries on-chain metadata: Entropy Level, Entropy Score (0-100), Qubit Configuration (GHZ-3, Steane-7, and more), Quantum Phase (Interfering, Superposition, etc.), Color Harmony, and Complexity Score.

The Origin Quantum chapter (NFTs #1-18)

The project began at Origin Quantum, a Chinese quantum computing company. Their WK_C180 chip — 180 superconducting qubits — is accessed through the pyqpanda3 SDK via their QCloudService API.

Each circuit ran 8,000 shots. The first 18 NFTs came out of this. Getting access, debugging the SDK, and reverse-engineering the correct measurement syntax (measure([0,1], [0,1]) with explicit classical bits) was an entire adventure of its own.

Those 18 pieces carry a provenance I couldn't have engineered: they're among the very few NFTs ever minted from a Chinese quantum processor.

The IBM Quantum chapter (NFTs #19-100)

For the remaining 82, I moved to IBM Quantum. Using Qiskit Runtime's SamplerV2, circuits ran on ibm_fez (156 qubits) and ibm_torino (133 qubits), 4,096 shots each.

IBM's infrastructure was steadier for batch work. Each NFT took roughly 19 seconds on ibm_fez. Transpilation used generate_preset_pass_manager at optimization level 1 to map the 12-qubit circuit onto each processor's physical topology.

The whole batch — generate, convert to PNG, upload to IPFS, mint — completed with zero classical fallback. Every one of those 82 seeds is verifiably quantum.

100 pieces, zero classical fallback

What the finished collection amounts to:

  • 100 unique NFTs on Polygon mainnet (ERC-721, contract 0x488f...1a27)
  • Two quantum processors: Origin Quantum WK_C180 + IBM Quantum ibm_fez/ibm_torino
  • All art on IPFS: immutable, decentralized storage via Pinata
  • 5% royalties via EIP-2981
  • Zero classical fallback — every single seed comes from real quantum hardware

I wrote the full technical breakdown over on Dev.to: I Used a Real Quantum Computer to Generate Art, and the Randomness Is Nothing Like What Algorithms Can Do, covering the smart contract, the IPFS pipeline, and the complete Python.

Would I do it again? Yes, but I'd start on IBM and treat Origin as the second source from day one, instead of discovering that lesson mid-collection. If you try this yourself, expect the first seed generation to feel like magic, the second to feel routine, and the queue wait times to feel like a personal attack. The collection is on-chain at Quantum Genesis; next up I'm breaking down the whole pipeline layer by layer, from measurement to mint.

Comments

Popular posts from this blog

Getting Your Collection Visible on OpenSea, Step by Step

Polygon versus Ethereum for an NFT contract, from the gas bills up

Quantum Error Correction, or Why Your Qubits Forget What They Were Doing