SVG: exploded hand grinder, by pareto-26.10-preview
pareto-26.10-preview · round 1 · seed 1$0.40SVGPNGgrinder.svg
grinder.svg · 197 lines
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="1450" viewBox="0 0 1000 1450">
<title>Manual coffee grinder — exploded assembly</title>
<desc>A crank-operated hand grinder separated along its central shaft. The steel burr set consists of a stationary tapered ring and a rotating conical inner burr, narrow end up. Numbered leaders identify the crank, lid, shaft, hopper, outer burr, inner burr, spring, adjustment dial, and grounds cup.</desc>
<defs>
 <linearGradient id="metal" x1="0" x2="1"><stop stop-color="#8b9c9d"/><stop offset=".22" stop-color="#d8e1df"/><stop offset=".43" stop-color="#f5f7f1"/><stop offset=".7" stop-color="#c4cfcd"/><stop offset="1" stop-color="#839597"/></linearGradient>
 <linearGradient id="dark" x1="0" x2="1"><stop stop-color="#183b3f"/><stop offset=".25" stop-color="#31575a"/><stop offset=".48" stop-color="#456b6c"/><stop offset=".8" stop-color="#284f53"/><stop offset="1" stop-color="#183b3f"/></linearGradient>
 <linearGradient id="wood" x1="0" x2="1"><stop stop-color="#855337"/><stop offset=".4" stop-color="#c39261"/><stop offset=".7" stop-color="#bb8856"/><stop offset="1" stop-color="#795037"/></linearGradient>
 <linearGradient id="bore" x1="0" y1="0" x2="0" y2="1"><stop stop-color="#354b4e"/><stop offset="1" stop-color="#b4c4c0"/></linearGradient>
 <linearGradient id="brass" x1="0" x2="1"><stop stop-color="#a87f3e"/><stop offset=".45" stop-color="#e9ce91"/><stop offset="1" stop-color="#ad8949"/></linearGradient>
 <pattern id="paper" width="6" height="6" patternUnits="userSpaceOnUse"><circle cx="1" cy="1" r=".45" fill="#bcb8a9" opacity=".17"/></pattern>
 <style>
 .edge{stroke:#344d4f;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
 .fine{fill:none;stroke:#647e7e;stroke-width:1.1;stroke-linecap:round}
 .leader{fill:none;stroke:#83918b;stroke-width:1.2;stroke-linejoin:round}
 .name{font:600 21px 'DejaVu Sans',sans-serif;fill:#223f42}
 .note{font:16px 'DejaVu Sans',sans-serif;fill:#71817a}
 .num{font:600 14px 'DejaVu Sans',sans-serif;fill:#f9f6ed;text-anchor:middle}
 </style>
</defs>
<rect width="1000" height="1450" fill="#f5f2e9"/>
<rect width="1000" height="1450" fill="url(#paper)"/>
<path d="M55 57H94" stroke="#b58643" stroke-width="4"/>
<text x="109" y="63" font-family="DejaVu Sans,sans-serif" font-size="15" letter-spacing="3" fill="#8a713f">OBJECT STUDY / 01</text>
<text x="55" y="113" font-family="DejaVu Sans,sans-serif" font-size="43" font-weight="bold" letter-spacing="-1.5" fill="#203c3f">The hand grinder</text>
<text x="56" y="145" class="note" font-size="18">Exploded assembly · Conical burr mechanism</text>
<text x="941" y="66" text-anchor="end" class="note" style="font-size:13px;letter-spacing:2px">MECHANICAL ATLAS</text>
<path d="M55 167H945" stroke="#d1d4c7"/>
<!-- Shared assembly axis: deliberately interrupted by solid components. -->
<path d="M475 200V1357" stroke="#b1bdb3" stroke-width="1.3" stroke-dasharray="9 6 2 6"/>
<!-- 01: hand crank, with wooden revolving handle -->
<g class="edge">
 <path d="M458 249V266Q475 275 492 266V249" fill="url(#metal)"/>
 <ellipse cx="475" cy="249" rx="17" ry="7" fill="#e8eeE5"/>
 <path d="M458 239Q453 227 470 224L634 196Q648 192 654 201L656 209Q656 215 644 218L488 254Q466 259 459 250Z" fill="url(#metal)"/>
 <path d="M458 239Q470 247 487 241L646 206Q653 205 654 201" fill="none" stroke="#eef2e9"/>
 <path d="M468 227L480 226L485 232L474 237L465 233Z" fill="#3b5354"/>
 <path d="M636 184V205Q643 211 650 205V184" fill="url(#metal)"/>
 <path d="M618 192C608 184 609 157 615 148C624 135 659 136 670 148C680 160 678 185 667 194C653 204 631 203 618 192Z" fill="url(#wood)"/>
 <path d="M620 155C632 146 659 147 669 157M619 171C630 163 659 164 670 175M626 192C637 186 658 188 665 191" fill="none" stroke="#95643e" stroke-width="1.2"/>
</g>
<!-- 02: removable hopper lid -->
<g class="edge">
 <path d="M372 319V333C373 373 576 373 578 333V319Z" fill="url(#dark)"/>
 <ellipse cx="475" cy="319" rx="103" ry="32" fill="#446565"/>
 <ellipse cx="475" cy="319" rx="92" ry="26" fill="none" stroke="#8ba29a" stroke-width="1"/>
 <ellipse cx="475" cy="319" rx="16" ry="6" fill="#152f33"/>
 <path d="M461 321Q475 328 489 321" fill="none" stroke="#a4b7ac"/>
</g>
<!-- 03: spindle; bearing collars are included in this subassembly -->
<g class="edge">
 <path d="M467 392L475 387L483 392V552L475 557L467 552Z" fill="url(#metal)"/>
 <path d="M475 398V548" fill="none" stroke="#edf1e7" stroke-width="2"/>
 <path d="M467 392L475 397L483 392M467 409L475 414L483 409" fill="none"/>
 <path d="M453 440V451C453 462 497 462 497 451V440Z" fill="url(#metal)"/>
 <ellipse cx="475" cy="440" rx="22" ry="8" fill="#dce4da"/>
 <path d="M467 432V444Q475 449 483 444V432" fill="url(#metal)" stroke-width="1.2"/>
 <path d="M455 523V535Q475 549 495 535V523Z" fill="url(#metal)"/>
 <ellipse cx="475" cy="523" rx="20" ry="7" fill="#cbd7d0"/>
 <path d="M467 513V527Q475 532 483 527V513" fill="url(#metal)" stroke-width="1.2"/>
</g>
<!-- 04: hollow hopper / structural housing -->
<g class="edge">
 <path d="M369 621V749C369 794 581 794 581 749V621Z" fill="url(#dark)"/>
 <ellipse cx="475" cy="621" rx="106" ry="34" fill="#a5b8ac"/>
 <ellipse cx="475" cy="621" rx="96" ry="28" fill="#183538"/>
 <path d="M381 619Q475 580 569 619" fill="none" stroke="#6c8b82"/>
 <!-- Three bearing-support spokes across the open hopper -->
 <path d="M462 617L416 599L425 596L475 614L529 596L538 599L488 621L481 646L467 648L467 625Z" fill="#7c9990" stroke-width="1.2"/>
 <ellipse cx="475" cy="621" rx="20" ry="8" fill="#c7d3c6"/>
 <ellipse cx="475" cy="621" rx="9" ry="4" fill="#132e32"/>
 <path d="M369 729C376 767 574 767 581 729M369 740C376 779 574 779 581 740" fill="none" stroke="#5e8077" stroke-width="1.1"/>
 <path d="M386 658V722" fill="none" stroke="#7c9a8e" stroke-width="1"/>
</g>
<text x="475" y="702" text-anchor="middle" fill="#c4d0bb" font-family="DejaVu Sans,sans-serif" font-size="14" letter-spacing="5">HAND / MILL</text>
<!-- 05: stationary ring burr. Open front sector exposes the taper. -->
<g class="edge">
 <path d="M387 835V875Q475 916 563 875V835Z" fill="url(#metal)"/>
 <!-- Internal conical grinding wall, narrow above / wider below -->
 <path d="M429 831Q475 804 521 831L544 875Q475 844 406 875Z" fill="url(#bore)"/>
 <path d="M387 835C387 799 563 799 563 835L537 853L516 840C535 820 415 820 434 840L413 853Z" fill="#dbe3d8"/>
 <path d="M387 835L413 853V888L406 875L406 849Z" fill="#b0c1b8"/>
 <path d="M563 835L537 853V888L544 875L544 849Z" fill="#8fa59d"/>
 <!-- Ground-away front sector, not a solid washer -->
 <path d="M413 853L406 875L413 888M537 853L544 875L537 888" fill="none" stroke="#4f6868"/>
</g>

<path d="M430.6 831.4L409.0 872.9" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M435.2 828.0L416.5 867.9" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M442.5 825.1L427.9 863.6" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M452.0 822.9L442.6 860.5" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M463.1 821.5L459.5 858.5" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M475.0 821.0L477.4 858.0" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M486.9 821.5L495.2 858.9" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M498.0 822.9L511.6 861.2" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M507.5 825.1L525.5 864.7" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M514.8 828.0L535.9 869.1" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M519.4 831.4L542.2 874.3" stroke="#536c6b" stroke-width="2.5" fill="none"/>
<path d="M413 853L434 840M537 853L516 840" stroke="#f0f2e7" stroke-width="2"/>
<!-- 06: rotating inner burr, narrow crown ABOVE wide skirt -->
<g class="edge">
 <path d="M453 931C448 954 428 984 411 1000Q475 1033 539 1000C518 976 504 954 497 931Z" fill="url(#metal)"/>
 <ellipse cx="475" cy="931" rx="22" ry="8" fill="#dce5db"/>
 <path d="M467 929L476 926L484 930L476 935L467 933Z" fill="#264246"/>
 <path d="M411 1000V1008Q475 1040 539 1008V1000Q475 1032 411 1000Z" fill="#91a7a0"/>
</g>

<path d="M496.8 932.0Q511.2 970.5 537.1 1004.8L530.1 1003.8Q507.2 969.5 496.8 932.0Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<path d="M494.6 934.6Q506.3 974.4 528.1 1011.1L521.1 1010.1Q502.3 973.4 494.6 934.6Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<path d="M490.0 936.9Q497.7 977.5 512.7 1016.2L505.7 1015.2Q493.7 976.5 490.0 936.9Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<path d="M483.6 938.4Q486.3 979.4 492.8 1019.2L485.8 1018.2Q482.3 978.4 483.6 938.4Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<path d="M476.2 939.0Q473.6 980.0 470.7 1020.0L463.7 1019.0Q469.6 979.0 476.2 939.0Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<path d="M468.6 938.7Q461.0 979.1 449.1 1018.3L442.1 1017.3Q457.0 978.1 468.6 938.7Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<path d="M461.8 937.4Q450.2 976.9 430.6 1014.4L423.6 1013.4Q446.2 975.9 461.8 937.4Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<path d="M456.5 935.4Q442.3 973.6 417.5 1008.8L410.5 1007.8Q438.3 972.6 456.5 935.4Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<path d="M453.6 932.8Q438.3 969.6 411.4 1002.1L404.4 1001.1Q434.3 968.6 453.6 932.8Z" fill="#607d7b" stroke="#4e6869" stroke-width=".8"/>
<!-- 07: preload spring -->
<g fill="none" stroke-linecap="round">
 <path d="M497 1049C497 1039 453 1039 453 1049S497 1063 497 1053S453 1049 453 1059S497 1073 497 1063S453 1059 453 1069S497 1083 497 1073" stroke="#536e6d" stroke-width="5"/>
 <path d="M497 1049C497 1039 453 1039 453 1049S497 1063 497 1053S453 1049 453 1059S497 1073 497 1063S453 1059 453 1069S497 1083 497 1073" stroke="#d0dcd1" stroke-width="1.5"/>
</g>
<!-- 08: threaded click adjuster -->
<g class="edge">
 <path d="M432 1110V1128Q475 1149 518 1128V1110Z" fill="url(#brass)"/>
 <ellipse cx="475" cy="1110" rx="43" ry="14" fill="#dfc78e"/>
 <ellipse cx="475" cy="1110" rx="10" ry="4" fill="#324d4c"/>

<path d="M517.7 1111.7v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M515.2 1115.0v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M510.4 1118.0v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M503.5 1120.5v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M495.0 1122.4v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M485.3 1123.6v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M475.0 1124.0v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M464.7 1123.6v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M455.0 1122.4v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M446.5 1120.5v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M439.6 1118.0v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M434.8 1115.0v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
<path d="M432.3 1111.7v17" fill="none" stroke="#9e7e40" stroke-width="1"/>
</g>
<!-- 09: removable grounds catcher, open at the top -->
<g class="edge">
 <path d="M369 1210V1310C369 1355 581 1355 581 1310V1210Z" fill="url(#dark)"/>
 <ellipse cx="475" cy="1210" rx="106" ry="34" fill="#a6baae"/>
 <ellipse cx="475" cy="1210" rx="97" ry="28" fill="#183538"/>
 <path d="M379 1213C394 1187 556 1187 571 1213" fill="none" stroke="#55776c"/>
 <path d="M369 1299C374 1340 576 1340 581 1299" fill="none" stroke="#527369" stroke-width="1.2"/>
 <path d="M386 1251V1294" fill="none" stroke="#7c9a8e" stroke-width="1"/>
</g>

<path d="M320 226H344L468 245" class="leader"/><circle cx="468" cy="245" r="3" fill="#ad8546"/>
<circle cx="82" cy="222" r="13" fill="#27484a"/><text x="82" y="227" class="num">01</text>
<text x="107" y="229" class="name">Crank &amp; grip</text>
<text x="107" y="255" class="note">Hand-powered drive</text>
<path d="M682 322H644L572 331" class="leader"/><circle cx="572" cy="331" r="3" fill="#ad8546"/>
<circle cx="703" cy="318" r="13" fill="#27484a"/><text x="703" y="323" class="num">02</text>
<text x="728" y="325" class="name">Hopper lid</text>
<text x="728" y="351" class="note">Removable cover</text>
<path d="M320 458H344L452 448" class="leader"/><circle cx="452" cy="448" r="3" fill="#ad8546"/>
<circle cx="82" cy="454" r="13" fill="#27484a"/><text x="82" y="459" class="num">03</text>
<text x="107" y="461" class="name">Drive spindle</text>
<text x="107" y="487" class="note">Steel shaft &amp; bearings</text>
<path d="M682 657H644L576 687" class="leader"/><circle cx="576" cy="687" r="3" fill="#ad8546"/>
<circle cx="703" cy="653" r="13" fill="#27484a"/><text x="703" y="658" class="num">04</text>
<text x="728" y="660" class="name">Body / hopper</text>
<text x="728" y="686" class="note">Bearing bridge above;</text>
<text x="728" y="708" class="note">burr seat below</text>
<path d="M320 834H344L393 854" class="leader"/><circle cx="393" cy="854" r="3" fill="#ad8546"/>
<circle cx="82" cy="830" r="13" fill="#27484a"/><text x="82" y="835" class="num">05</text>
<text x="107" y="837" class="name">Outer ring burr</text>
<text x="107" y="863" class="note">Fixed, tapered bore</text>
<text x="107" y="885" class="note">Front sector cut away</text>
<path d="M682 953H644L530 996" class="leader"/><circle cx="530" cy="996" r="3" fill="#ad8546"/>
<circle cx="703" cy="949" r="13" fill="#27484a"/><text x="703" y="954" class="num">06</text>
<text x="728" y="956" class="name">Conical burr</text>
<text x="728" y="982" class="note">Rotating inner cutter</text>
<text x="728" y="1004" class="note">Narrow end faces up</text>
<path d="M320 1054H344L453 1060" class="leader"/><circle cx="453" cy="1060" r="3" fill="#ad8546"/>
<circle cx="82" cy="1050" r="13" fill="#27484a"/><text x="82" y="1055" class="num">07</text>
<text x="107" y="1057" class="name">Preload spring</text>
<text x="107" y="1083" class="note">Maintains axial tension</text>
<path d="M682 1119H644L515 1126" class="leader"/><circle cx="515" cy="1126" r="3" fill="#ad8546"/>
<circle cx="703" cy="1115" r="13" fill="#27484a"/><text x="703" y="1120" class="num">08</text>
<text x="728" y="1122" class="name">Adjustment dial</text>
<text x="728" y="1148" class="note">Threads onto spindle</text>
<text x="728" y="1170" class="note">Sets the burr clearance</text>
<path d="M320 1256H344L372 1270" class="leader"/><circle cx="372" cy="1270" r="3" fill="#ad8546"/>
<circle cx="82" cy="1252" r="13" fill="#27484a"/><text x="82" y="1257" class="num">09</text>
<text x="107" y="1259" class="name">Grounds cup</text>
<text x="107" y="1285" class="note">Removable collector</text>
<!-- Diagram notes -->
<path d="M55 1371H945" stroke="#c5cbbb"/>
<text x="55" y="1401" class="note" style="font-size:14px;letter-spacing:1px">EXPLODED VIEW</text>
<text x="55" y="1424" class="note" style="font-size:13px">Schematic · Parts share one vertical drive axis · Not to scale</text>
<text x="945" y="1400" text-anchor="end" class="note" style="font-size:14px">A tapered ring surrounds a rotating cone.</text>
<text x="945" y="1423" text-anchor="end" class="note" style="font-size:14px">Their adjustable clearance controls grind size.</text>
</svg>
gallery/Exploded hand grinder/Pareto 26.10 Preview, run 1

Exploded hand grinder: Pareto 26.10 Preview

modelunbiased/pareto-26.10-previewtaskexploded-grinder@v1, checks c1, harness h1date2026-10-07rounds1 of 8 allowed, 12 minutes on the clockcost$0.4023thinkingmediumtokens52,388 in, 119,747 out, of which 0 reasoningtime12 min 0 s

What the harness did to this run. The 12-minute clock ended it before the model finished, so this is where it had got to when time ran out.

All eight 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.pass
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
One assembly axisdecided 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 a manual coffee grinder, as an SVG. Use a hand grinder with conical burrs rather than flat burrs.
Frozen at v1. This model got this and nothing else.
ground truth

Top to bottom: handle knob, crank, body, outer burr, inner burr, spring if drawn, adjustment dial, catch jar. The drive shaft runs through the body and both burrs, so it is left out of the order, the way the French press leaves out its rod. The adjustment is at the bottom, below the burrs, and the inner cone comes out downwards through the fixed outer ring. Checked against Comandante's FAQ for the C40, Coffeegeek on the Timemore C2, Hario's spare-parts list and a review for the Skerton Pro, and a guide to the Porlex Mini. The Skerton has no spring, so the spring is not required. How it is scored, and this run's files on GitHub.