portafilter.svg · 147 lines
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 650" width="1000" height="650">
<defs>
<linearGradient id="metal" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#f8fafc"/>
<stop offset="0.5" stop-color="#c3cad2"/>
<stop offset="1" stop-color="#eef1f4"/>
</linearGradient>
<linearGradient id="metalDark" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#d7dde3"/>
<stop offset="0.5" stop-color="#9aa3ad"/>
<stop offset="1" stop-color="#c9d0d7"/>
</linearGradient>
<linearGradient id="metalBasket" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#f1f4f7"/>
<stop offset="0.55" stop-color="#b9c1ca"/>
<stop offset="1" stop-color="#e6eaee"/>
</linearGradient>
<linearGradient id="wood" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#b07a45"/>
<stop offset="1" stop-color="#8a5a2b"/>
</linearGradient>
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
<path d="M0,0 L10,5 L0,10 z" fill="#475569"/>
</marker>
</defs>
<!-- background -->
<rect x="0" y="0" width="1000" height="650" fill="#ffffff"/>
<rect x="10" y="10" width="980" height="630" rx="12" fill="none" stroke="#e5e7eb" stroke-width="1.5"/>
<!-- title -->
<text x="500" y="36" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="26" font-weight="bold" fill="#111827">Exploded Assembly Diagram</text>
<text x="500" y="59" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="15" fill="#4b5563">Double-spout portafilter with removable basket</text>
<!-- assembly axis (dashed centerline) -->
<line x1="500" y1="70" x2="500" y2="600" stroke="#94a3b8" stroke-width="1.5" stroke-dasharray="7 7"/>
<!-- ============ PART 1: HANDLE ============ -->
<g stroke-linejoin="round">
<rect x="487" y="128" width="26" height="18" fill="#aeb6bf" stroke="#6b7280" stroke-width="1.5"/>
<line x1="487" y1="134" x2="513" y2="134" stroke="#6b7280" stroke-width="1"/>
<line x1="487" y1="140" x2="513" y2="140" stroke="#6b7280" stroke-width="1"/>
<rect x="470" y="106" width="60" height="22" rx="4" fill="url(#metal)" stroke="#6b7280" stroke-width="1.5"/>
<rect x="375" y="70" width="250" height="36" rx="18" fill="url(#wood)" stroke="#5f3c17" stroke-width="1.5"/>
<rect x="388" y="76" width="224" height="9" rx="4.5" fill="#ffffff" opacity="0.25"/>
</g>
<g>
<circle cx="345" cy="88" r="14" fill="#111827"/>
<text x="345" y="92.5" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="13" font-weight="bold" fill="#ffffff">1</text>
</g>
<!-- ============ PART 2: PORTAFILTER BODY ============ -->
<g stroke-linejoin="round">
<!-- bayonet lugs -->
<rect x="318" y="232" width="44" height="26" rx="6" fill="url(#metalDark)" stroke="#6b7280" stroke-width="1.5"/>
<rect x="638" y="232" width="44" height="26" rx="6" fill="url(#metalDark)" stroke="#6b7280" stroke-width="1.5"/>
<!-- body -->
<path d="M350,206 L395,294 Q500,314 605,294 L650,206 Z" fill="url(#metal)" stroke="#6b7280" stroke-width="1.5"/>
<!-- bottom opening (basket seat) -->
<ellipse cx="500" cy="298" rx="104" ry="12" fill="#8f97a1" stroke="#6b7280" stroke-width="1.5"/>
<ellipse cx="500" cy="298" rx="86" ry="9" fill="#6f7780"/>
<!-- top rim -->
<ellipse cx="500" cy="206" rx="150" ry="20" fill="#e8ecf0" stroke="#6b7280" stroke-width="1.5"/>
<ellipse cx="500" cy="206" rx="120" ry="13" fill="#9aa3ad"/>
<ellipse cx="500" cy="206" rx="100" ry="10" fill="#7d8590"/>
</g>
<g>
<circle cx="290" cy="245" r="14" fill="#111827"/>
<text x="290" y="249.5" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="13" font-weight="bold" fill="#ffffff">2</text>
</g>
<!-- ============ PART 3: REMOVABLE BASKET ============ -->
<g stroke-linejoin="round">
<!-- tapered wall -->
<path d="M404,356 L446,426 Q500,442 554,426 L596,356 Z" fill="url(#metalBasket)" stroke="#6b7280" stroke-width="1.5"/>
<!-- perforations on lower wall -->
<g fill="#5b6470">
<circle cx="446" cy="402" r="2"/><circle cx="464" cy="402" r="2"/><circle cx="482" cy="402" r="2"/><circle cx="500" cy="402" r="2"/><circle cx="518" cy="402" r="2"/><circle cx="536" cy="402" r="2"/><circle cx="554" cy="402" r="2"/>
<circle cx="450" cy="415" r="2"/><circle cx="468" cy="415" r="2"/><circle cx="486" cy="415" r="2"/><circle cx="504" cy="415" r="2"/><circle cx="522" cy="415" r="2"/><circle cx="540" cy="415" r="2"/>
</g>
<!-- bottom with perforations -->
<ellipse cx="500" cy="430" rx="54" ry="9" fill="#cfd5db" stroke="#6b7280" stroke-width="1.5"/>
<g fill="#5b6470">
<circle cx="458" cy="427" r="2.2"/><circle cx="473" cy="427" r="2.2"/><circle cx="488" cy="427" r="2.2"/><circle cx="503" cy="427" r="2.2"/><circle cx="518" cy="427" r="2.2"/><circle cx="533" cy="427" r="2.2"/><circle cx="548" cy="427" r="2.2"/>
<circle cx="455" cy="430" r="2.2"/><circle cx="470" cy="430" r="2.2"/><circle cx="485" cy="430" r="2.2"/><circle cx="500" cy="430" r="2.2"/><circle cx="515" cy="430" r="2.2"/><circle cx="530" cy="430" r="2.2"/><circle cx="545" cy="430" r="2.2"/>
<circle cx="458" cy="433" r="2.2"/><circle cx="473" cy="433" r="2.2"/><circle cx="488" cy="433" r="2.2"/><circle cx="503" cy="433" r="2.2"/><circle cx="518" cy="433" r="2.2"/><circle cx="533" cy="433" r="2.2"/><circle cx="548" cy="433" r="2.2"/>
</g>
<!-- rim -->
<ellipse cx="500" cy="356" rx="96" ry="12" fill="#e8ecf0" stroke="#6b7280" stroke-width="1.5"/>
<ellipse cx="500" cy="356" rx="78" ry="7.5" fill="#a9b1ba"/>
</g>
<g>
<circle cx="392" cy="386" r="14" fill="#111827"/>
<text x="392" y="390.5" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="13" font-weight="bold" fill="#ffffff">3</text>
</g>
<!-- ============ PART 4: DOUBLE-SPOUT OUTLET ============ -->
<g stroke-linejoin="round">
<rect x="460" y="504" width="80" height="14" fill="url(#metalDark)" stroke="#6b7280" stroke-width="1.5"/>
<!-- left spout -->
<path d="M462,518 L490,518 L483,560 Q476,566 469,560 Z" fill="url(#metalDark)" stroke="#6b7280" stroke-width="1.5"/>
<!-- right spout -->
<path d="M510,518 L538,518 L531,560 Q524,566 517,560 Z" fill="url(#metalDark)" stroke="#6b7280" stroke-width="1.5"/>
<!-- spout outlets -->
<ellipse cx="476" cy="561" rx="5" ry="2.5" fill="#4b5563"/>
<ellipse cx="524" cy="561" rx="5" ry="2.5" fill="#4b5563"/>
<!-- top plate -->
<ellipse cx="500" cy="504" rx="72" ry="10" fill="#dfe4ea" stroke="#6b7280" stroke-width="1.5"/>
</g>
<g>
<circle cx="396" cy="530" r="14" fill="#111827"/>
<text x="396" y="534.5" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="13" font-weight="bold" fill="#ffffff">4</text>
</g>
<!-- ============ assembly direction arrows ============ -->
<g stroke="#475569" stroke-width="2.5" fill="none">
<line x1="500" y1="152" x2="500" y2="178" marker-end="url(#arrow)"/>
<line x1="500" y1="318" x2="500" y2="340" marker-end="url(#arrow)"/>
<line x1="500" y1="448" x2="500" y2="490" marker-end="url(#arrow)"/>
</g>
<text x="514" y="170" font-family="Arial, Helvetica, sans-serif" font-size="11.5" fill="#475569">assemble downward</text>
<!-- ============ labels with leader lines ============ -->
<g font-family="Arial, Helvetica, sans-serif" font-size="15" fill="#111827">
<text x="718" y="93">Handle</text>
<text x="718" y="250">Portafilter body with bayonet lugs</text>
<text x="718" y="391">Removable basket (perforated)</text>
<text x="718" y="535">Double-spout outlet</text>
</g>
<g stroke="#6b7280" stroke-width="1.2" fill="none">
<line x1="712" y1="88" x2="630" y2="88"/>
<line x1="712" y1="245" x2="688" y2="245"/>
<line x1="712" y1="386" x2="582" y2="386"/>
<line x1="712" y1="530" x2="542" y2="530"/>
</g>
<g fill="#6b7280">
<circle cx="628" cy="88" r="2.5"/>
<circle cx="684" cy="245" r="2.5"/>
<circle cx="580" cy="386" r="2.5"/>
<circle cx="540" cy="530" r="2.5"/>
</g>
<!-- footer note -->
<text x="500" y="630" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="12.5" fill="#6b7280">Exploded view · components separated along the assembly axis · not to scale</text>
</svg>Exploded portafilter: Mistral Large 4
modelmistralai/mistral-large-4-0taskexploded-portafilter@v1, checks c1, harness h1date2026-10-07rounds1 of 8 allowed, 12 minutes on the clockcost$0.0462thinkingmediumtokens40,317 in, 12,554 out, of which 7,401 reasoningtime4 min 18 sfailedAll five parts: incomplete, component missing, major, its note said this very thing was right · Stack order: false, relation transposed, critical, near miss: 1 pair 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.pass
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.
same 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.