portafilter.svg · 78 lines
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="1100" viewBox="0 0 900 1100">
<defs>
<linearGradient id="metal" x1="0" x2="1">
<stop offset="0" stop-color="#9aa3ad"/><stop offset="0.5" stop-color="#e4e8ec"/><stop offset="1" stop-color="#7d8792"/>
</linearGradient>
<linearGradient id="wood" x1="0" x2="1">
<stop offset="0" stop-color="#6b3e22"/><stop offset="0.5" stop-color="#9a5f35"/><stop offset="1" stop-color="#5a3219"/>
</linearGradient>
</defs>
<rect width="900" height="1100" fill="#ffffff"/>
<text x="450" y="45" font-family="Helvetica,Arial,sans-serif" font-size="26" font-weight="bold" text-anchor="middle" fill="#222">Double-Spout Espresso Portafilter — Exploded Assembly</text>
<text x="450" y="72" font-family="Helvetica,Arial,sans-serif" font-size="14" text-anchor="middle" fill="#555">Exploded along the central axis; dashed line shows alignment</text>
<!-- alignment axis -->
<line x1="450" y1="95" x2="450" y2="860" stroke="#999" stroke-width="1.5" stroke-dasharray="10,6"/>
<!-- 1. Handle -->
<rect x="300" y="110" width="300" height="46" rx="23" fill="url(#wood)" stroke="#2e1a0c" stroke-width="2"/>
<line x1="390" y1="112" x2="390" y2="154" stroke="#3b2110" stroke-width="2" opacity="0.5"/>
<line x1="430" y1="112" x2="430" y2="154" stroke="#3b2110" stroke-width="2" opacity="0.5"/>
<rect x="640" y="118" width="16" height="30" rx="3" fill="url(#metal)" stroke="#555"/>
<!-- 2. Handle screws (two, pulled apart from handle) -->
<g transform="translate(380,205)">
<rect x="-9" y="-12" width="18" height="10" fill="url(#metal)" stroke="#555"/>
<rect x="-4" y="-2" width="8" height="22" fill="url(#metal)" stroke="#555"/>
</g>
<g transform="translate(520,205)">
<rect x="-9" y="-12" width="18" height="10" fill="url(#metal)" stroke="#555"/>
<rect x="-4" y="-2" width="8" height="22" fill="url(#metal)" stroke="#555"/>
</g>
<!-- 3. Body with collar, cup, rim, and double spouts -->
<ellipse cx="450" cy="242" rx="55" ry="9" fill="#dfe4e9" stroke="#555" stroke-width="1.5"/>
<rect x="395" y="242" width="110" height="28" fill="url(#metal)" stroke="#555" stroke-width="1.5"/>
<path d="M 395 270 L 395 360 Q 395 372 410 374 L 490 374 Q 505 372 505 360 L 505 270 Z" fill="url(#metal)" stroke="#555" stroke-width="1.5"/>
<rect x="390" y="356" width="120" height="9" rx="3" fill="#b8c0c8" stroke="#555"/>
<!-- double spouts -->
<path d="M 396 362 L 350 372 Q 340 376 344 384 L 362 390 L 396 380 Z" fill="url(#metal)" stroke="#555" stroke-width="1.5"/>
<path d="M 504 362 L 550 372 Q 560 376 556 384 L 538 390 L 504 380 Z" fill="url(#metal)" stroke="#555" stroke-width="1.5"/>
<ellipse cx="352" cy="384" rx="5" ry="2.5" fill="#333"/>
<ellipse cx="548" cy="384" rx="5" ry="2.5" fill="#333"/>
<!-- 4. Removable basket -->
<ellipse cx="450" cy="436" rx="66" ry="9" fill="#c9d0d7" stroke="#555" stroke-width="1.5"/>
<path d="M 384 436 L 393 510 Q 395 518 404 518 L 496 518 Q 505 518 507 510 L 516 436 Z" fill="#d7dde3" stroke="#555" stroke-width="1.5"/>
<ellipse cx="450" cy="518" rx="46" ry="5" fill="#aab3bc" stroke="#555"/>
<g fill="#4a5058">
<circle cx="410" cy="455" r="2"/><circle cx="430" cy="455" r="2"/><circle cx="450" cy="455" r="2"/><circle cx="470" cy="455" r="2"/><circle cx="490" cy="455" r="2"/>
<circle cx="420" cy="477" r="2"/><circle cx="440" cy="477" r="2"/><circle cx="460" cy="477" r="2"/><circle cx="480" cy="477" r="2"/>
<circle cx="410" cy="499" r="2"/><circle cx="430" cy="499" r="2"/><circle cx="450" cy="499" r="2"/><circle cx="470" cy="499" r="2"/><circle cx="490" cy="499" r="2"/>
</g>
<!-- 5. Retaining ring -->
<ellipse cx="450" cy="580" rx="58" ry="7" fill="url(#metal)" stroke="#555" stroke-width="1.5"/>
<path d="M 392 580 L 392 594 Q 392 601 450 601 Q 508 601 508 594 L 508 580 Z" fill="url(#metal)" stroke="#555" stroke-width="1.5"/>
<!-- Callouts: all on the right, horizontal leaders -->
<g font-family="Helvetica,Arial,sans-serif" font-size="14" fill="#222" stroke="#333" stroke-width="1">
<line x1="600" y1="133" x2="650" y2="133"/>
<text x="665" y="138" stroke="none">1 Handle (wood, with metal end cap)</text>
<line x1="530" y1="205" x2="650" y2="205"/>
<text x="665" y="210" stroke="none">2 Handle screws (×2)</text>
<line x1="505" y1="310" x2="650" y2="310"/>
<text x="665" y="315" stroke="none">3 Portafilter body (collar, cup, rim)</text>
<line x1="556" y1="384" x2="650" y2="384"/>
<text x="665" y="389" stroke="none">3a Double spouts (two pouring lips)</text>
<line x1="516" y1="470" x2="650" y2="470"/>
<text x="665" y="475" stroke="none">4 Removable filter basket (perforated)</text>
<line x1="508" y1="580" x2="650" y2="580"/>
<text x="665" y="585" stroke="none">5 Basket retaining ring</text>
</g>
<!-- Footer notes -->
<text x="450" y="1000" font-family="Helvetica,Arial,sans-serif" font-size="13" text-anchor="middle" fill="#555">Assembly order: insert basket into body cup, seat retaining ring, attach handle with screws to collar.</text>
<text x="450" y="1020" font-family="Helvetica,Arial,sans-serif" font-size="13" text-anchor="middle" fill="#555">Double spouts send espresso into two cups; basket is removable for cleaning and dosing.</text>
</svg>round 1 of 2

