SVG: exploded AeroPress, by pareto-26.10-preview
pareto-26.10-preview · round 2 of 2 · seed 1$0.11SVGPNGaeropress.svg
aeropress.svg · 145 lines
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1400" font-family="Helvetica, Arial, sans-serif">
  <defs>
    <linearGradient id="plastic" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#c3c8cd"/>
      <stop offset="0.18" stop-color="#e8ebec"/>
      <stop offset="0.45" stop-color="#f8f9fa"/>
      <stop offset="0.72" stop-color="#dfe3e6"/>
      <stop offset="1" stop-color="#b4bac0"/>
    </linearGradient>
    <linearGradient id="dark" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#141417"/>
      <stop offset="0.22" stop-color="#3c3c41"/>
      <stop offset="0.5" stop-color="#5a5a60"/>
      <stop offset="0.78" stop-color="#333338"/>
      <stop offset="1" stop-color="#0f0f12"/>
    </linearGradient>
    <radialGradient id="capTop" cx="0.5" cy="0.42" r="0.75">
      <stop offset="0" stop-color="#4b4b51"/>
      <stop offset="1" stop-color="#202024"/>
    </radialGradient>
    <filter id="soft" x="-40%" y="-40%" width="180%" height="180%"><feGaussianBlur stdDeviation="4"/></filter>
    <clipPath id="capFace"><ellipse cx="500" cy="1050" rx="82" ry="18"/></clipPath>
  </defs>

  <rect width="1000" height="1400" fill="#f8f6f2"/>

  <text x="500" y="58" text-anchor="middle" font-size="30" font-weight="700" fill="#2a2a2e">AeroPress Coffee Maker</text>
  <text x="500" y="88" text-anchor="middle" font-size="17" fill="#8b857c">Exploded assembly view · original model with round paper micro-filter</text>

  <!-- assembly axis -->
  <line x1="500" y1="118" x2="500" y2="1108" stroke="#b9bcc0" stroke-width="1.5" stroke-dasharray="7 9"/>

  <!-- soft shadows -->
  <g fill="#1a1a1a" opacity="0.05" filter="url(#soft)">
    <ellipse cx="503" cy="252" rx="100" ry="9"/>
    <ellipse cx="505" cy="596" rx="85" ry="9"/>
    <ellipse cx="505" cy="952" rx="95" ry="10"/>
    <ellipse cx="503" cy="1008" rx="58" ry="7"/>
    <ellipse cx="505" cy="1110" rx="90" ry="10"/>
    <ellipse cx="335" cy="1244" rx="150" ry="7"/>
    <ellipse cx="695" cy="1252" rx="120" ry="7"/>
  </g>

  <!-- 1 funnel -->
  <path d="M398,150 L434,238 A66,10 0 0 0 566,238 L602,150 A102,15 0 0 1 398,150 Z" fill="url(#plastic)" stroke="#9aa0a6" stroke-width="2" stroke-linejoin="round"/>
  <path d="M409,157 L445,234" stroke="#b6babf" stroke-width="1.5" opacity="0.9"/>
  <path d="M591,157 L555,234" stroke="#b6babf" stroke-width="1.5" opacity="0.9"/>
  <path d="M443,236 A57,8.5 0 0 0 557,236" fill="none" stroke="#b6babf" stroke-width="1.5" opacity="0.9"/>
  <ellipse cx="500" cy="150" rx="102" ry="15" fill="#eef0f2" stroke="#9aa0a6" stroke-width="2"/>
  <ellipse cx="500" cy="151" rx="93" ry="12.5" fill="#c9cdd2" stroke="#a9aeb3" stroke-width="1.5"/>

  <!-- 2 plunger -->
  <path d="M440,326 L440,530 A60,13 0 0 0 560,530 L560,326 Z" fill="url(#plastic)" stroke="#9aa0a6" stroke-width="2" stroke-linejoin="round"/>
  <path d="M422,306 L422,326 A78,15 0 0 0 578,326 L578,306 Z" fill="url(#plastic)" stroke="#9aa0a6" stroke-width="2" stroke-linejoin="round"/>
  <ellipse cx="500" cy="306" rx="78" ry="15" fill="#f0f2f4" stroke="#9aa0a6" stroke-width="2"/>
  <ellipse cx="500" cy="307" rx="56" ry="10" fill="#7d8287" stroke="#85898e" stroke-width="1.5"/>
  <path d="M452,345 L448,524" stroke="#c3c7cb" stroke-width="1.5" opacity="0.85"/>
  <path d="M548,345 L552,524" stroke="#c3c7cb" stroke-width="1.5" opacity="0.85"/>
  <path d="M432,530 A68,13 0 0 0 568,530 L568,560 L576,563 L576,575 A76,12 0 0 1 424,575 L424,563 L432,560 Z" fill="url(#dark)" stroke="#131316" stroke-width="2" stroke-linejoin="round"/>
  <path d="M456,540 L456,566" stroke="#ffffff" stroke-width="4" opacity="0.10"/>

  <!-- 3 chamber -->
  <path d="M400,640 Q413,688 424,712 L424,935 A76,13 0 0 0 576,935 L576,712 Q587,688 600,640 A100,17 0 0 1 400,640 Z" fill="url(#plastic)" stroke="#9aa0a6" stroke-width="2" stroke-linejoin="round"/>
  <path d="M409,646 L431,716" stroke="#b6babf" stroke-width="1.5" opacity="0.9"/>
  <path d="M591,646 L569,716" stroke="#b6babf" stroke-width="1.5" opacity="0.9"/>
  <path d="M430,716 L430,930" stroke="#c3c7cb" stroke-width="1.5" opacity="0.8"/>
  <path d="M570,716 L570,930" stroke="#c3c7cb" stroke-width="1.5" opacity="0.8"/>
  <path d="M430,930 A70,11 0 0 0 570,930" fill="none" stroke="#b6babf" stroke-width="1.5" opacity="0.9"/>
  <rect x="438" y="672" width="12" height="248" rx="6" fill="#ffffff" opacity="0.5"/>
  <text x="500" y="800" text-anchor="middle" font-size="24" font-weight="600" letter-spacing="0.5" fill="#9ba0a5">AeroPress</text>
  <ellipse cx="500" cy="640" rx="100" ry="17" fill="#eef0f2" stroke="#9aa0a6" stroke-width="2"/>
  <ellipse cx="500" cy="641" rx="91" ry="14.5" fill="#ccd0d4" stroke="#a9aeb3" stroke-width="1.5"/>

  <!-- 4 paper filter -->
  <ellipse cx="500" cy="994" rx="56" ry="12" fill="#dfe2e5" stroke="#c2c6ca" stroke-width="1.5"/>
  <ellipse cx="500" cy="988" rx="56" ry="12" fill="#fdfdfd" stroke="#c8ccd0" stroke-width="1.5"/>
  <g fill="#d3d6da">
    <circle cx="475" cy="985" r="1.1"/><circle cx="492" cy="982" r="1.1"/><circle cx="510" cy="986" r="1.1"/>
    <circle cx="523" cy="991" r="1.1"/><circle cx="480" cy="992" r="1.1"/><circle cx="500" cy="993" r="1.1"/>
    <circle cx="515" cy="982" r="1.1"/><circle cx="468" cy="989" r="1.1"/><circle cx="505" cy="989" r="1.1"/>
    <circle cx="530" cy="986" r="1.1"/><circle cx="487" cy="984" r="1.1"/><circle cx="518" cy="993" r="1.1"/>
  </g>

  <!-- 5 filter cap -->
  <path d="M412,1050 L412,1082 A88,20 0 0 0 588,1082 L588,1050 Z" fill="url(#dark)" stroke="#131316" stroke-width="2" stroke-linejoin="round"/>
  <g stroke="#4b4c52" stroke-width="1.6" opacity="0.9">
    <path d="M422,1057 L423,1090"/><path d="M441,1063 L443,1096"/><path d="M462,1067 L464,1100"/>
    <path d="M482,1069 L483,1101"/><path d="M500,1070 L500,1101"/><path d="M518,1069 L517,1101"/>
    <path d="M538,1067 L536,1100"/><path d="M559,1063 L557,1096"/><path d="M578,1057 L577,1090"/>
  </g>
  <ellipse cx="500" cy="1050" rx="88" ry="20" fill="url(#capTop)" stroke="#131316" stroke-width="2"/>
  <g clip-path="url(#capFace)" stroke="#53545a" stroke-width="2.5">
    <path d="M432,1032 L432,1068"/><path d="M454,1032 L454,1068"/><path d="M476,1032 L476,1068"/>
    <path d="M498,1032 L498,1068"/><path d="M520,1032 L520,1068"/><path d="M542,1032 L542,1068"/>
    <path d="M564,1032 L564,1068"/>
    <path d="M414,1036 L586,1036"/><path d="M414,1043 L586,1043"/><path d="M414,1050 L586,1050"/>
    <path d="M414,1057 L586,1057"/><path d="M414,1064 L586,1064"/>
  </g>
  <ellipse cx="500" cy="1050" rx="82" ry="18" fill="none" stroke="#5b5c62" stroke-width="2"/>

  <!-- accessories -->
  <line x1="170" y1="1169" x2="395" y2="1169" stroke="#e2ddd5" stroke-width="1.5"/>
  <line x1="605" y1="1169" x2="830" y2="1169" stroke="#e2ddd5" stroke-width="1.5"/>
  <text x="500" y="1174" text-anchor="middle" font-size="13" letter-spacing="4" fill="#a8a29a">ACCESSORIES</text>

  <!-- 6 stirrer -->
  <rect x="185" y="1210" width="205" height="16" rx="8" fill="url(#plastic)" stroke="#9aa0a6" stroke-width="1.5"/>
  <rect x="385" y="1202" width="95" height="32" rx="15" fill="url(#plastic)" stroke="#9aa0a6" stroke-width="1.5"/>

  <!-- 7 scoop -->
  <rect x="600" y="1212" width="92" height="12" rx="6" fill="url(#plastic)" stroke="#9aa0a6" stroke-width="1.5"/>
  <path d="M690,1198 L788,1198 L778,1242 Q739,1254 700,1242 Z" fill="url(#plastic)" stroke="#9aa0a6" stroke-width="2" stroke-linejoin="round"/>
  <ellipse cx="739" cy="1198" rx="49" ry="10" fill="#b9bec4" stroke="#9aa0a6" stroke-width="1.5"/>

  <!-- labels -->
  <g font-size="19" fill="#3a3a3d">
    <line x1="602" y1="150" x2="665" y2="150" stroke="#9aa0a6" stroke-width="1.5"/><circle cx="602" cy="150" r="2.5" fill="#9aa0a6"/>
    <circle cx="681" cy="150" r="13" fill="#2e2e32"/><text x="681" y="155" text-anchor="middle" font-size="14" font-weight="600" fill="#ffffff">1</text>
    <text x="702" y="156">Funnel</text>

    <line x1="440" y1="430" x2="338" y2="430" stroke="#9aa0a6" stroke-width="1.5"/><circle cx="440" cy="430" r="2.5" fill="#9aa0a6"/>
    <circle cx="320" cy="430" r="13" fill="#2e2e32"/><text x="320" y="435" text-anchor="middle" font-size="14" font-weight="600" fill="#ffffff">2</text>
    <text x="302" y="436" text-anchor="end">Plunger</text>

    <line x1="424" y1="780" x2="338" y2="780" stroke="#9aa0a6" stroke-width="1.5"/><circle cx="424" cy="780" r="2.5" fill="#9aa0a6"/>
    <circle cx="320" cy="780" r="13" fill="#2e2e32"/><text x="320" y="785" text-anchor="middle" font-size="14" font-weight="600" fill="#ffffff">3</text>
    <text x="302" y="786" text-anchor="end">Brewing chamber</text>

    <line x1="556" y1="988" x2="665" y2="988" stroke="#9aa0a6" stroke-width="1.5"/><circle cx="556" cy="988" r="2.5" fill="#9aa0a6"/>
    <circle cx="681" cy="988" r="13" fill="#2e2e32"/><text x="681" y="993" text-anchor="middle" font-size="14" font-weight="600" fill="#ffffff">4</text>
    <text x="702" y="994">Round paper filter</text>

    <line x1="588" y1="1062" x2="665" y2="1062" stroke="#9aa0a6" stroke-width="1.5"/><circle cx="588" cy="1062" r="2.5" fill="#9aa0a6"/>
    <circle cx="681" cy="1062" r="13" fill="#2e2e32"/><text x="681" y="1067" text-anchor="middle" font-size="14" font-weight="600" fill="#ffffff">5</text>
    <text x="702" y="1068">Filter cap</text>
  </g>

  <circle cx="305" cy="1272" r="13" fill="#2e2e32"/><text x="305" y="1277" text-anchor="middle" font-size="14" font-weight="600" fill="#ffffff">6</text>
  <text x="323" y="1278" font-size="19" fill="#3a3a3d">Stirrer</text>
  <circle cx="655" cy="1272" r="13" fill="#2e2e32"/><text x="655" y="1277" text-anchor="middle" font-size="14" font-weight="600" fill="#ffffff">7</text>
  <text x="673" y="1278" font-size="19" fill="#3a3a3d">Scoop</text>

  <text x="500" y="1338" text-anchor="middle" font-size="14" font-style="italic" fill="#a09a92">Filter seats inside the cap · cap screws onto the chamber base · plunger seals inside the chamber</text>
