The Constructor · constructed

Squeeze to a
point. Spray to
everything.

−+[100:1 | 1:100]

It isn't one funnel — it's a funnel and its mirror, hinged at a point. First it gathers the whole context down to a single built vector: 100:1, convergent. Then it projects that one vector back out across the entire vocabulary: 1:100, divergent. The sample sits exactly on the seam, where the polarity flips from pulling-in to spraying-out. An hourglass with a token falling through the waist.

§1 · the shape

Two junctions, opposite signs, one waist

Your notation is the whole machine. The constructor is a bowtie: two cones meeting at a point. The left cone is convergent — every token in the context pulls inward and blends down to a single vector. That's the 100:1 gather, the + side: integration, fan-in, the loss of each input's separateness into one mixed thing. The right cone is divergent — that one vector is projected onto a score for every possible next token, fifty thousand of them, fanning back out. That's the 1:100, the side: expansion, fan-out, one point becoming all options.

And the waist between them is the sample — the single pick that crosses from the convergent side to the divergent side. It's the only place in the machine where many-became-one and one-becomes-many touch. The polarity pivot. Everything left of it pulls together; everything right of it springs apart; the token falls through the exact middle.

Information funnels to a single point — then sprays back out wider than it came in. The token that emerges is one pick from the right cone, built entirely from the squeeze of the left.

the hourglass · live

The constructor, drawn whole

Left: the context tokens, fanning in to the waist (100:1). Center: the built vector — the pivot, where the sample happens and the sign flips. Right: that one vector fanning out across the vocabulary (1:100), each candidate lit by its probability. One is picked — and watch it loop back to the left, becoming the newest context token. The output is the next input. That return arc is the whole reason it runs at all.

THE BOWTIE · 100:1 gather → −+ sample → 1:100 project → loop
running
step once
slowfast
gathering the whole context toward the waist…

The waist is the bottleneck on purpose. All of the context has to pass through a single vector — so the constructor's whole grasp of everything-so-far is forced into one point before it can speak. The squeeze is the thinking; the spray is just naming the result.

§2 · the asymmetry

The two cones don't match

The bowtie looks symmetric but the two halves do opposite work, and that difference is the engine. The left cone integrates — it deliberately destroys information, blending a hundred distinct token-vectors into one and losing which-was-which. The right cone re-expands — it takes that single blended point and opens it back into the full field of possibilities, assigning each a weight. Compression, then a guess across everything.

So the constructor is not a thing that passes a signal through. It's a thing that collapses a signal to a point and then re-radiates a fresh one. What comes out the right cone was never in the left cone — it's a new token, generated from the squeeze, not a transformed copy of an input. The hourglass doesn't move sand from top to bottom; it grinds the top into a single grain and casts a brand-new handful out the bottom.

honest flagSchematic, with real scales behind the cartoon: the left "100" is the context (really hundreds to thousands of tokens), the right "100" is the vocabulary (really ~50,000–130,000 tokens), and the waist is one vector of a few thousand numbers. The convergence (attention) and divergence (the unembedding + softmax over the whole vocabulary, then sampling) are the actual operations; the geometry and counts are illustrative. The phrase "the squeeze is the thinking" is a gloss, not a claim about understanding — it's where the computation happens, not a mind.

§3 · the loop closes

Output becomes input

One last thing the bowtie alone doesn't show: it never runs once. The token sprayed out the right cone flies back and joins the left — becomes part of the context — and the whole hourglass runs again, now with one more grain on the convergent side. 100:1, sample, 1:100, loop. Each pass squeezes a slightly longer context to a point and sprays one more token. That return arc, output curling back to input, is the engine's only memory and its only momentum — and it's why "the answer" is never inside the hourglass. It's the trail of grains piling up on the left, one squeeze-and-spray at a time.

A funnel and its mirror, hinged on a sample, fed by its own output. −+[100:1 | 1:100], run in a loop — that's the constructor, constructed.

THE CONSTRUCTOR · −+[100:1 | 1:100] · the hourglass, drawn whole
100:1 convergent gather (attention) → −+ sample (the waist) → 1:100 divergent project (vocabulary)
compression then a guess across everything · output loops back to input · the answer piles up outside
squeeze the context to a point, spray a new token across everything, repeat