Exploded portafilter: Claude Haiku 5.5
modelanthropic/claude-haiku-5.5taskexploded-portafilter@v1, checks c1, harness h1date2026-10-08rounds2 of 8 allowed, 12 minutes on the clockcost$0.0071thinkingmediumtokens47,752 in, 10,794 out, of which 2,478 reasoningtime55 sfailedAll five parts: incomplete, component missing, major, its note said nothing was wrong · Stack order: false, relation transposed, critical, 4 pairs out of order, its note said nothing was wrong
All five partsdecided by looking · Pass if every listed part is drawn as a separate shape and each has a label naming it. A part only named in a label or a comment, with nothing drawn, fails it. The label must say what the part is, in any words: a name that only says where it sits ("top plate") or what it is made of, or a mention in another part's caption, does not count.fail
Stack orderdecided by a number, from the filefail
Parts fitdecided by looking · Pass if each listed pair of mating parts looks as if it would go together as stated: the right angle, nested inside, or sitting on top. One pair that plainly could not fails it.n/d
Two assembly axesdecided by looking · Pass if one line runs through the middle of every part on each listed axis, and every leader line leaves from the same side. One part pushed off its axis fails it.pass
Labels matchdecided by looking · Pass if following each leader line from its label ends on the part that label names. One label pointing at the wrong part, or at nothing, fails it.pass
There is no post about this one, since only some results need one, so the picture, the source and the scoring are here instead.
run 2 · 1r · $0.0049
run 3 · 2r · $0.0048same prompt, other modelsall 22 runs on Exploded portafilter →
Draw an exploded assembly diagram of an espresso machine portafilter, as an SVG. Use a double-spout portafilter with a removable basket rather than a bottomless one.Frozen at v1. This model got this and nothing else.
On a vertical axis, top to bottom: filter basket, retaining spring, portafilter body, double spout. The handle is on a horizontal axis off the body, so this is the one member with two axes. Checked against parts sellers, since no maker's exploded diagram could be fetched: Espresso Parts and Zirkus Coffee on the spring that clips into a groove inside the body and grips the basket rim, Espresso Parts on the spout that screws onto the bottom of the body, and Nepo Coffee on handles that screw onto a stud on its side. How it is scored, and this run's files on GitHub.