SVG: exploded portafilter, by claude-opus-5.5
claude-opus-5.5 · round 2 of 2 · seed 3$0.02SVGPNGportafilter.svg
portafilter.svg · 135 lines
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 1000" width="960" height="1000" font-family="Helvetica, Arial, sans-serif">
<defs>
 <linearGradient id="steel" x1="0" x2="1"><stop offset="0" stop-color="#8a9097"/><stop offset=".3" stop-color="#eef1f4"/><stop offset=".6" stop-color="#b9c0c7"/><stop offset="1" stop-color="#6d737a"/></linearGradient>
 <linearGradient id="chrome" x1="0" x2="1"><stop offset="0" stop-color="#6f767d"/><stop offset=".25" stop-color="#f7f9fb"/><stop offset=".55" stop-color="#a9b0b7"/><stop offset="1" stop-color="#5a6067"/></linearGradient>
 <linearGradient id="wood" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#8a5a33"/><stop offset=".35" stop-color="#c48a57"/><stop offset="1" stop-color="#5e3a1e"/></linearGradient>
 <linearGradient id="inside" x1="0" x2="1"><stop offset="0" stop-color="#4a4f55"/><stop offset="1" stop-color="#9aa1a8"/></linearGradient>
 <marker id="dot" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="6" markerHeight="6"><circle cx="5" cy="5" r="4" fill="#222"/></marker>
</defs>
<rect width="960" height="1000" fill="#fbfaf7"/>
<text x="480" y="44" text-anchor="middle" font-size="26" font-weight="bold" fill="#222">Espresso Portafilter — Exploded Assembly</text>
<text x="480" y="68" text-anchor="middle" font-size="14" fill="#555">58 mm double-spout portafilter with removable double basket</text>

<!-- center axis -->
<line x1="380" y1="95" x2="380" y2="800" stroke="#c0392b" stroke-width="1" stroke-dasharray="14 4 3 4"/>
<!-- handle axis -->
<line x1="488" y1="459" x2="912" y2="529" stroke="#c0392b" stroke-width="1" stroke-dasharray="14 4 3 4"/>

<g stroke="#2b2b2b" stroke-width="1.6" stroke-linejoin="round">
<!-- 1 FILTER BASKET -->
 <path d="M262 140 L285 232 Q380 262 475 232 L498 140 Z" fill="url(#steel)"/>
 <ellipse cx="380" cy="232" rx="95" ry="16" fill="none" stroke-width="1" stroke-dasharray="3 3"/>
 <path d="M266 156 Q380 182 494 156" fill="none" stroke-width="1.2"/>
 <path d="M268 163 Q380 189 492 163" fill="none" stroke-width="1"/>
 <ellipse cx="380" cy="140" rx="128" ry="22" fill="url(#chrome)"/>
 <ellipse cx="380" cy="140" rx="114" ry="17" fill="url(#inside)"/>
 <g fill="#2b2b2b" stroke="none">
  <circle cx="340" cy="244" r="1.4"/><circle cx="355" cy="246" r="1.4"/><circle cx="370" cy="247" r="1.4"/><circle cx="385" cy="247" r="1.4"/><circle cx="400" cy="246" r="1.4"/><circle cx="415" cy="244" r="1.4"/>
 </g>

<!-- 2 RETAINING SPRING (open C-ring) -->
 <path d="M410 335 A112 20 0 1 1 350 335" fill="none" stroke="#333" stroke-width="5" stroke-linecap="round"/>
 <path d="M410 335 A112 20 0 1 1 350 335" fill="none" stroke="#d9dde1" stroke-width="2" stroke-linecap="round"/>

