codex-default

2026-05-14T17-32-40Z_codex-default

Reference run: Codex CLI, OpenCode, or OpenRouter baseline, included as a comparison target rather than a local-model result.

pass Visual sample result
3/3 Automated checks
1/1 SVG artifact

Verdict

visual sample
pass

1 artifact · 3/3 checks · pass

no failure labels
Prompt set v1_city_plan_svg.json
Run type reference
Temperature 0
Top P 1
Missed tasks 0/1

SVG Artifacts

1 artifact · 3/3 checks · pass
city_plan_3d_buildings_svg 3/3 · v1_city_plan_svg.json open SVG
city_plan_3d_buildings_svg SVG output

Task Results

Compact view; open a row for prompt and raw answer
Task Category Score Failed Checks Failure Types Prompt / Answer
city_plan_3d_buildings_svg svg 3/3 none none
Open

Prompt

Generate a valid standalone SVG of a city plan with a 3D-style representation of buildings.

Rules:
- SVG only
- no Markdown
- no external images
- no JavaScript
- include roads or city blocks
- include multiple buildings
- make at least some buildings appear 3D or isometric
- use simple vector shapes

Model answer

<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="800" viewBox="0 0 1200 800" role="img" aria-label="Isometric 3D city plan with roads, blocks, parks, and buildings">
  <defs>
    <style>
      .road{fill:#5f6670}
      .road-line{stroke:#f3d56b;stroke-width:5;stroke-dasharray:28 22;stroke-linecap:round}
      .block{fill:#d7dccf;stroke:#aeb6a5;stroke-width:2}
      .park{fill:#8fc986;stroke:#5d9b58;stroke-width:2}
      .water{fill:#7eb7d9;stroke:#4c8fb5;stroke-width:2}
      .roof{fill:#dfe8ef;stroke:#6f7b86;stroke-width:2}
      .left{fill:#98a8b6;stroke:#6f7b86;stroke-width:2}
      .right{fill:#6f8294;stroke:#5c6c7a;stroke-width:2}
      .front{fill:#b9c6d1;stroke:#6f7b86;stroke-width:2}
      .window{fill:#f5d875;stroke:#7d8790;stroke-width:1}
      .tree{fill:#4f9b51}
      .trunk{fill:#8b6138}
    </style>
  </defs>

  <rect width="1200" height="800" fill="#eef1e8"/>

  <polygon points="0,130 1200,130 1200,245 0,245" class="road"/>
  <polygon points="0,525 1200,525 1200,640 0,640" class="road"/>
  <polygon points="165,0 280,0 280,800 165,800" class="road"/>
  <polygon points="705,0 820,0 820,800 705,800" class="road"/>
  <polygon points="-40,760 760,-40 850,50 50,850" class="road"/>

  <line x1="0" y1="187" x2="1200" y2="187" class="road-line"/>
  <line x1="0" y1="582" x2="1200" y2="582" class="road-line"/>
  <line x1="222" y1="0" x2="222" y2="800" class="road-line"/>
  <line x1="762" y1="0" x2="762" y2="800" class="road-line"/>
  <line x1="5" y1="715" x2="805" y2="-85" class="road-line"/>

  <rect x="20" y="20" width="125" height="90" rx="6" class="block"/>
  <rect x="310" y="25" width="355" height="85" rx="6" class="block"/>
  <rect x="845" y="25" width="320" height="85" rx="6" class="block"/>
  <rect x="20" y="270" width="125" height="230" rx="6" class="block"/>
  <rect x="310" y="270" width="360" height="230" rx="6" class="block"/>
  <rect x="845" y="270" width="320" height="230" rx="6" class="block"/>
  <rect x="20" y="665" width="125" height="110" rx="6" class="block"/>
  <rect x="310" y="665" width="360" height="110" rx="6" class="block"/>
  <rect x="845" y="665" width="320" height="110" rx="6" class="block"/>

  <path d="M930 315 C1015 275 1115 300 1145 365 C1178 437 1104 480 1018 470 C930 460 875 386 930 315Z" class="water"/>
  <rect x="355" y="310" width="245" height="150" rx="12" class="park"/>
  <circle cx="395" cy="350" r="16" class="tree"/>
  <rect x="390" y="363" width="10" height="18" class="trunk"/>
  <circle cx="455" cy="405" r="18" class="tree"/>
  <rect x="450" y="420" width="10" height="18" class="trunk"/>
  <circle cx="540" cy="355" r="15" class="tree"/>
  <rect x="535" y="368" width="10" height="18" class="trunk"/>
  <path d="M375 430 C430 390 500 435 580 385" fill="none" stroke="#f5e8ba" stroke-width="10" stroke-linecap="round"/>

  <g transform="translate(60 70)">
    <polygon points="0,35 55,0 120,35 65,70" class="roof"/>
    <polygon points="0,35 65,70 65,155 0,120" class="left"/>
    <polygon points="65,70 120,35 120,120 65,155" class="right"/>
    <rect x="18" y="62" width="14" height="18" class="window"/>
    <rect x="42" y="75" width="14" height="18" class="window"/>
    <rect x="82" y="66" width="14" height="18" class="window"/>
    <rect x="100" y="56" width="14" height="18" class="window"/>
  </g>

  <g transform="translate(370 90)">
    <polygon points="0,50 70,10 155,55 82,98" class="roof"/>
    <polygon points="0,50 82,98 82,210 0,162" class="left"/>
    <polygon points="82,98 155,55 155,166 82,210" class="right"/>
    <rect x="20" y="85" width="16" height="20" class="window"/>
    <rect x="48" y="102" width="16" height="20" class="window"/>
    <rect x="20" y="125" width="16" height="20" class="window"/>
    <rect x="112" y="90" width="16" height="20" class="window"/>
    <rect x="135" y="78" width="16" height="20" class="window"/>
    <rect x="112" y="128" width="16" height="20" class="window"/>
  </g>

  <g transform="translate(535 55)">
    <polygon points="0,42 60,8 130,44 70,80" fill="#eadbb2" stroke="#7f7256" stroke-width="2"/>
    <polygon points="0,42 70,80 70,150 0,112" fill="#c9b47e" stroke="#7f7256" stroke-width="2"/>
    <polygon points="70,80 130,44 130,114 70,150" fill="#a68f5c" stroke="#7f7256" stroke-width="2"/>
    <rect x="20" y="76" width="16" height="18" class="window"/>
    <rect x="45" y="90" width="16" height="18" class="window"/>
    <rect x="95" y="75" width="16" height="18" class="window"/>
  </g>

  <g transform="translate(895 90)">
    <polygon points="0,65 80,18 175,68 92,118" class="roof"/>
    <polygon points="0,65 92,118 92,270 0,217" class="left"/>
    <polygon points="92,118 175,68 175,220 92,270" class="right"/>
    <rect x="25" y="107" width="18" height="22" class="window"/>
    <rect x="58" y="126" width="18" height="22" class="window"/>
    <rect x="25" y="157" width="18" height="22" class="window"/>
    <rect x="58" y="176" width="18" height="22" class="window"/>
    <rect x="123" y="105" width="18" height="22" class="window"/>
    <rect x="150" y="90" width="18" height="22" class="window"/>
    <rect x="123" y="155" width="18" height="22" class="window"/>
    <rect x="150" y="140" width="18" height="22" class="window"/>
  </g>

  <g transform="translate(70 330)">
    <polygon points="0,38 58,5 120,40 63,75" fill="#e5c7c0" stroke="#8e6d67" stroke-width="2"/>
    <polygon points="0,38 63,75 63,145 0,108" fill="#c98f86" stroke="#8e6d67" stroke-width="2"/>
    <polygon points="63,75 120,40 120,110 63,145" fill="#ad746d" stroke="#8e6d67" stroke-width="2"/>
    <rect x="18" y="72" width="15" height="19" class="window"/>
    <rect x="42" y="86" width="15" height="19" class="window"/>
    <rect x="87" y="72" width="15" height="19" class="window"/>
  </g>

  <g transform="translate(420 375)">
    <polygon points="0,46 66,8 145,50 76,90" fill="#cfe4dc" stroke="#648276" stroke-width="2"/>
    <polygon points="0,46 76,90 76,180 0,136" fill="#8eb9aa" stroke="#648276" stroke-width="2"/>
    <polygon points="76,90 145,50 145,140 76,180" fill="#6e9d8c" stroke="#648276" stroke-width="2"/>
    <rect x="22" y="82" width="16" height="20" class="window"/>
    <rect x="49" y="98" width="16" height="20" class="window"/>
    <rect x="105" y="82" width="16" height="20" class="window"/>
    <rect x="126" y="70" width="16" height="20" class="window"/>
  </g>

  <g transform="translate(870 405)">
    <polygon points="0,34 50,4 112,36 62,68" class="roof"/>
    <polygon points="0,34 62,68 62,132 0,98" class="left"/>
    <polygon points="62,68 112,36 112,100 62,132" class="right"/>
    <rect x="18" y="64" width="14" height="17" class="window"/>
    <rect x="42" y="77" width="14" height="17" class="window"/>
    <rect x="84" y="63" width="14" height="17" class="window"/>
  </g>

  <g transform="translate(990 360)">
    <polygon points="0,48 68,10 145,50 76,92" fill="#d8d3ec" stroke="#746f91" stroke-width="2"/>
    <polygon points="0,48 76,92 76,245 0,201" fill="#aaa2d0" stroke="#746f91" stroke-width="2"/>
    <polygon points="76,92 145,50 145,203 76,245" fill="#8980b5" stroke="#746f91" stroke-width="2"/>
    <rect x="22" y="84" width="16" height="20" class="window"/>
    <rect x="49" y="100" width="16" height="20" class="window"/>
    <rect x="22" y="132" width="16" height="20" class="window"/>
    <rect x="49" y="148" width="16" height="20" class="window"/>
    <rect x="105" y="84" width="16" height="20" class="window"/>
    <rect x="126" y="72" width="16" height="20" class="window"/>
    <rect x="105" y="132" width="16" height="20" class="window"/>
  </g>

  <g transform="translate(355 690)">
    <polygon points="0,28 45,2 95,30 50,58" fill="#f0e0bd" stroke="#826f49" stroke-width="2"/>
    <polygon points="0,28 50,58 50,108 0,78" fill="#d0aa62" stroke="#826f49" stroke-width="2"/>
    <polygon points="50,58 95,30 95,80 50,108" fill="#b48d46" stroke="#826f49" stroke-width="2"/>
    <rect x="16" y="55" width="12" height="15" class="window"/>
    <rect x="36" y="67" width="12" height="15" class="window"/>
  </g>

  <g transform="translate(510 685)">
    <polygon points="0,36 52,5 112,38 58,70" class="roof"/>
    <polygon points="0,36 58,70 58,135 0,101" class="left"/>
    <polygon points="58,70 112,38 112,103 58,135" class="right"/>
    <rect x="17" y="66" width="13" height="17" class="window"/>
    <rect x="39" y="79" width="13" height="17" class="window"/>
    <rect x="82" y="64" width="13" height="17" class="window"/>
  </g>

  <g transform="translate(890 690)">
    <polygon points="0,30 48,4 102,33 54,62" fill="#c7e2f0" stroke="#5b7e90" stroke-width="2"/>
    <polygon points="0,30 54,62 54,125 0,93" fill="#80b6cf" stroke="#5b7e90" stroke-width="2"/>
    <polygon points="54,62 102,33 102,96 54,125" fill="#629ab5" stroke="#5b7e90" stroke-width="2"/>
    <rect x="17" y="62" width="13" height="17" class="window"/>
    <rect x="37" y="74" width="13" height="17" class="window"/>
    <rect x="76" y="60" width="13" height="17" class="window"/>
  </g>

  <g opacity="0.35">
    <ellipse cx="123" cy="235" rx="78" ry="18" fill="#3f454c"/>
    <ellipse cx="470" cy="300" rx="105" ry="22" fill="#3f454c"/>
    <ellipse cx="995" cy="372" rx="120" ry="24" fill="#3f454c"/>
    <ellipse cx="1070" cy="620" rx="105" ry="22" fill="#3f454c"/>
  </g>

  <g fill="#f7f3df" stroke="#7f8588" stroke-width="2">
    <rect x="170" y="178" width="105" height="18" rx="3"/>
    <rect x="710" y="572" width="105" height="18" rx="3"/>
    <rect x="214" y="523" width="18" height="105" rx="3"/>
    <rect x="754" y="128" width="18" height="105" rx="3"/>
  </g>
</svg>