Typewriter vs darkroom — watch both write the same sentence
Same target sentence, two philosophies. Left: the autoregressive typewriter — one committed token at a time, each conditioned on everything before it. Right: the diffusion darkroom — every position starts as a masked blur, and each refinement step unmasks/sharpens tokens anywhere in the sentence, in parallel. Run them side by side and watch the different shapes of "in progress."
The unmasking order on the right follows real text-diffusion behavior: high-confidence tokens (common words, constrained slots) resolve first, ambiguous ones last. Simulated dynamics; the paradigm contrast is the point.
Denoise it yourself — you are the model now
Feel the job from the inside. A sentence has been corrupted: some words masked, some swapped for wrong ones. Each round, click the position you're most confident about and pick its word — exactly the greedy-confidence policy real text diffusers use. Your accuracy is scored against the original. Then press "worst-first" to see why order matters: resolving the ambiguous slots first forces guesses without context.
The "confidence" per slot is computed from real bigram context around it (how many candidate words fit its neighbors) — resolving a slot genuinely updates its neighbors' confidences, which is the whole engine of iterative denoising.
The speed race — 1,000 little steps vs 8 big ones
The commercial argument. Autoregression needs one forward pass per token — 1,000 tokens, 1,000 sequential passes, each waiting for the last. Diffusion needs one pass per refinement round, updating all 1,000 positions each time — maybe 4 to 16 rounds total. Set the sequence length and the diffusion round count; the race runs with honest arithmetic. Then push rounds down to 2 and watch quality pay for the speed.
Sequential-pass counts are exact; the quality estimate follows the published rounds-vs-quality tradeoff shape (steep loss below ~4 rounds). Real deployments also exploit that each diffusion pass batches perfectly on GPUs.
Editing superpowers — infill the middle, hold the ends
Ask a typewriter to fill a hole in the middle of a paragraph and it sweats — it only knows how to continue leftward context. For diffusion this isn't even a special case: freeze the tokens you like, mask the ones you don't, denoise. Try it: click words in the sentence below to mask them (any pattern — middle, scattered, alternating), then regenerate only the masked slots under the constraint of everything you kept.
The demo regenerates masked slots from a small phrase bank scored against both neighbors — a toy of the real property: diffusion conditions on arbitrary token subsets natively, no special infill training needed.
Where it cracks — commitment has its virtues
Now the honest ledger. Diffusion's weakness is the mirror of its strength: with no arrow of time, it struggles with strict sequential dependency — arithmetic carried digit by digit, code where line 10 must reference a variable named on line 2, chains of reasoning. Run the three benchmark tasks below on both paradigms (measured over 200 instances each) and watch the winner flip with the task's structure.
Task simulations encode the structural difference honestly: sequential tasks make later slots depend on earlier RESOLVED values (which parallel denoising can violate); parallel tasks don't. 200 instances per click.