<!-- 3 PORTAFILTER BODY -->
 <!-- bayonet lugs -->
 <path d="M248 410 L262 404 L262 432 L248 428 Z" fill="url(#chrome)"/>
 <path d="M512 404 L526 410 L526 428 L512 432 Z" fill="url(#chrome)"/>
 <!-- handle arm -->
 <path d="M490 440 L600 465 L604 492 L486 478 Z" fill="url(#chrome)"/>
 <ellipse cx="602" cy="478" rx="6" ry="14" fill="#9aa1a8"/>
 <!-- cup -->
 <path d="M258 410 L262 482 Q380 528 498 482 L502 410 Z" fill="url(#chrome)"/>
 <ellipse cx="380" cy="410" rx="122" ry="22" fill="url(#chrome)"/>
 <ellipse cx="380" cy="410" rx="108" ry="17" fill="url(#inside)"/>
 <!-- outlet boss -->
 <path d="M355 512 L355 536 Q380 544 405 536 L405 512" fill="url(#steel)"/>
 <path d="M355 520 Q380 528 405 520 M355 528 Q380 536 405 528" fill="none" stroke-width="1"/>

<g transform="translate(0,-12)">
 <path d="M672 486 L690 482 L880 518 Q912 532 880 560 L690 532 L672 528 Z" fill="url(#wood)"/>
 <path d="M672 486 L690 482 L690 532 L672 528 Z" fill="url(#chrome)"/>
 <path d="M710 500 L860 527" stroke="#3b2412" stroke-width="1" fill="none" opacity=".6"/>
 <path d="M710 514 L870 542" stroke="#3b2412" stroke-width="1" fill="none" opacity=".5"/>
 <!-- ferrule screw stud -->
 <path d="M630 498 L672 500 L672 516 L630 512 Z" fill="url(#steel)"/>
 <path d="M638 498 l-2 15 M646 499 l-2 15 M654 499 l-2 15 M662 500 l-2 15" stroke-width="1"/>

</g>
<!-- 6 DOUBLE SPOUT -->
 <rect x="362" y="610" width="36" height="34" fill="url(#steel)"/>
 <path d="M362 616 L398 620 M362 623 L398 627 M362 630 L398 634 M362 637 L398 641" stroke-width="1"/>
 <path d="M340 644 L420 644 L426 676 L334 676 Z" fill="url(#chrome)"/>
 <path d="M340 644 L420 644" stroke-width="2"/>
 <!-- spouts -->
 <path d="M336 668 L352 676 L322 738 L304 730 Z" fill="url(#chrome)"/>
 <path d="M424 668 L408 676 L438 738 L456 730 Z" fill="url(#chrome)"/>
 <ellipse cx="313" cy="734" rx="10" ry="5" transform="rotate(25 313 734)" fill="#444"/>
 <ellipse cx="447" cy="734" rx="10" ry="5" transform="rotate(-25 447 734)" fill="#444"/>
</g>

<!-- espresso drips -->
<g fill="#6b3b1b" opacity=".0"><circle cx="310" cy="760" r="3"/></g>

<!-- leader lines & balloons -->
<g stroke="#222" stroke-width="1" fill="none">
 <polyline points="262,150 170,150"/>
 <polyline points="268,340 170,300"/>
 <polyline points="270,450 170,450"/>
 <polyline points="250,418 210,395 170,380"/>
 <polyline points="560,470 560,600 640,600"/>
 <polyline points="780,492 790,430 820,430"/>
 <polyline points="660,494 660,640 700,640"/>
 <polyline points="390,530 470,560 520,560"/>
 <polyline points="425,680 520,700"/>
 <polyline points="398,620 500,620 520,610"/>