</svg>
round 1 of 2
Exploded AeroPress, by Pareto 26.10 Preview, the render after round 1
12What the model saw after each round. The picture above is the round that was scored, round 2.
gallery/Exploded AeroPress/Pareto 26.10 Preview, run 1

Exploded AeroPress: Pareto 26.10 Preview

modelunbiased/pareto-26.10-previewtaskexploded-aeropress@v1, checks c1, harness h1date2026-10-07rounds2 of 8 allowed, 12 minutes on the clockcost$0.1098thinkingmediumtokens42,032 in, 30,511 out, of which 0 reasoningtime2 min 20 sfailedAll five parts: incomplete, component missing, major, its note said this very thing was right · Stack order: false, relation transposed, critical, its note said this very thing was right · Parts fit: false, geometry distorted, major, paper filter 63% of filter cap, allowed 80% to 105%, 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 a number, from the filefail
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 an AeroPress coffee maker, as an SVG. Use the original model with a round paper filter rather than the Go or the XL.
Frozen at v1. This model got this and nothing else.
ground truth

Top to bottom: plunger, rubber seal, chamber, paper filter, filter cap. The seal sits on the plunger's lower end, and the paper filter sits in the cap below the chamber. Checked against AeroPress's replacement-parts pages, which sell the plunger with its seal, the chamber and the cap as the parts of the Original, and Wikipedia's description of the cap holding the filter at the chamber's bottom end. The stirrer and scoop are not part of the assembly. How it is scored, and this run's files on GitHub.