SVG: exploded French press, by mistral-large-4-0
mistral-large-4-0 · round 1 · seed 2$0.07SVGPNGpress.svg
press.svg · 171 lines
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="1220" viewBox="0 0 1000 1220">
  <defs>
    <linearGradient id="rodG" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#c9c9c9"/>
      <stop offset="0.35" stop-color="#f2f2f2"/>
      <stop offset="0.7" stop-color="#9a9a9a"/>
      <stop offset="1" stop-color="#c2c2c2"/>
    </linearGradient>
    <radialGradient id="knobG" cx="0.35" cy="0.3" r="0.95">
      <stop offset="0" stop-color="#6e6e6e"/>
      <stop offset="0.55" stop-color="#2f2f2f"/>
      <stop offset="1" stop-color="#101010"/>
    </radialGradient>
    <linearGradient id="plateG" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#f8f8f8"/>
      <stop offset="0.6" stop-color="#d6d6d6"/>
      <stop offset="1" stop-color="#a9a9a9"/>
    </linearGradient>
    <linearGradient id="glassG" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#e2f2fa" stop-opacity="0.55"/>
      <stop offset="1" stop-color="#b9d9e8" stop-opacity="0.55"/>
    </linearGradient>
    <pattern id="mesh" width="5" height="5" patternUnits="userSpaceOnUse">
      <rect width="5" height="5" fill="#e4e4e4"/>
      <path d="M0,0 H5 M0,0 V5" stroke="#8a8a8a" stroke-width="0.7" fill="none"/>
    </pattern>
    <pattern id="perf" width="19" height="11" patternUnits="userSpaceOnUse">
      <circle cx="9.5" cy="5.5" rx="4.2" ry="2.4" fill="#6f6f6f"/>
    </pattern>
  </defs>

  <rect width="1000" height="1220" fill="#ffffff"/>

  <g font-family="Arial, Helvetica, sans-serif">
    <text x="500" y="46" text-anchor="middle" font-size="30" font-weight="700" fill="#1a1a1a">French Press — Exploded Assembly</text>
    <text x="500" y="72" text-anchor="middle" font-size="16" fill="#777">Three-piece plunger filter: cross plate · mesh · coil spring</text>
  </g>

  <!-- assembly axis -->
  <line x1="380" y1="95" x2="380" y2="1135" stroke="#b5b5b5" stroke-width="1.5" stroke-dasharray="10 8"/>

  <!-- 1 · knob -->
  <g>
    <path d="M336,118 A44,13 0 0 0 424,118 C424,148 408,162 380,162 C352,162 336,148 336,118 Z" fill="url(#knobG)"/>
    <ellipse cx="380" cy="118" rx="44" ry="13" fill="#454545"/>
    <ellipse cx="371" cy="115" rx="24" ry="6.5" fill="#8a8a8a" opacity="0.45"/>
    <rect x="371" y="158" width="18" height="14" rx="3" fill="url(#rodG)" stroke="#8a8a8a" stroke-width="0.75"/>
  </g>

  <!-- 2 · plunger rod -->
  <g>
    <rect x="376" y="172" width="8" height="393" fill="url(#rodG)" stroke="#8f8f8f" stroke-width="0.75"/>
    <line x1="378" y1="176" x2="378" y2="560" stroke="#ffffff" stroke-width="1.5" opacity="0.5"/>
    <rect x="373.5" y="500" width="13" height="58" rx="2" fill="url(#rodG)" stroke="#8f8f8f" stroke-width="0.75"/>
    <path d="M374,508 h12 M374,516 h12 M374,524 h12 M374,532 h12 M374,540 h12 M374,548 h12 M374,556 h12" stroke="#7c7c7c" stroke-width="1.2" fill="none"/>
  </g>

  <!-- 3 · cross plate (perforated) -->
  <g>
    <path d="M262,605 L262,619 A118,20 0 0 0 498,619 L498,605 Z" fill="#a6a6a6"/>
    <ellipse cx="380" cy="605" rx="118" ry="20" fill="url(#plateG)"/>
    <ellipse cx="380" cy="605" rx="118" ry="20" fill="url(#perf)"/>
    <ellipse cx="380" cy="605" rx="118" ry="20" fill="none" stroke="#8a8a8a" stroke-width="1.5"/>
    <ellipse cx="380" cy="605" rx="104" ry="17" fill="none" stroke="#bdbdbd" stroke-width="1"/>
    <ellipse cx="380" cy="605" rx="13" ry="4.5" fill="#8f8f8f" stroke="#6f6f6f" stroke-width="1"/>
  </g>

  <!-- 4 · mesh filter -->
  <g>
    <path d="M260,695 L260,701 A120,20 0 0 0 500,701 L500,695 Z" fill="#adadad"/>
    <ellipse cx="380" cy="695" rx="120" ry="20" fill="url(#mesh)"/>
    <ellipse cx="380" cy="695" rx="120" ry="20" fill="none" stroke="#8f8f8f" stroke-width="3"/>
    <ellipse cx="380" cy="695" rx="111" ry="17.5" fill="none" stroke="#9a9a9a" stroke-width="1"/>
    <ellipse cx="380" cy="695" rx="10" ry="3.5" fill="#cfcfcf" stroke="#8a8a8a" stroke-width="1"/>
  </g>

  <!-- 5 · coil spring disc -->
  <g>
    <path d="M260,775 L260,785 A120,20 0 0 0 500,785 L500,775 Z" fill="#9e9e9e"/>
    <ellipse cx="380" cy="775" rx="120" ry="20" fill="#c6c6c6" stroke="#8a8a8a" stroke-width="1.5"/>
    <g fill="none" stroke="#7b7b7b" stroke-width="3">
      <ellipse cx="380" cy="775" rx="102" ry="17"/>
      <ellipse cx="380" cy="775" rx="84" ry="14"/>
      <ellipse cx="380" cy="775" rx="66" ry="11"/>
      <ellipse cx="380" cy="775" rx="48" ry="8"/>
      <ellipse cx="380" cy="775" rx="30" ry="5"/>
    </g>
    <ellipse cx="380" cy="775" rx="12" ry="2.5" fill="#8a8a8a"/>
  </g>

  <!-- 6 · lid -->
  <g>
    <path d="M244,845 L244,851 A136,18 0 0 0 516,851 L516,845 Z" fill="#a6a6a6"/>
    <ellipse cx="380" cy="845" rx="136" ry="18" fill="url(#plateG)" stroke="#8a8a8a" stroke-width="1.5"/>
    <ellipse cx="380" cy="845" rx="10" ry="3.5" fill="#ffffff" stroke="#8a8a8a" stroke-width="1.5"/>
  </g>

  <!-- 7 · carafe -->
  <g>
    <ellipse cx="380" cy="1116" rx="138" ry="10" fill="#000000" opacity="0.07"/>
    <path d="M244,905 C242,972 248,1042 258,1083 L502,1083 C512,1042 518,972 516,905 A136,18 0 0 1 244,905 Z" fill="url(#glassG)" stroke="#7fa8bd" stroke-width="2.5"/>
    <path d="M258,1083 L502,1083 L501,1101 A121,12 0 0 1 259,1101 Z" fill="#a9cfe0" opacity="0.65" stroke="#7fa8bd" stroke-width="2"/>
    <ellipse cx="380" cy="905" rx="136" ry="18" fill="#dceef7" opacity="0.5" stroke="#7fa8bd" stroke-width="2.5"/>
    <ellipse cx="380" cy="905" rx="120" ry="13" fill="#f2fafd" opacity="0.95" stroke="#9cc0d2" stroke-width="1.5"/>
    <path d="M248,900 Q236,896 227,887 Q242,889 254,894 Z" fill="#cfe6f2" opacity="0.75" stroke="#7fa8bd" stroke-width="1.5"/>
    <path d="M514,939 C577,937 593,965 593,996 C593,1027 577,1055 512,1053" fill="none" stroke="#9fc3d4" stroke-width="15" stroke-linecap="round" opacity="0.85"/>
    <path d="M514,939 C577,937 593,965 593,996 C593,1027 577,1055 512,1053" fill="none" stroke="#dceef7" stroke-width="5" stroke-linecap="round" opacity="0.7"/>
    <line x1="270" y1="935" x2="274" y2="1060" stroke="#ffffff" stroke-width="6" stroke-linecap="round" opacity="0.35"/>
    <line x1="286" y1="950" x2="288" y2="1045" stroke="#ffffff" stroke-width="2.5" stroke-linecap="round" opacity="0.3"/>
  </g>

  <!-- labels -->
  <g font-family="Arial, Helvetica, sans-serif">
    <g stroke="#9a9a9a" stroke-width="1.2">
      <line x1="428" y1="135" x2="656" y2="135"/>
      <line x1="386" y1="350" x2="656" y2="350"/>
      <line x1="500" y1="605" x2="656" y2="605"/>
      <line x1="502" y1="695" x2="656" y2="695"/>
      <line x1="502" y1="775" x2="656" y2="775"/>
      <line x1="518" y1="845" x2="656" y2="845"/>
      <line x1="598" y1="985" x2="656" y2="985"/>
    </g>
    <g fill="#9a9a9a">
      <circle cx="428" cy="135" r="3"/>
      <circle cx="386" cy="350" r="3"/>
      <circle cx="500" cy="605" r="3"/>
      <circle cx="502" cy="695" r="3"/>
      <circle cx="502" cy="775" r="3"/>
      <circle cx="518" cy="845" r="3"/>
      <circle cx="598" cy="985" r="3"/>
    </g>
    <g fill="#3d3d3d">
      <circle cx="672" cy="135" r="13"/>
      <circle cx="672" cy="350" r="13"/>
      <circle cx="672" cy="605" r="13"/>
      <circle cx="672" cy="695" r="13"/>
      <circle cx="672" cy="775" r="13"/>
      <circle cx="672" cy="845" r="13"/>
      <circle cx="672" cy="985" r="13"/>
    </g>
    <g font-size="14" font-weight="700" fill="#ffffff" text-anchor="middle">
      <text x="672" y="140">1</text>
      <text x="672" y="355">2</text>
      <text x="672" y="610">3</text>
      <text x="672" y="700">4</text>
      <text x="672" y="780">5</text>
      <text x="672" y="850">6</text>
      <text x="672" y="990">7</text>
    </g>
    <g font-size="21" font-weight="600" fill="#222222">
      <text x="694" y="141">Knob</text>
      <text x="694" y="356">Plunger rod</text>
      <text x="694" y="611">Cross plate</text>
      <text x="694" y="701">Mesh filter</text>
      <text x="694" y="781">Coil spring</text>
      <text x="694" y="851">Lid</text>
      <text x="694" y="991">Carafe</text>
    </g>
    <g font-size="15" fill="#777777">
      <text x="694" y="161">heat-insulated handle</text>
      <text x="694" y="376">stainless steel</text>
      <text x="694" y="631">perforated disc</text>
      <text x="694" y="721">fine stainless mesh</text>
      <text x="694" y="801">retains mesh &amp; plate</text>
      <text x="694" y="871">fits carafe mouth</text>
      <text x="694" y="1011">borosilicate glass</text>
    </g>
    <text x="40" y="1160" font-size="13" fill="#999999">dashed line = assembly axis</text>
  </g>