</g>
<g font-size="14" fill="#222">
 <g fill="#fff" stroke="#222" stroke-width="1.4">
  <circle cx="155" cy="150" r="14"/><circle cx="155" cy="300" r="14"/><circle cx="155" cy="450" r="14"/><circle cx="155" cy="380" r="14"/>
  <circle cx="654" cy="600" r="14"/><circle cx="834" cy="430" r="14"/><circle cx="714" cy="640" r="14"/>
  <circle cx="534" cy="560" r="14"/><circle cx="534" cy="702" r="14"/><circle cx="534" cy="608" r="14"/>
 </g>
 <g text-anchor="middle" font-weight="bold" dominant-baseline="central">
  <text x="155" y="150">1</text><text x="155" y="300">2</text><text x="155" y="450">3</text><text x="155" y="380">4</text>
  <text x="654" y="600">5</text><text x="834" y="430">6</text><text x="714" y="640">7</text>
  <text x="534" y="560">8</text><text x="534" y="702">10</text><text x="534" y="608">9</text>
 </g>
 <g text-anchor="end" font-size="13">
  <text x="135" y="146">Filter basket</text><text x="135" y="161">(double, 14–18 g)</text>
  <text x="135" y="296">Basket retaining</text><text x="135" y="311">spring clip</text>
  <text x="135" y="446">Portafilter</text><text x="135" y="461">body (group cup)</text>
  <text x="135" y="376">Bayonet lugs</text><text x="135" y="391">(×2)</text>
 </g>
</g>

<!-- exploded alignment arrows -->
<g stroke="#777" stroke-width="1" stroke-dasharray="4 3" fill="none">
 <line x1="560" y1="140" x2="560" y2="400"/>
 <line x1="608" y1="479" x2="630" y2="486" />
</g>
<path d="M555 390 L560 402 L565 390 Z" fill="#777"/>
<text x="568" y="270" font-size="11" fill="#777">assembles ↓</text>

<!-- parts list -->
<g font-size="13" fill="#222">
 <rect x="80" y="810" width="800" height="168" fill="#fff" stroke="#222"/>
 <line x1="80" y1="834" x2="880" y2="834" stroke="#222"/>
 <line x1="130" y1="810" x2="130" y2="978" stroke="#222"/>
 <line x1="480" y1="810" x2="480" y2="978" stroke="#222"/>
 <line x1="530" y1="810" x2="530" y2="978" stroke="#222"/>
 <text x="92" y="827" font-weight="bold">No.</text><text x="140" y="827" font-weight="bold">Part</text>
 <text x="492" y="827" font-weight="bold">No.</text><text x="540" y="827" font-weight="bold">Part</text>
 <text x="98" y="856">1</text><text x="140" y="856">Filter basket, double, stainless (removable)</text>
 <text x="98" y="882">2</text><text x="140" y="882">Retaining spring clip (sits in body groove)</text>
 <text x="98" y="908">3</text><text x="140" y="908">Portafilter body, chrome-plated brass</text>
 <text x="98" y="934">4</text><text x="140" y="934">Bayonet lugs (lock into group head)</text>
 <text x="98" y="960">5</text><text x="140" y="960">Handle arm (cast with body)</text>
 <text x="498" y="856">6</text><text x="540" y="856">Handle grip, wood</text>
 <text x="498" y="882">7</text><text x="540" y="882">Threaded stud / ferrule</text>
 <text x="498" y="908">8</text><text x="540" y="908">Threaded outlet boss</text>
 <text x="494" y="934">9</text><text x="540" y="934">Spout thread (M10 male)</text>
 <text x="494" y="960">10</text><text x="540" y="960">Double spout, two outlets</text>
</g>
</svg>
round 1 of 2
Exploded portafilter, by Opus 5.5, the render after round 1
12What the model saw after each round. The picture above is the round that was scored, round 2.

Exploded portafilter: Opus 5.5

modelanthropic/claude-opus-5.5taskexploded-portafilter@v1, checks c1, harness h1date2026-10-21rounds2 of 8 allowed, 12 minutes on the clockcost$0.0235thinkingmediumtokens36,746 in, 6,907 out, of which 1,371 reasoningtime1 min 22 sfailedAll five parts: incomplete, component missing, major
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 filepass
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.

its other runs
the prompt it was given
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.
ground truth

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.