SVG: exploded French press, by gpt-6-luna
gpt-6-luna · round 2 of 2 · seed 2$0.00SVGPNGpress.svg
press.svg · 127 lines
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="900" viewBox="0 0 1200 900">
  <defs>
    <linearGradient id="glass" x1="0" x2="1">
      <stop offset="0" stop-color="#dcebf0" stop-opacity=".42"/>
      <stop offset=".48" stop-color="#f8fcfc" stop-opacity=".14"/>
      <stop offset="1" stop-color="#b7d3dd" stop-opacity=".42"/>
    </linearGradient>
    <linearGradient id="steel" x1="0" x2="0" y1="0" y2="1">
      <stop stop-color="#fafcfd"/><stop offset=".48" stop-color="#cbd5dc"/><stop offset="1" stop-color="#8998a3"/>
    </linearGradient>
    <linearGradient id="wood" x1="0" x2="1" y1="0" y2="1">
      <stop stop-color="#bb8250"/><stop offset=".5" stop-color="#8f5e39"/><stop offset="1" stop-color="#68432e"/>
    </linearGradient>
    <pattern id="mesh" width="8" height="8" patternUnits="userSpaceOnUse">
      <path d="M0 0L8 8M8 0L0 8" fill="none" stroke="#738590" stroke-width=".65" opacity=".8"/>
    </pattern>
    <filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
      <feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#203b4a" flood-opacity=".12"/>
    </filter>
    <clipPath id="meshClip"><ellipse cx="570" cy="572" rx="111" ry="17"/></clipPath>
  </defs>
  <rect width="1200" height="900" fill="#fbfaf7"/>
  <path d="M54 123H1146" stroke="#d8d8d1" stroke-width="1"/>
  <text x="62" y="65" fill="#173546" font-family="Arial, Helvetica, sans-serif" font-size="32" font-weight="700" letter-spacing="1.3">FRENCH PRESS</text>
  <text x="64" y="96" fill="#73838a" font-family="Arial, Helvetica, sans-serif" font-size="13" letter-spacing="2.4">EXPLODED ASSEMBLY  /  THREE-PIECE PLUNGER FILTER</text>
  <text x="1137" y="75" text-anchor="end" fill="#9a9d98" font-family="Arial, Helvetica, sans-serif" font-size="11" letter-spacing="1.8">01 — COMPONENTS</text>

  <!-- vertical assembly axis -->
  <path d="M570 139V839" stroke="#c9ceca" stroke-width="1" stroke-dasharray="3 7"/>

  <!-- knob and plunger rod -->
  <g>
    <path d="M552 168 Q552 150 570 150 Q588 150 588 168 L584 179 Q570 187 556 179Z" fill="url(#wood)" stroke="#684b37" stroke-width="1.5"/>
    <ellipse cx="570" cy="150" rx="18" ry="7" fill="#c28a58" stroke="#684b37" stroke-width="1.4"/>
    <path d="M559 158 Q570 163 581 158" fill="none" stroke="#d4a477" stroke-width="1" opacity=".7"/>
  </g>
  <rect x="566" y="179" width="8" height="297" rx="3" fill="url(#steel)" stroke="#87959e" stroke-width="1"/>
  <path d="M568 184V475" stroke="#fff" stroke-width="1.2" opacity=".8"/>
  <path d="M562 473H578" stroke="#7e8e98" stroke-width="2"/>

  <!-- lid, shown separated from carafe -->
  <g>
    <path d="M450 391 Q570 370 690 391 L681 410 Q570 429 459 410Z" fill="url(#steel)" stroke="#788891" stroke-width="1.5"/>
    <ellipse cx="570" cy="391" rx="120" ry="20" fill="#e8edef" stroke="#788891" stroke-width="1.5"/>
    <ellipse cx="570" cy="391" rx="15" ry="5" fill="#fbfaf7" stroke="#87959e" stroke-width="1.2"/>
    <path d="M455 397 Q570 417 685 397" fill="none" stroke="#fff" stroke-width="2" opacity=".8"/>
  </g>

  <!-- 1: perimeter spiral spring / spiral plate -->
  <g fill="none" stroke="#657883" stroke-width="2.3" stroke-linecap="round">
    <ellipse cx="570" cy="476" rx="113" ry="19"/>
    <path d="M457 476 C461 465 465 487 469 476 S477 465 481 476 S489 487 493 476 S501 465 505 476 S513 487 517 476 S525 465 529 476 S537 487 541 476 S549 465 553 476 S561 487 565 476 S573 465 577 476 S585 487 589 476 S597 465 601 476 S609 487 613 476 S621 465 625 476 S633 487 637 476 S645 465 649 476 S657 487 661 476 S669 465 673 476 S681 487 685 476" stroke-width="1.8"/>
    <ellipse cx="570" cy="476" rx="104" ry="14" stroke="#a1adb3" stroke-width="1"/>
  </g>
  <path d="M570 477V482" stroke="#7d8b92" stroke-width="3"/>

  <!-- 2: fine wire mesh screen -->
  <ellipse cx="570" cy="572" rx="111" ry="17" fill="url(#steel)" stroke="#657883" stroke-width="1.5"/>
  <g clip-path="url(#meshClip)" opacity=".95">
    <rect x="455" y="550" width="230" height="45" fill="url(#mesh)"/>
    <path d="M459 572 Q570 592 681 572" fill="none" stroke="#465e6b" stroke-width="1.2"/>
  </g>
  <ellipse cx="570" cy="572" rx="111" ry="17" fill="none" stroke="#657883" stroke-width="1.5"/>
  <ellipse cx="570" cy="572" rx="13" ry="4" fill="#fbfaf7" stroke="#687983" stroke-width="1.2"/>

  <!-- 3: cross plate, with radial support arms and threaded center -->
  <path d="M459 659 Q570 678 681 659 L681 669 Q570 691 459 669Z" fill="url(#steel)" stroke="#657883" stroke-width="1.5"/>
  <ellipse cx="570" cy="659" rx="111" ry="18" fill="#e8edef" stroke="#657883" stroke-width="1.5"/>
  <g stroke="#778992" stroke-width="3" stroke-linecap="round">
    <path d="M475 659L665 659"/><path d="M501 649L639 669"/><path d="M501 669L639 649"/>
    <path d="M535 645L605 673"/><path d="M535 673L605 645"/>
  </g>
  <ellipse cx="570" cy="659" rx="15" ry="5.5" fill="url(#steel)" stroke="#596d78" stroke-width="1.3"/>
  <circle cx="570" cy="659" r="3" fill="#667983"/>

  <!-- glass carafe -->
  <g>
    <path d="M463 728 Q570 743 677 728 L665 818 Q662 838 644 842 H496 Q478 838 475 818Z" fill="url(#glass)" stroke="#7794a0" stroke-width="2"/>
    <ellipse cx="570" cy="728" rx="107" ry="17" fill="#f7fbfa" fill-opacity=".72" stroke="#7794a0" stroke-width="2"/>
    <ellipse cx="570" cy="731" rx="96" ry="11" fill="none" stroke="#b1c8ce" stroke-width="1.2"/>
    <path d="M478 818 Q570 833 663 818" fill="none" stroke="#7794a0" stroke-width="2"/>
    <path d="M494 747 L501 813" stroke="#fff" stroke-width="5" opacity=".75"/>
    <path d="M649 746 L642 809" stroke="#b1cbd2" stroke-width="3" opacity=".8"/>
    <!-- spout -->
    <path d="M463 729 Q445 721 434 709 Q442 733 466 742" fill="url(#glass)" stroke="#7794a0" stroke-width="1.7"/>
    <!-- handle -->
    <path d="M674 746 C742 733 765 758 765 786 C765 817 742 837 665 824" fill="none" stroke="#7794a0" stroke-width="13" stroke-linecap="round"/>
    <path d="M675 747 C733 739 750 758 750 785 C750 808 731 824 667 817" fill="none" stroke="#fbfaf7" stroke-width="7" stroke-linecap="round"/>
    <path d="M678 750 C724 745 739 761 739 783" fill="none" stroke="#d6e7e9" stroke-width="2"/>
  </g>

  <!-- callouts and labels -->
  <g font-family="Arial, Helvetica, sans-serif">
    <g fill="#173546" font-size="12" font-weight="700" letter-spacing="1.1">
      <text x="78" y="162">WOOD KNOB</text>
      <text x="78" y="376">LID</text>
      <text x="78" y="746">GLASS CARAFE</text>
      <text x="849" y="231">PLUNGER ROD</text>
      <text x="849" y="463">1  SPIRAL PLATE</text>
      <text x="849" y="556">2  FILTER MESH</text>
      <text x="849" y="643">3  CROSS PLATE</text>
    </g>
    <g fill="#78888d" font-size="11" letter-spacing=".4">
      <text x="78" y="180">turned hardwood grip</text>
      <text x="78" y="394">metal cover with rod opening</text>
      <text x="78" y="764">heat-resistant beaker + handle</text>
      <text x="849" y="249">stainless steel shaft</text>
      <text x="849" y="481">outer coil retains the screen</text>
      <text x="849" y="574">fine woven wire disc</text>
      <text x="849" y="661">radial support beneath mesh</text>
    </g>
    <g fill="none" stroke="#9aa6a5" stroke-width="1.1">
      <path d="M218 158H390L552 160"/><path d="M117 372H340L450 391"/>
      <path d="M203 742H376L464 767"/><path d="M849 227H765L574 271"/>
      <path d="M849 459H767L684 476"/><path d="M849 552H765L681 572"/>
      <path d="M849 639H765L681 659"/>
    </g>
    <g fill="#c18b56">
      <circle cx="552" cy="160" r="3"/><circle cx="450" cy="391" r="3"/><circle cx="464" cy="767" r="3"/>
      <circle cx="574" cy="271" r="3"/><circle cx="684" cy="476" r="3"/><circle cx="681" cy="572" r="3"/><circle cx="681" cy="659" r="3"/>
    </g>
  </g>
  <path d="M62 866H1138" stroke="#d8d8d1" stroke-width="1"/>
  <text x="63" y="886" fill="#9a9d98" font-family="Arial, Helvetica, sans-serif" font-size="10" letter-spacing="1.5">FILTER STACK SHOWN SEPARATED FOR CLARITY</text>
  <text x="1137" y="886" text-anchor="end" fill="#9a9d98" font-family="Arial, Helvetica, sans-serif" font-size="10" letter-spacing="1.5">ASSEMBLY ORDER: 1 → 2 → 3</text>
</svg>
round 1 of 2
Exploded French press, by GPT-6 Luna, 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 French press/GPT-6 Luna, run 2

Exploded French press: GPT-6 Luna

modelopenai/gpt-6-lunatasksvg-french-press@v2, checks c1, harness h1date2026-10-03rounds2 of 8 allowed, 12 minutes on the clockcost$0.0037thinkingmediumtokens38,063 in, 4,831 out, of which 1,241 reasoningtime58 s
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 filepass
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

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 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.