</svg>
gallery/Exploded French press/Mistral Large 4, run 2

Exploded French press: Mistral Large 4

modelmistralai/mistral-large-4-0tasksvg-french-press@v2, checks c1, harness h1date2026-10-07rounds1 of 8 allowed, 12 minutes on the clockcost$0.0716thinkingmediumtokens44,634 in, 20,016 out, of which 13,015 reasoningtime12 min 0 sfailedStack order: false, relation transposed, critical, cause: clock, 6 pairs out of order, its note left no closing note

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 seven partsdecided by looking · Pass if all seven are drawn as separate shapes and each has a label naming it. A part that is only named in a label or a comment, with nothing drawn, fails it.pass
Stack orderdecided by a number, from the filefail
Filter fits the glassdecided by a number, from the filepass
One assembly axisdecided by looking · Pass if one vertical line runs through the middle of every part, and every leader line leaves from the same side. One part pushed off to the side 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
read the post
its other runs
the prompt it was given
Draw an exploded assembly diagram of a French press, as an SVG. Use the standard three-piece plunger filter rather than a two-piece travel press.
Frozen at v2. This model got this and nothing else.
ground truth

The standard three-piece plunger, from the top down: spiral (spring) plate, mesh screen, cross-plate. The cross-plate is the bottom piece, because its threaded stem is what the rod screws into. The spiral plate above the mesh is what presses the mesh edge out against the glass. Checked against the WebstaurantStore anatomy diagram, which is drawn exploded and labelled, and against each part's y coordinate in the SVG rather than its comment. Two-piece travel presses exist and stack differently, which is why v2 of the prompt names the design. How it is scored, and this run's files on GitHub.