Skip to content

Instantly share code, notes, and snippets.

@simonw
Created March 17, 2026 19:27
Show Gist options
  • Select an option

  • Save simonw/f16292d9a5b90b28054cff3ba497a3ca to your computer and use it in GitHub Desktop.

Select an option

Save simonw/f16292d9a5b90b28054cff3ba497a3ca to your computer and use it in GitHub Desktop.

2026-03-17T17:36:11 conversation: 01kkydxynky2zwhxmym6m2q8hf id: 01kkydx51jdpdx97vtxcf0pgw4

Model: gpt-5.4

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: none

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" width="800" height="500">
  <rect width="100%" height="100%" fill="#dff3ff"/>
  <rect y="380" width="800" height="120" fill="#d7e8c4"/>
  <line x1="0" y1="390" x2="800" y2="390" stroke="#8aa06b" stroke-width="4"/>

  <!-- Bike -->
  <g stroke-linecap="round" stroke-linejoin="round">
    <circle cx="240" cy="360" r="72" fill="none" stroke="#333" stroke-width="8"/>
    <circle cx="520" cy="360" r="72" fill="none" stroke="#333" stroke-width="8"/>

    <!-- spokes -->
    <g stroke="#777" stroke-width="3">
      <line x1="240" y1="360" x2="240" y2="288"/>
      <line x1="240" y1="360" x2="291" y2="309"/>
      <line x1="240" y1="360" x2="312" y2="360"/>
      <line x1="240" y1="360" x2="291" y2="411"/>
      <line x1="240" y1="360" x2="240" y2="432"/>
      <line x1="240" y1="360" x2="189" y2="411"/>
      <line x1="240" y1="360" x2="168" y2="360"/>
      <line x1="240" y1="360" x2="189" y2="309"/>

      <line x1="520" y1="360" x2="520" y2="288"/>
      <line x1="520" y1="360" x2="571" y2="309"/>
      <line x1="520" y1="360" x2="592" y2="360"/>
      <line x1="520" y1="360" x2="571" y2="411"/>
      <line x1="520" y1="360" x2="520" y2="432"/>
      <line x1="520" y1="360" x2="469" y2="411"/>
      <line x1="520" y1="360" x2="448" y2="360"/>
      <line x1="520" y1="360" x2="469" y2="309"/>
    </g>

    <!-- frame -->
    <g fill="none" stroke="#2b5d8a" stroke-width="8">
      <line x1="240" y1="360" x2="350" y2="280"/>
      <line x1="350" y1="280" x2="410" y2="360"/>
      <line x1="410" y1="360" x2="240" y2="360"/>
      <line x1="350" y1="280" x2="470" y2="280"/>
      <line x1="470" y1="280" x2="520" y2="360"/>
      <line x1="410" y1="360" x2="520" y2="360"/>
      <line x1="410" y1="360" x2="470" y2="280"/>
    </g>

    <!-- seat -->
    <line x1="350" y1="280" x2="350" y2="245" stroke="#333" stroke-width="6"/>
    <path d="M330 242 Q350 232 370 242" fill="none" stroke="#333" stroke-width="6"/>

    <!-- handlebars -->
    <line x1="470" y1="280" x2="480" y2="230" stroke="#333" stroke-width="6"/>
    <path d="M460 228 Q485 214 510 226" fill="none" stroke="#333" stroke-width="6"/>

    <!-- crank -->
    <circle cx="410" cy="360" r="12" fill="#444"/>
    <line x1="410" y1="360" x2="445" y2="340" stroke="#444" stroke-width="6"/>
    <line x1="410" y1="360" x2="380" y2="386" stroke="#444" stroke-width="6"/>
    <line x1="445" y1="340" x2="460" y2="340" stroke="#444" stroke-width="6"/>
    <line x1="380" y1="386" x2="365" y2="386" stroke="#444" stroke-width="6"/>
  </g>

  <!-- Pelican -->
  <g>
    <!-- body -->
    <ellipse cx="360" cy="205" rx="95" ry="62" fill="#f4f1e8" stroke="#5d5d5d" stroke-width="4"/>
    <!-- wing -->
    <path d="M315 205 Q355 160 405 200 Q375 245 320 235 Z"
          fill="#d9d4c8" stroke="#5d5d5d" stroke-width="3"/>

    <!-- neck -->
    <path d="M420 185
             Q455 150 480 135
             Q500 122 515 132
             Q500 150 477 168
             Q455 186 438 210 Z"
          fill="#f4f1e8" stroke="#5d5d5d" stroke-width="4"/>

    <!-- head -->
    <ellipse cx="530" cy="125" rx="34" ry="26" fill="#f4f1e8" stroke="#5d5d5d" stroke-width="4"/>

    <!-- beak upper -->
    <path d="M555 127 L670 112 Q686 110 690 118 Q694 126 678 131 L560 139 Z"
          fill="#f0b24a" stroke="#7a5a24" stroke-width="4"/>
    <!-- beak pouch -->
    <path d="M556 139 Q620 180 670 150 Q628 152 560 150 Z"
          fill="#f5d2a6" stroke="#7a5a24" stroke-width="4"/>

    <!-- eye -->
    <circle cx="540" cy="119" r="4.5" fill="#222"/>
    <circle cx="541.5" cy="117.5" r="1.2" fill="#fff"/>

    <!-- legs -->
    <g stroke="#c47c2e" stroke-width="6" stroke-linecap="round" fill="none">
      <line x1="335" y1="250" x2="410" y2="360"/>
      <line x1="400" y1="248" x2="476" y2="231"/>
      <line x1="476" y1="231" x2="520" y2="360"/>
    </g>

    <!-- feet on pedals -->
    <g fill="#e08a3a" stroke="#9a5b1f" stroke-width="3">
      <ellipse cx="365" cy="386" rx="14" ry="7"/>
      <ellipse cx="460" cy="340" rx="14" ry="7"/>
    </g>

    <!-- tail -->
    <path d="M268 205 Q240 195 228 215 Q250 225 272 222 Z"
          fill="#d9d4c8" stroke="#5d5d5d" stroke-width="3"/>
  </g>

  <!-- little sun -->
  <g opacity="0.9">
    <circle cx="90" cy="85" r="34" fill="#ffd65a"/>
    <g stroke="#ffd65a" stroke-width="5">
      <line x1="90" y1="30" x2="90" y2="10"/>
      <line x1="90" y1="140" x2="90" y2="160"/>
      <line x1="35" y1="85" x2="15" y2="85"/>
      <line x1="145" y1="85" x2="165" y2="85"/>
      <line x1="50" y1="45" x2="35" y2="30"/>
      <line x1="130" y1="125" x2="145" y2="140"/>
      <line x1="130" y1="45" x2="145" y2="30"/>
      <line x1="50" y1="125" x2="35" y2="140"/>
    </g>
  </g>
</svg>

Token usage

16 input, 1,953 output

2026-03-17T17:58:10 conversation: 01kkyfddgygjz7fy06y9vw4834 id: 01kkyf5d7cx0dbjtswr6b46xjd

Model: gpt-5.4-nano

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: xhigh

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600" width="800" height="600">
  <title>Pelican riding a bicycle</title>
  <desc>Stylized illustration of a pelican pedaling a bicycle.</desc>

  <defs>
    <linearGradient id="skyGrad" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#bfe9ff"/>
      <stop offset="100%" stop-color="#f3fbff"/>
    </linearGradient>
    <linearGradient id="sunGrad" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#ffe9a8"/>
      <stop offset="100%" stop-color="#ffc84a"/>
    </linearGradient>
  </defs>

  <rect width="800" height="600" fill="url(#skyGrad)"/>
  <circle cx="120" cy="90" r="55" fill="url(#sunGrad)" opacity="0.95"/>
  <circle cx="120" cy="90" r="70" fill="#ffd76a" opacity="0.2"/>

  <rect x="0" y="500" width="800" height="100" fill="#78c96a"/>
  <path d="M0 520 C140 500 240 550 400 520 C560 490 670 555 800 505 L800 600 L0 600 Z" fill="#63b85a" opacity="0.7"/>
  <ellipse cx="400" cy="520" rx="260" ry="28" fill="#000" opacity="0.10"/>

  <!-- Wheels -->
  <g id="wheels">
    <g transform="translate(240 430)">
      <circle r="78" fill="none" stroke="#1b1b1b" stroke-width="10"/>
      <circle r="64" fill="none" stroke="#1b1b1b" stroke-width="4"/>
      <circle r="22" fill="none" stroke="#1b1b1b" stroke-width="4" opacity="0.85"/>
      <g stroke="#343434" stroke-width="3" stroke-linecap="round">
        <line x1="0" y1="0" x2="0" y2="-75"/>
        <line x1="0" y1="0" x2="53" y2="-53"/>
        <line x1="0" y1="0" x2="75" y2="0"/>
        <line x1="0" y1="0" x2="53" y2="53"/>
        <line x1="0" y1="0" x2="0" y2="75"/>
        <line x1="0" y1="0" x2="-53" y2="53"/>
        <line x1="0" y1="0" x2="-75" y2="0"/>
        <line x1="0" y1="0" x2="-53" y2="-53"/>
      </g>
      <circle r="10" fill="#1b1b1b"/>
      <circle r="4" fill="#f3f3f3" opacity="0.7"/>
    </g>

    <g transform="translate(560 430)">
      <circle r="78" fill="none" stroke="#1b1b1b" stroke-width="10"/>
      <circle r="64" fill="none" stroke="#1b1b1b" stroke-width="4"/>
      <circle r="22" fill="none" stroke="#1b1b1b" stroke-width="4" opacity="0.85"/>
      <g stroke="#343434" stroke-width="3" stroke-linecap="round">
        <line x1="0" y1="0" x2="0" y2="-75"/>
        <line x1="0" y1="0" x2="53" y2="-53"/>
        <line x1="0" y1="0" x2="75" y2="0"/>
        <line x1="0" y1="0" x2="53" y2="53"/>
        <line x1="0" y1="0" x2="0" y2="75"/>
        <line x1="0" y1="0" x2="-53" y2="53"/>
        <line x1="0" y1="0" x2="-75" y2="0"/>
        <line x1="0" y1="0" x2="-53" y2="-53"/>
      </g>
      <circle r="10" fill="#1b1b1b"/>
      <circle r="4" fill="#f3f3f3" opacity="0.7"/>
    </g>
  </g>

  <!-- Bike -->
  <g id="bike">
    <!-- Seat -->
    <ellipse cx="405" cy="300" rx="36" ry="10" fill="#202020" stroke="#1b1b1b" stroke-width="3"/>
    <path d="M378 301 C392 292 420 292 432 303" fill="none" stroke="#3a3a3a" stroke-width="4" stroke-linecap="round" opacity="0.7"/>

    <!-- Frame -->
    <g id="frame" fill="none" stroke="#1b1b1b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round">
      <!-- rear triangle -->
      <line x1="405" y1="300" x2="245" y2="430"/>
      <line x1="430" y1="410" x2="245" y2="430"/>
      <line x1="405" y1="300" x2="430" y2="410"/>

      <!-- front triangle -->
      <line x1="405" y1="300" x2="520" y2="360"/>
      <line x1="520" y1="360" x2="430" y2="410"/>
      <line x1="520" y1="360" x2="560" y2="430"/>
      <line x1="535" y1="385" x2="560" y2="430"/>

      <!-- handlebar -->
      <line x1="520" y1="360" x2="545" y2="330"/>
      <line x1="545" y1="330" x2="520" y2="320"/>
      <line x1="545" y1="330" x2="575" y2="325"/>

      <!-- small brace -->
      <line x1="245" y1="430" x2="265" y2="410" opacity="0.8"/>
    </g>

    <!-- Crank & pedals -->
    <g id="crank" stroke="#1b1b1b" stroke-linecap="round" stroke-linejoin="round">
      <circle cx="430" cy="410" r="18" fill="#2a2a2a" stroke-width="6"/>
      <circle cx="430" cy="410" r="6" fill="#1b1b1b"/>

      <line x1="430" y1="410" x2="405" y2="445" stroke-width="8"/>
      <line x1="430" y1="410" x2="455" y2="445" stroke-width="8"/>

      <ellipse cx="405" cy="445" rx="16" ry="9" fill="#d6d6d6" stroke-width="3" transform="rotate(-20 405 445)"/>
      <ellipse cx="455" cy="445" rx="16" ry="9" fill="#d6d6d6" stroke-width="3" transform="rotate(20 455 445)"/>
    </g>

    <!-- Chain -->
    <path d="M442 422 C382 450 315 448 252 430" fill="none" stroke="#1b1b1b" stroke-width="3" stroke-linecap="round" opacity="0.9"/>
  </g>

  <!-- Pelican Rider -->
  <g id="pelican-rider">
    <!-- Back wing -->
    <path d="M322 372
             C290 358 270 330 287 294
             C325 304 352 340 362 358
             C355 392 340 392 322 372 Z"
          fill="#cfe0ea" stroke="#1b1b1b" stroke-width="3" stroke-linejoin="round"/>

    <!-- Tail -->
    <path d="M318 408
             C300 420 298 442 316 452
             C340 446 360 425 368 412
             C350 401 336 398 318 408 Z"
          fill="#c8d8e6" stroke="#1b1b1b" stroke-width="3" stroke-linejoin="round"/>

    <!-- Body -->
    <ellipse cx="410" cy="365" rx="95" ry="58" fill="#e6eef6" stroke="#1b1b1b" stroke-width="3"/>

    <!-- Neck (outline then fill) -->
    <path d="M440 330
             C460 312 465 300 469 284
             C472 268 482 262 495 260"
          stroke="#1b1b1b" stroke-width="30" fill="none" stroke-linecap="round"/>
    <path d="M440 330
             C460 312 465 300 469 284
             C472 268 482 262 495 260"
          stroke="#e6eef6" stroke-width="24" fill="none" stroke-linecap="round"/>

    <!-- Head -->
    <circle cx="495" cy="260" r="30" fill="#e6eef6" stroke="#1b1b1b" stroke-width="3"/>

    <!-- Eye -->
    <circle cx="484" cy="252" r="4.5" fill="#1b1b1b"/>
    <circle cx="481" cy="249" r="2" fill="#ffffff" opacity="0.9"/>

    <!-- Beak -->
    <path d="M507 265
             C536 246 590 248 616 266
             C590 284 540 292 507 276 Z"
          fill="#f4b04a" stroke="#1b1b1b" stroke-width="3" stroke-linejoin="round"/>
    <path d="M508 278
             C538 305 565 318 553 348
             C522 363 494 335 496 305
             C497 290 501 282 508 278 Z"
          fill="#f7c56b" stroke="#1b1b1b" stroke-width="3" stroke-linejoin="round"/>

    <!-- Pouch stripe/detail -->
    <path d="M505 292
             C532 315 545 333 540 352"
          fill="none" stroke="#e9871a" stroke-width="3" stroke-linecap="round" opacity="0.85"/>

    <!-- Beak tip highlight -->
    <path d="M614 266
             C620 263 628 265 623 272
             C619 278 607 276 614 266 Z"
          fill="#e9871a" stroke="#1b1b1b" stroke-width="3" stroke-linejoin="round"/>

    <!-- Front wing -->
    <path d="M430 366
             C452 327 520 312 575 335
             C552 372 500 402 456 390
             C442 385 425 374 430 366 Z"
          fill="#d2e0ea" stroke="#1b1b1b" stroke-width="3" stroke-linejoin="round"/>

    <!-- Wing highlight -->
    <path d="M462 347
             C498 332 525 336 548 356
             C521 370 490 368 462 360 Z"
          fill="#c3d6e5" opacity="0.95" stroke="#1b1b1b" stroke-width="3" stroke-linejoin="round"/>

    <!-- Legs (outline then color) -->
    <path d="M388 420
             Q375 438 405 445"
          stroke="#1b1b1b" stroke-width="16" fill="none" stroke-linecap="round"/>
    <path d="M388 420
             Q375 438 405 445"
          stroke="#f2a64a" stroke-width="11" fill="none" stroke-linecap="round"/>

    <path d="M430 420
             Q445 438 455 445"
          stroke="#1b1b1b" stroke-width="16" fill="none" stroke-linecap="round"/>
    <path d="M430 420
             Q445 438 455 445"
          stroke="#f2a64a" stroke-width="11" fill="none" stroke-linecap="round"/>

    <!-- Feet -->
    <ellipse cx="405" cy="451" rx="19" ry="9" fill="#f2a64a" stroke="#1b1b1b" stroke-width="3"/>
    <ellipse cx="455" cy="451" rx="19" ry="9" fill="#f2a64a" stroke="#1b1b1b" stroke-width="3"/>

    <!-- Toes -->
    <path d="M395 451 L388 462" stroke="#1b1b1b" stroke-width="3" stroke-linecap="round"/>
    <path d="M405 451 L405 463" stroke="#1b1b1b" stroke-width="3" stroke-linecap="round"/>
    <path d="M415 451 L424 462" stroke="#1b1b1b" stroke-width="3" stroke-linecap="round"/>

    <path d="M445 451 L438 462" stroke="#1b1b1b" stroke-width="3" stroke-linecap="round"/>
    <path d="M455 451 L455 463" stroke="#1b1b1b" stroke-width="3" stroke-linecap="round"/>
    <path d="M465 451 L474 462" stroke="#1b1b1b" stroke-width="3" stroke-linecap="round"/>
  </g>
</svg>

Token usage

16 input, 43,785 output, {"completion_tokens_details": {"reasoning_tokens": 40535}}

2026-03-17T17:58:10 conversation: 01kkyf5t387mvytx7384w7sbd0 id: 01kkyf5d7e8zkp8yq39ajahm4d

Model: gpt-5.4-nano

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: low

Response

<svg xmlns="http://www.w3.org/2000/svg" width="900" height="520" viewBox="0 0 900 520">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#bfe7ff"/>
      <stop offset="1" stop-color="#e9fbff"/>
    </linearGradient>
    <linearGradient id="ground" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#7bd389"/>
      <stop offset="1" stop-color="#2f8f4f"/>
    </linearGradient>
  </defs>

  <!-- Background -->
  <rect width="900" height="520" fill="url(#sky)"/>
  <path d="M0,390 C140,330 260,430 390,390 C520,350 650,430 900,370 L900,520 L0,520 Z" fill="url(#ground)"/>

  <!-- Simple sun -->
  <circle cx="740" cy="90" r="30" fill="#ffd86a" opacity="0.95"/>
  <g stroke="#ffd86a" stroke-width="6" opacity="0.75">
    <line x1="740" y1="35" x2="740" y2="5"/>
    <line x1="795" y1="90" x2="825" y2="90"/>
    <line x1="740" y1="145" x2="740" y2="175"/>
    <line x1="685" y1="90" x2="655" y2="90"/>
  </g>

  <!-- Bicycle wheels -->
  <g transform="translate(0,0)">
    <!-- Left wheel -->
    <g transform="translate(240,380)">
      <circle r="95" fill="#ffffff" stroke="#1f2a36" stroke-width="8"/>
      <circle r="70" fill="#1f2a36" opacity="0.05"/>
      <circle r="78" fill="none" stroke="#333a44" stroke-width="6"/>
      <!-- Spokes -->
      <g stroke="#1f2a36" stroke-width="3" opacity="0.75">
        <line x1="0" y1="-78" x2="0" y2="78"/>
        <line x1="-55" y1="-55" x2="55" y2="55"/>
        <line x1="-78" y1="0" x2="78" y2="0"/>
        <line x1="-55" y1="55" x2="55" y2="-55"/>
        <line x1="-35" y1="-68" x2="35" y2="68"/>
        <line x1="68" y1="-35" x2="-68" y2="35"/>
      </g>
      <circle r="12" fill="#1f2a36"/>
    </g>

    <!-- Right wheel -->
    <g transform="translate(650,380)">
      <circle r="95" fill="#ffffff" stroke="#1f2a36" stroke-width="8"/>
      <circle r="70" fill="#1f2a36" opacity="0.05"/>
      <circle r="78" fill="none" stroke="#333a44" stroke-width="6"/>
      <!-- Spokes -->
      <g stroke="#1f2a36" stroke-width="3" opacity="0.75">
        <line x1="0" y1="-78" x2="0" y2="78"/>
        <line x1="-55" y1="-55" x2="55" y2="55"/>
        <line x1="-78" y1="0" x2="78" y2="0"/>
        <line x1="-55" y1="55" x2="55" y2="-55"/>
        <line x1="-35" y1="-68" x2="35" y2="68"/>
        <line x1="68" y1="-35" x2="-68" y2="35"/>
      </g>
      <circle r="12" fill="#1f2a36"/>
    </g>
  </g>

  <!-- Bicycle frame -->
  <g stroke="#1f2a36" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none">
    <!-- Bottom/seat stays -->
    <path d="M240,380 L380,310 L560,310 L650,380" />
    <!-- Rear triangle -->
    <path d="M380,310 L275,380" />
    <!-- Front triangle -->
    <path d="M560,310 L650,380" />
    <!-- Seat tube to seat -->
    <path d="M380,310 L410,245" />
    <!-- Handlebar stem -->
    <path d="M560,310 L540,265" />
    <!-- Down tube -->
    <path d="M410,245 L560,310" />
    <!-- Seat -->
    <path d="M405,235 L465,235" />
  </g>

  <!-- Handlebar -->
  <g fill="none" stroke="#1f2a36" stroke-width="8" stroke-linecap="round">
    <path d="M540,265 C525,250 505,245 485,250" />
    <path d="M540,265 C565,255 585,252 605,260" />
    <path d="M478,251 L450,235" stroke-width="6"/>
    <path d="M606,260 L636,247" stroke-width="6"/>
  </g>

  <!-- Pedals/crank -->
  <g stroke="#1f2a36" stroke-width="7" stroke-linecap="round">
    <circle cx="450" cy="330" r="18" fill="#1f2a36" stroke="none"/>
    <path d="M450,330 L390,330" />
    <path d="M450,330 L470,295" />
    <circle cx="390" cy="330" r="10" fill="#1f2a36"/>
    <circle cx="470" cy="295" r="10" fill="#1f2a36"/>
  </g>

  <!-- Pelican rider -->
  <!-- Body group positioned between wheels -->
  <g transform="translate(0,0)">
    <!-- Pelican torso -->
    <g transform="translate(430,190)">
      <!-- Wings -->
      <path d="M-65,160 C-120,120 -125,70 -85,45 C-50,25 -15,45 -5,75 C5,105 0,140 -15,165 C-30,190 -55,185 -65,160 Z"
            fill="#f3f6fb" stroke="#1f2a36" stroke-width="4" opacity="0.98"/>
      <path d="M20,170 C55,150 85,115 90,85 C95,55 80,25 48,22 C18,20 0,50 2,82 C4,115 8,150 20,170 Z"
            fill="#ffffff" stroke="#1f2a36" stroke-width="4" opacity="0.98"/>

      <!-- Main body -->
      <ellipse cx="5" cy="135" rx="85" ry="95" fill="#f8fbff" stroke="#1f2a36" stroke-width="4"/>
      <!-- Belly pouch -->
      <path d="M-5,205 C-35,215 -55,235 -45,265 C-35,295 -5,300 25,285 C55,270 60,235 40,215 C25,198 10,195 -5,205 Z"
            fill="#e7f2ff" stroke="#1f2a36" stroke-width="4"/>

      <!-- Neck -->
      <path d="M-10,85 C-25,50 -10,25 15,10 C35,-2 55,5 60,25
               C65,50 50,85 35,105 C20,125 0,115 -10,85 Z"
            fill="#f8fbff" stroke="#1f2a36" stroke-width="4"/>

      <!-- Head -->
      <g transform="translate(45,0)">
        <!-- Head -->
        <ellipse cx="5" cy="22" rx="30" ry="28" fill="#f8fbff" stroke="#1f2a36" stroke-width="4"/>
        <!-- Eye -->
        <circle cx="18" cy="18" r="6" fill="#1f2a36"/>
        <circle cx="20" cy="15" r="2" fill="#ffffff"/>
        <!-- Beak -->
        <path d="M25,26 C55,30 90,20 120,40 C96,60 55,60 25,55 Z"
              fill="#ffd37a" stroke="#1f2a36" stroke-width="4" stroke-linejoin="round"/>
        <!-- Beak tip -->
        <path d="M92,28 C105,35 112,42 120,40" stroke="#1f2a36" stroke-width="4" fill="none" opacity="0.35"/>
        <!-- Lower beak -->
        <path d="M30,52 C60,56 88,52 105,45" stroke="#1f2a36" stroke-width="4" fill="none" opacity="0.35"/>
      </g>

      <!-- Legs -->
      <g transform="translate(0,235)" stroke="#1f2a36" stroke-width="5" stroke-linecap="round">
        <path d="M-30,-5 C-40,35 -35,60 -20,85" fill="none"/>
        <path d="M25,-5 C25,30 35,52 55,82" fill="none"/>
      </g>

      <!-- Feet -->
      <g transform="translate(0,245)">
        <path d="M-40,80 C-55,95 -50,115 -30,112 C-15,110 -5,95 -10,82 C-20,75 -32,75 -40,80 Z"
              fill="#1f2a36" opacity="0.95"/>
        <path d="M30,85 C15,100 18,120 40,116 C57,112 65,95 58,83 C50,75 38,78 30,85 Z"
              fill="#1f2a36" opacity="0.95"/>
      </g>

      <!-- Hands/wing contact with handlebar -->
      <g stroke="#1f2a36" stroke-width="6" stroke-linecap="round">
        <path d="M-30,145 C-10,130 10,125 30,130" fill="none"/>
      </g>

      <!-- Tiny feet/wing accents -->
      <path d="M-70,155 C-50,145 -35,140 -20,145" stroke="#1f2a36" stroke-width="4" fill="none" opacity="0.25"/>
    </g>
  </g>

  <!-- Seat rider contact hint -->
  <g>
    <ellipse cx="425" cy="340" rx="22" ry="10" fill="#1f2a36" opacity="0.20"/>
  </g>

  <!-- Ground detail: bicycle shadow -->
  <path d="M160,430 C280,375 420,420 520,400 C620,380 720,410 820,395
           C845,392 870,400 885,415
           L885,445 C780,455 680,460 585,460
           C455,460 305,458 160,448 Z"
        fill="#000" opacity="0.10"/>

  <!-- Title (invisible) -->
  <text x="10" y="22" font-size="14" fill="transparent">Pelican riding a bicycle (SVG illustration)</text>
</svg>

Token usage

16 input, 2,698 output, {"completion_tokens_details": {"reasoning_tokens": 8}}

2026-03-17T17:58:10 conversation: 01kkyf5zy6t1yddmbvv9r9qn92 id: 01kkyf5d7j1amj62tdsa2247vw

Model: gpt-5.4-nano

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: high

Response

<svg xmlns="http://www.w3.org/2000/svg" width="900" height="520" viewBox="0 0 900 520">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#bfe7ff"/>
      <stop offset="1" stop-color="#eaf7ff"/>
    </linearGradient>
    <linearGradient id="ground" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#c7f1c2"/>
      <stop offset="1" stop-color="#8edb85"/>
    </linearGradient>
    <style>
      .stroke-dark{stroke:#1e2a36;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
      .stroke-med{stroke:#1e2a36;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
      .soft{opacity:.95}
    </style>
  </defs>

  <!-- Background -->
  <rect x="0" y="0" width="900" height="520" fill="url(#sky)"/>
  <path d="M0,420 C160,360 300,470 470,420 C620,380 760,470 900,420 L900,520 L0,520 Z" fill="url(#ground)"/>

  <!-- Simple sun -->
  <circle cx="760" cy="95" r="30" fill="#ffd66b" opacity=".95"/>
  <g stroke="#ffcc4d" stroke-width="5" stroke-linecap="round" opacity=".9">
    <line x1="760" y1="50" x2="760" y2="22"/>
    <line x1="805" y1="95" x2="833" y2="95"/>
    <line x1="760" y1="140" x2="760" y2="168"/>
    <line x1="715" y1="95" x2="687" y2="95"/>
    <line x1="792" y1="62" x2="812" y2="42"/>
    <line x1="728" y1="128" x2="708" y2="148"/>
    <line x1="792" y1="128" x2="812" y2="148"/>
    <line x1="728" y1="62" x2="708" y2="42"/>
  </g>

  <!-- Bicycle -->
  <!-- Wheels -->
  <g class="soft">
    <circle cx="250" cy="420" r="70" fill="#3a3a3a"/>
    <circle cx="250" cy="420" r="60" fill="#1f1f1f" stroke="#111" stroke-width="4"/>
    <circle cx="250" cy="420" r="10" fill="#d8d8d8"/>
    <g stroke="#a7a7a7" stroke-width="3" opacity=".95">
      <line x1="250" y1="360" x2="250" y2="480"/>
      <line x1="190" y1="420" x2="310" y2="420"/>
      <line x1="208" y1="378" x2="292" y2="462"/>
      <line x1="292" y1="378" x2="208" y2="462"/>
      <line x1="213" y1="400" x2="287" y2="440"/>
      <line x1="287" y1="400" x2="213" y2="440"/>
    </g>

    <circle cx="595" cy="420" r="70" fill="#3a3a3a"/>
    <circle cx="595" cy="420" r="60" fill="#1f1f1f" stroke="#111" stroke-width="4"/>
    <circle cx="595" cy="420" r="10" fill="#d8d8d8"/>
    <g stroke="#a7a7a7" stroke-width="3" opacity=".95">
      <line x1="595" y1="360" x2="595" y2="480"/>
      <line x1="535" y1="420" x2="655" y2="420"/>
      <line x1="553" y1="378" x2="637" y2="462"/>
      <line x1="637" y1="378" x2="553" y2="462"/>
      <line x1="558" y1="400" x2="632" y2="440"/>
      <line x1="632" y1="400" x2="558" y2="440"/>
    </g>
  </g>

  <!-- Frame -->
  <g>
    <!-- Ground contact / pedals -->
    <ellipse cx="435" cy="420" rx="28" ry="10" fill="#2d2d2d" opacity=".3"/>
    <!-- Seat -->
    <path d="M430,280 C410,275 402,268 400,257 C428,252 458,256 470,265
             C455,286 444,293 430,280 Z"
          fill="#d14b3f" stroke="#1e2a36" stroke-width="3" stroke-linejoin="round"/>
    <path d="M432,280 L465,300" fill="none" class="stroke-dark"/>
    <path d="M470,300 L380,405" fill="none" class="stroke-dark" opacity=".95"/>

    <!-- Main frame tubes -->
    <path d="M380,405 L500,300" fill="none" class="stroke-dark"/>
    <path d="M500,300 L595,420" fill="none" class="stroke-dark"/>
    <path d="M380,405 L250,420" fill="none" class="stroke-dark"/>
    <path d="M465,300 L250,420" fill="none" class="stroke-med" opacity=".95"/>

    <!-- Handlebar stem -->
    <path d="M545,290 L590,255" fill="none" class="stroke-dark"/>
    <path d="M590,255 C615,250 635,248 656,246" fill="none" class="stroke-dark"/>
    <path d="M650,246 C658,236 676,230 690,230" fill="none" class="stroke-dark"/>
    <path d="M690,230 L706,230" class="stroke-dark"/>
    <path d="M648,246 C640,236 622,230 608,230" fill="none" class="stroke-dark"/>
    <path d="M608,230 L592,230" class="stroke-dark"/>

    <!-- Fork -->
    <path d="M535,290 L595,420" fill="none" class="stroke-dark" opacity=".98"/>

    <!-- Crank / chainring -->
    <g>
      <circle cx="455" cy="406" r="16" fill="#2b2b2b" stroke="#1e2a36" stroke-width="4"/>
      <circle cx="455" cy="406" r="5" fill="#d8d8d8"/>
      <path d="M455,406 L500,300" fill="none" class="stroke-med" opacity=".95"/>
      <!-- Chain -->
      <path d="M470,388 C520,365 560,340 595,420" fill="none" stroke="#2a2a2a" stroke-width="3" opacity=".9"/>
      <path d="M455,406 C420,378 385,380 380,405" fill="none" stroke="#2a2a2a" stroke-width="3" opacity=".9"/>
    </g>

    <!-- Pedals -->
    <g>
      <ellipse cx="410" cy="390" rx="14" ry="7" fill="#5b5b5b" stroke="#1e2a36" stroke-width="3"/>
      <ellipse cx="500" cy="420" rx="14" ry="7" fill="#5b5b5b" stroke="#1e2a36" stroke-width="3"/>
      <circle cx="410" cy="390" r="6" fill="#d8d8d8"/>
      <circle cx="500" cy="420" r="6" fill="#d8d8d8"/>
    </g>
  </g>

  <!-- Pelican -->
  <g transform="translate(0,0)">
    <!-- Legs -->
    <g>
      <path d="M425,355 C414,382 410,395 403,410" class="stroke-dark" fill="none"/>
      <path d="M425,355 C438,382 444,395 452,410" class="stroke-dark" fill="none"/>

      <path d="M392,418 C396,410 409,412 413,421" class="stroke-dark" fill="#f3b15f"/>
      <path d="M445,418 C449,410 462,412 466,421" class="stroke-dark" fill="#f3b15f"/>

      <path d="M403,410 C400,427 414,435 430,432" class="stroke-med" fill="none" opacity=".8"/>
      <path d="M452,410 C449,427 463,435 479,432" class="stroke-med" fill="none" opacity=".8"/>
    </g>

    <!-- Body -->
    <g>
      <!-- torso -->
      <path d="M390,305
               C368,310 352,332 354,355
               C357,392 395,410 430,403
               C470,395 498,364 487,335
               C476,306 432,293 390,305 Z"
            fill="#ffffff" stroke="#1e2a36" stroke-width="4" stroke-linejoin="round"/>

      <!-- belly -->
      <path d="M380,340
               C372,372 395,392 430,390
               C462,388 480,364 473,345
               C468,328 414,322 380,340 Z"
            fill="#f2f7ff" opacity=".9"/>

      <!-- wing -->
      <path d="M420,315
               C410,296 374,284 346,306
               C328,321 335,353 364,359
               C388,365 420,355 430,342
               C438,332 433,324 420,315 Z"
            fill="#ffffff" stroke="#1e2a36" stroke-width="4" stroke-linejoin="round"/>
      <path d="M420,322
               C408,308 377,301 356,316
               C342,326 347,346 365,350
               C386,355 414,348 424,338"
            fill="none" stroke="#1e2a36" stroke-width="3" opacity=".75" stroke-linecap="round"/>
    </g>

    <!-- Head -->
    <g>
      <!-- Neck -->
      <path d="M450,300
               C457,275 468,255 487,248
               C502,243 522,251 524,268
               C527,290 507,302 492,310
               C473,320 452,319 450,300 Z"
            fill="#ffffff" stroke="#1e2a36" stroke-width="4" stroke-linejoin="round"/>

      <!-- Beak -->
      <path d="M520,270
               C545,256 575,255 612,262
               C625,265 628,284 615,292
               C585,310 549,313 523,302
               C514,298 511,276 520,270 Z"
            fill="#f3b15f" stroke="#1e2a36" stroke-width="4" stroke-linejoin="round"/>
      <path d="M542,274
               C568,270 596,270 608,275"
            fill="none" stroke="#1e2a36" stroke-width="3" opacity=".85" stroke-linecap="round"/>

      <!-- Beak pouch detail -->
      <path d="M510,302
               C520,332 507,350 479,360
               C455,368 435,363 423,352
               C448,345 467,336 484,318
               C495,307 502,300 510,302 Z"
            fill="#ffd2a1" stroke="#1e2a36" stroke-width="3" stroke-linejoin="round"/>

      <!-- Eye -->
      <circle cx="502" cy="268" r="9" fill="#1e2a36"/>
      <circle cx="505" cy="265" r="3.5" fill="#ffffff"/>
    </g>

    <!-- Arms holding handlebars -->
    <g>
      <!-- left wing/arm -->
      <path d="M415,350 C420,335 435,320 450,315"
            fill="none" class="stroke-dark"/>
      <path d="M450,315 C472,310 498,315 517,322" fill="none" class="stroke-dark"/>

      <!-- right arm -->
      <path d="M430,360 C435,348 448,335 463,330"
            fill="none" class="stroke-med" opacity=".95"/>
      <path d="M463,330 C480,328 505,334 517,342" fill="none" class="stroke-med" opacity=".95"/>

      <!-- hands -->
      <path d="M517,320 C528,317 540,320 550,327" class="stroke-dark" fill="none"/>
      <path d="M550,327 L560,327" class="stroke-dark"/>
      <path d="M517,342 C528,340 540,345 551,352" class="stroke-dark" fill="none"/>
      <path d="M551,352 L561,352" class="stroke-dark"/>
    </g>
  </g>

  <!-- Ground shadow under bicycle -->
  <ellipse cx="430" cy="470" rx="330" ry="34" fill="#000" opacity=".08"/>

  <!-- Subtle motion lines -->
  <g opacity=".25" stroke="#1e2a36" stroke-width="4" stroke-linecap="round">
    <path d="M150,420 C195,410 220,410 260,420"/>
    <path d="M520,425 C560,415 590,415 635,425"/>
  </g>
</svg>

Token usage

16 input, 3,333 output, {"completion_tokens_details": {"reasoning_tokens": 39}}

2026-03-17T17:58:10 conversation: 01kkyf73e1y63qn5a6p6gkfah0 id: 01kkyf5d7msk5p39pzk2b96jds

Model: gpt-5.4-mini

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: high

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" width="800" height="500" role="img" aria-label="A pelican riding a bicycle">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#bfe8ff"/>
      <stop offset="100%" stop-color="#eefcff"/>
    </linearGradient>
    <linearGradient id="ground" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#8bd06f"/>
      <stop offset="100%" stop-color="#63b04e"/>
    </linearGradient>
  </defs>

  <rect width="800" height="500" fill="url(#sky)"/>

  <g opacity=".7" fill="#fff">
    <ellipse cx="110" cy="85" rx="36" ry="16"/>
    <ellipse cx="138" cy="80" rx="28" ry="13"/>
    <ellipse cx="240" cy="62" rx="34" ry="15"/>
    <ellipse cx="265" cy="58" rx="24" ry="11"/>
    <ellipse cx="624" cy="74" rx="40" ry="18"/>
    <ellipse cx="658" cy="70" rx="26" ry="12"/>
  </g>

  <ellipse cx="400" cy="395" rx="255" ry="22" fill="#2f3e2a" opacity=".12"/>
  <rect y="420" width="800" height="80" fill="url(#ground)"/>

  <!-- Bicycle wheels -->
  <g>
    <circle cx="240" cy="370" r="70" fill="none" stroke="#1f2937" stroke-width="10"/>
    <circle cx="240" cy="370" r="56" fill="none" stroke="#cbd5e1" stroke-width="3" opacity=".7"/>
    <g stroke="#cbd5e1" stroke-width="2" opacity=".8" stroke-linecap="round">
      <line x1="240" y1="370" x2="240" y2="300"/>
      <line x1="240" y1="370" x2="287" y2="318"/>
      <line x1="240" y1="370" x2="310" y2="370"/>
      <line x1="240" y1="370" x2="287" y2="422"/>
      <line x1="240" y1="370" x2="240" y2="440"/>
      <line x1="240" y1="370" x2="193" y2="422"/>
      <line x1="240" y1="370" x2="170" y2="370"/>
      <line x1="240" y1="370" x2="193" y2="318"/>
    </g>
    <circle cx="240" cy="370" r="7" fill="#e5e7eb" stroke="#1f2937" stroke-width="3"/>

    <circle cx="560" cy="370" r="70" fill="none" stroke="#1f2937" stroke-width="10"/>
    <circle cx="560" cy="370" r="56" fill="none" stroke="#cbd5e1" stroke-width="3" opacity=".7"/>
    <g stroke="#cbd5e1" stroke-width="2" opacity=".8" stroke-linecap="round">
      <line x1="560" y1="370" x2="560" y2="300"/>
      <line x1="560" y1="370" x2="607" y2="318"/>
      <line x1="560" y1="370" x2="630" y2="370"/>
      <line x1="560" y1="370" x2="607" y2="422"/>
      <line x1="560" y1="370" x2="560" y2="440"/>
      <line x1="560" y1="370" x2="513" y2="422"/>
      <line x1="560" y1="370" x2="490" y2="370"/>
      <line x1="560" y1="370" x2="513" y2="318"/>
    </g>
    <circle cx="560" cy="370" r="7" fill="#e5e7eb" stroke="#1f2937" stroke-width="3"/>
  </g>

  <!-- Bicycle frame -->
  <g stroke="#374151" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none">
    <path d="M240 370 L375 350"/>
    <path d="M375 350 L390 285"/>
    <path d="M390 285 L500 250"/>
    <path d="M500 250 L560 370"/>
    <path d="M240 370 L390 285"/>
    <path d="M375 350 L500 250"/>
    <path d="M390 285 L355 285"/>
    <path d="M500 250 L525 235"/>
    <path d="M500 250 L530 250"/>
    <path d="M375 350 L315 356 L240 370" stroke-width="3" opacity=".7"/>
  </g>

  <path d="M358 280 C376 269, 395 269, 412 280" stroke="#374151" stroke-width="9" stroke-linecap="round" fill="none"/>
  <circle cx="375" cy="350" r="24" fill="#e5e7eb" stroke="#374151" stroke-width="8"/>
  <g stroke="#374151" stroke-width="5" stroke-linecap="round">
    <line x1="375" y1="350" x2="410" y2="338"/>
    <line x1="375" y1="350" x2="340" y2="362"/>
  </g>

  <!-- Pelican -->
  <g>
    <ellipse cx="350" cy="238" rx="110" ry="64" fill="#f8f6ef" stroke="#d7d0c4" stroke-width="3"/>
    <ellipse cx="325" cy="248" rx="52" ry="30" fill="#ece7dd" transform="rotate(-18 325 248)"/>
    <path d="M275 250 L250 236 L255 261 Z" fill="#e8e0d4"/>
    <path d="M395 206 C420 190, 434 167, 440 145" stroke="#f8f6ef" stroke-width="38" stroke-linecap="round" fill="none"/>
    <circle cx="445" cy="130" r="24" fill="#f8f6ef" stroke="#d7d0c4" stroke-width="3"/>
    <circle cx="447" cy="127" r="4" fill="#1f2937"/>
    <path d="M462 135 L560 142 L548 149 L470 151 Z" fill="#f0b243" stroke="#cb8514" stroke-width="2"/>
    <path d="M462 149 L557 143 L548 164 L472 163 Z" fill="#de972b" stroke="#b97810" stroke-width="2"/>

    <path d="M352 282 C339 312, 336 330, 340 361" stroke="#e29a3a" stroke-width="10" stroke-linecap="round" fill="none"/>
    <path d="M377 282 C393 311, 399 325, 409 338" stroke="#e29a3a" stroke-width="10" stroke-linecap="round" fill="none"/>
    <ellipse cx="338" cy="362" rx="16" ry="8" fill="#e29a3a" transform="rotate(-8 338 362)"/>
    <ellipse cx="410" cy="338" rx="16" ry="8" fill="#e29a3a" transform="rotate(10 410 338)"/>
    <line x1="330" y1="364" x2="314" y2="369" stroke="#d07d22" stroke-width="3" stroke-linecap="round"/>
    <line x1="410" y1="338" x2="424" y2="335" stroke="#d07d22" stroke-width="3" stroke-linecap="round"/>
  </g>
</svg>

Token usage

16 input, 15,109 output, {"completion_tokens_details": {"reasoning_tokens": 13018}}

2026-03-17T17:58:10 conversation: 01kkyf67pbpjsgc0sx1r7347e2 id: 01kkyf5d7n02rmdvcn09sdjt19

Model: gpt-5.4

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: low

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" width="800" height="500" role="img" aria-label="A pelican riding a bicycle">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#dff4ff"/>
      <stop offset="100%" stop-color="#f8fcff"/>
    </linearGradient>
    <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
      <feDropShadow dx="0" dy="3" stdDeviation="3" flood-opacity="0.18"/>
    </filter>
  </defs>

  <!-- Background -->
  <rect width="800" height="500" fill="url(#sky)"/>
  <ellipse cx="400" cy="430" rx="320" ry="30" fill="#d9e7d6"/>
  <path d="M0 420 C140 390, 260 410, 400 395 C540 380, 660 410, 800 390 L800 500 L0 500 Z" fill="#cbe3b9"/>

  <!-- Bicycle shadow -->
  <ellipse cx="400" cy="405" rx="220" ry="20" fill="#000" opacity="0.08"/>

  <!-- Bicycle -->
  <g stroke="#2b2b2b" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none" filter="url(#shadow)">
    <!-- Wheels -->
    <circle cx="260" cy="360" r="78" fill="#fafafa"/>
    <circle cx="540" cy="360" r="78" fill="#fafafa"/>
    <circle cx="260" cy="360" r="10" fill="#2b2b2b" stroke="none"/>
    <circle cx="540" cy="360" r="10" fill="#2b2b2b" stroke="none"/>

    <!-- Spokes -->
    <g stroke="#888" stroke-width="3">
      <!-- Left wheel spokes -->
      <line x1="260" y1="360" x2="338" y2="360"/>
      <line x1="260" y1="360" x2="182" y2="360"/>
      <line x1="260" y1="360" x2="260" y2="282"/>
      <line x1="260" y1="360" x2="260" y2="438"/>
      <line x1="260" y1="360" x2="315" y2="305"/>
      <line x1="260" y1="360" x2="205" y2="305"/>
      <line x1="260" y1="360" x2="315" y2="415"/>
      <line x1="260" y1="360" x2="205" y2="415"/>

      <!-- Right wheel spokes -->
      <line x1="540" y1="360" x2="618" y2="360"/>
      <line x1="540" y1="360" x2="462" y2="360"/>
      <line x1="540" y1="360" x2="540" y2="282"/>
      <line x1="540" y1="360" x2="540" y2="438"/>
      <line x1="540" y1="360" x2="595" y2="305"/>
      <line x1="540" y1="360" x2="485" y2="305"/>
      <line x1="540" y1="360" x2="595" y2="415"/>
      <line x1="540" y1="360" x2="485" y2="415"/>
    </g>

    <!-- Frame -->
    <path d="M260 360 L360 280 L445 360 L320 360 Z" />
    <line x1="360" y1="280" x2="415" y2="235"/>
    <line x1="415" y1="235" x2="470" y2="235"/>
    <line x1="445" y1="360" x2="540" y2="360"/>
    <line x1="360" y1="280" x2="395" y2="360"/>
    <line x1="395" y1="360" x2="320" y2="360"/>

    <!-- Handlebar -->
    <line x1="470" y1="235" x2="500" y2="210"/>
    <line x1="495" y1="205" x2="530" y2="205"/>

    <!-- Seat -->
    <line x1="335" y1="250" x2="360" y2="280"/>
    <path d="M312 246 Q333 233 355 242" />

    <!-- Crank and pedals -->
    <circle cx="395" cy="360" r="18"/>
    <line x1="395" y1="360" x2="425" y2="340"/>
    <line x1="395" y1="360" x2="365" y2="382"/>
    <line x1="420" y1="337" x2="438" y2="337"/>
    <line x1="360" y1="385" x2="342" y2="385"/>

    <!-- Chain -->
    <line x1="395" y1="360" x2="320" y2="360" stroke="#666" stroke-width="4"/>
  </g>

  <!-- Pelican -->
  <g filter="url(#shadow)">
    <!-- Tail -->
    <path d="M295 220 Q255 205 250 235 Q275 235 300 230 Z" fill="#f2f2f2" stroke="#5c6670" stroke-width="3"/>

    <!-- Body -->
    <ellipse cx="370" cy="220" rx="95" ry="70" fill="#f7f7f5" stroke="#5c6670" stroke-width="3"/>

    <!-- Wing -->
    <path d="M320 205 Q370 170 430 210 Q385 235 330 245 Q310 225 320 205 Z"
          fill="#d9dde2" stroke="#5c6670" stroke-width="3"/>

    <!-- Neck -->
    <path d="M425 195 Q455 155 500 160 Q490 195 460 220 Z"
          fill="#f7f7f5" stroke="#5c6670" stroke-width="3"/>

    <!-- Head -->
    <circle cx="515" cy="155" r="32" fill="#f7f7f5" stroke="#5c6670" stroke-width="3"/>

    <!-- Eye -->
    <circle cx="523" cy="149" r="4.5" fill="#222"/>
    <circle cx="524.5" cy="147.5" r="1.3" fill="#fff"/>

    <!-- Beak upper -->
    <path d="M535 160 Q600 145 660 165 Q607 182 540 178 Z"
          fill="#f2b24f" stroke="#8e5f1d" stroke-width="3"/>

    <!-- Beak pouch -->
    <path d="M538 178 Q595 212 650 184 Q602 190 548 193 Z"
          fill="#f4c98a" stroke="#8e5f1d" stroke-width="3"/>

    <!-- Smile line -->
    <path d="M550 174 Q590 176 628 171" stroke="#8e5f1d" stroke-width="2" fill="none"/>

    <!-- Legs -->
    <g stroke="#d7842f" stroke-width="6" stroke-linecap="round" fill="none">
      <line x1="350" y1="285" x2="365" y2="382"/>
      <line x1="405" y1="285" x2="424" y2="338"/>
      <line x1="365" y1="382" x2="342" y2="385"/>
      <line x1="424" y1="338" x2="440" y2="338"/>
    </g>

    <!-- Pelican arm/wing to handlebar -->
    <path d="M430 215 Q470 235 500 215" fill="none" stroke="#5c6670" stroke-width="6" stroke-linecap="round"/>
  </g>

  <!-- Cap for whimsy -->
  <g transform="translate(492 114) rotate(-8)">
    <path d="M0 18 Q22 0 48 10 L55 24 L4 24 Z" fill="#4b78c2" stroke="#2f4e84" stroke-width="3"/>
    <rect x="16" y="6" width="10" height="9" rx="2" fill="#6ea0ee"/>
  </g>

  <!-- Motion lines -->
  <g stroke="#86a9c0" stroke-width="4" stroke-linecap="round" opacity="0.6">
    <line x1="120" y1="170" x2="165" y2="170"/>
    <line x1="95" y1="195" x2="150" y2="195"/>
    <line x1="140" y1="220" x2="180" y2="220"/>
  </g>
</svg>

Token usage

16 input, 2,168 output, {"completion_tokens_details": {"reasoning_tokens": 33}}

2026-03-17T17:58:10 conversation: 01kkyf5pqvks7q9ajjb34961mk id: 01kkyf5d7pfyr314kyqjymnfyt

Model: gpt-5.4-nano

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: medium

Response

<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
  <defs>
    <style>
      .stroke{stroke:#1f2a37;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
      .thin{stroke-width:4}
      .ink{fill:none;stroke:#1f2a37;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
      .pelicanBody{fill:#f4f6f8;stroke:#1f2a37;stroke-width:6}
      .pelicanWing{fill:#e9edf2;stroke:#1f2a37;stroke-width:6}
      .beak{fill:#f6b73c;stroke:#1f2a37;stroke-width:6}
      .skin{fill:#ffffff;stroke:#1f2a37;stroke-width:6}
      .bike{stroke:#1f2a37;stroke-width:6;fill:none;stroke-linecap:round;stroke-linejoin:round}
      .tire{fill:#1a1f27;stroke:#1f2a37;stroke-width:6}
      .rim{fill:none;stroke:#1f2a37;stroke-width:6}
      .accent{fill:#ffdd57;stroke:#1f2a37;stroke-width:6}
    </style>
  </defs>

  <!-- Optional ground -->
  <path d="M40 440 C130 400, 210 410, 300 430 C380 448, 450 460, 500 455 L500 512 L0 512 L0 455 C10 452, 22 448, 40 440 Z"
        fill="#e6f0ff"/>

  <!-- Bicycle -->
  <g id="bike">
    <!-- Wheels -->
    <circle class="tire" cx="140" cy="390" r="56"/>
    <circle class="rim" cx="140" cy="390" r="40"/>
    <circle class="tire" cx="360" cy="390" r="56"/>
    <circle class="rim" cx="360" cy="390" r="40"/>

    <!-- Spokes -->
    <g stroke="#1f2a37" stroke-width="3" stroke-linecap="round">
      <line x1="140" y1="350" x2="140" y2="430"/>
      <line x1="100" y1="390" x2="180" y2="390"/>
      <line x1="112" y1="362" x2="168" y2="418"/>
      <line x1="112" y1="418" x2="168" y2="362"/>

      <line x1="360" y1="350" x2="360" y2="430"/>
      <line x1="320" y1="390" x2="400" y2="390"/>
      <line x1="332" y1="362" x2="388" y2="418"/>
      <line x1="332" y1="418" x2="388" y2="362"/>
    </g>

    <!-- Frame -->
    <path class="bike" d="M140 390 L220 290 L280 390"/>
    <path class="bike" d="M220 290 L260 390"/>
    <path class="bike" d="M220 290 L185 255"/>
    <path class="bike" d="M260 390 L360 350"/>
    <path class="bike" d="M220 290 L315 290"/>
    <path class="bike" d="M280 390 L315 290"/>
    <path class="bike" d="M140 390 L220 290"/>

    <!-- Seat / post -->
    <path class="bike" d="M245 310 L300 310"/>
    <path class="bike" d="M260 390 L260 310"/>

    <!-- Handlebar & fork -->
    <path class="bike" d="M360 350 L325 315"/>
    <path class="bike" d="M325 315 L310 330"/>
    <path class="bike" d="M310 330 L385 330"/>
    <path class="bike" d="M385 330 L360 350"/>

    <!-- Chain/ crank -->
    <circle cx="315" cy="290" r="8" fill="#1f2a37"/>
    <path class="bike" d="M315 290 L280 390"/>

    <!-- Pedals -->
    <circle cx="280" cy="390" r="10" fill="#1f2a37"/>
  </g>

  <!-- Pelican (riding) -->
  <g id="pelican" transform="translate(0,0)">
    <!-- Body -->
    <ellipse class="pelicanBody" cx="260" cy="275" rx="70" ry="55"/>
    <!-- Belly fold -->
    <path d="M215 295 C235 320, 265 328, 295 315"
          class="ink" opacity="0.35"/>

    <!-- Wing -->
    <path class="pelicanWing" d="M208 258
                               C175 240, 170 205, 202 190
                               C230 178, 245 205, 245 222
                               C245 240, 235 262, 208 258 Z"/>

    <!-- Head -->
    <g>
      <circle class="skin" cx="150" cy="215" r="30"/>
      <!-- Neck -->
      <path class="stroke" d="M170 215 C190 190, 205 172, 225 160"/>
      <!-- Beak -->
      <path class="beak" d="M205 160
                            C240 158, 255 172, 262 178
                            C248 185, 230 188, 205 182 Z"/>
      <!-- Lower beak line -->
      <path class="stroke thin" d="M220 181 C235 177, 246 171, 258 174"/>
      <!-- Eye -->
      <circle cx="144" cy="206" r="6" fill="#1f2a37"/>
      <circle cx="142" cy="203" r="2.5" fill="#ffffff"/>
    </g>

    <!-- Legs (holding handlebars / resting) -->
    <!-- Left leg -->
    <path class="stroke" d="M250 315 C235 338, 225 350, 214 365"/>
    <!-- Right leg -->
    <path class="stroke" d="M275 315 C292 340, 305 356, 318 365"/>

    <!-- Feet -->
    <path class="stroke" d="M210 370 C205 385, 218 394, 231 386 C237 382, 234 374, 226 369 Z"/>
    <path class="stroke" d="M316 370 C313 386, 328 396, 340 386 C346 381, 342 373, 334 369 Z"/>

    <!-- Flippers / arms near handlebars -->
    <path class="stroke" d="M220 295 C200 285, 185 278, 168 268"/>
    <path class="stroke" d="M238 292 C225 286, 215 278, 205 268" opacity="0.8"/>
    <path class="stroke" d="M282 298 C303 285, 317 278, 338 270"/>
    <path class="stroke" d="M270 294 C286 284, 300 277, 315 272" opacity="0.8"/>

    <!-- Small crest suggestion -->
    <path class="ink" d="M135 191 C140 182, 150 180, 160 184" opacity="0.65"/>
  </g>

  <!-- Subtle shadow under bike -->
  <ellipse cx="250" cy="440" rx="190" ry="26" fill="#b8d6ff" opacity="0.45"/>
</svg>

Token usage

16 input, 1,904 output, {"completion_tokens_details": {"reasoning_tokens": 86}}

2026-03-17T17:58:10 conversation: 01kkyfcy6vk8kx1nw11p2mrcfr id: 01kkyf5d7r4baz55csbfw1m9ah

Model: gpt-5.4-mini

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: xhigh

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" width="800" height="500" role="img" aria-labelledby="title desc">
  <title id="title">Pelican riding a bicycle</title>
  <desc id="desc">A cheerful cartoon pelican riding a bicycle under a bright sky.</desc>

  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#dff4ff"/>
      <stop offset="100%" stop-color="#ffffff"/>
    </linearGradient>
    <radialGradient id="bodyGrad" cx="35%" cy="30%" r="75%">
      <stop offset="0%" stop-color="#ffffff"/>
      <stop offset="100%" stop-color="#e6edf2"/>
    </radialGradient>
    <linearGradient id="beakGrad" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0%" stop-color="#ffd86c"/>
      <stop offset="100%" stop-color="#f0a32b"/>
    </linearGradient>
  </defs>

  <rect width="800" height="500" fill="url(#sky)"/>
  <ellipse cx="400" cy="396" rx="265" ry="23" fill="#1d2a33" opacity=".08"/>

  <!-- Wheels -->
  <g>
    <circle cx="230" cy="360" r="78" fill="#fbfcfd" stroke="#313842" stroke-width="10"/>
    <circle cx="575" cy="360" r="78" fill="#fbfcfd" stroke="#313842" stroke-width="10"/>

    <g transform="translate(230 360)" stroke="#b8c4ce" stroke-width="3" stroke-linecap="round">
      <line x1="0" y1="0" x2="70" y2="0"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(45)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(90)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(135)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(180)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(225)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(270)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(315)"/>
      <circle cx="0" cy="0" r="8" fill="#313842" stroke="none"/>
    </g>

    <g transform="translate(575 360)" stroke="#b8c4ce" stroke-width="3" stroke-linecap="round">
      <line x1="0" y1="0" x2="70" y2="0"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(45)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(90)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(135)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(180)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(225)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(270)"/>
      <line x1="0" y1="0" x2="70" y2="0" transform="rotate(315)"/>
      <circle cx="0" cy="0" r="8" fill="#313842" stroke="none"/>
    </g>
  </g>

  <!-- Frame and seat -->
  <g fill="none" stroke="#394650" stroke-width="10" stroke-linecap="round" stroke-linejoin="round">
    <line x1="230" y1="360" x2="380" y2="330"/>
    <line x1="230" y1="360" x2="350" y2="240"/>
    <line x1="350" y1="240" x2="380" y2="330"/>
    <line x1="350" y1="240" x2="510" y2="240"/>
    <line x1="510" y1="240" x2="380" y2="330"/>
    <line x1="510" y1="240" x2="575" y2="360"/>
    <line x1="350" y1="240" x2="325" y2="220"/>
  </g>
  <rect x="322" y="212" width="46" height="16" rx="8" fill="#394650"/>

  <!-- Pelican body -->
  <g stroke-linejoin="round">
    <ellipse cx="386" cy="218" rx="145" ry="88" fill="url(#bodyGrad)" stroke="#394650" stroke-width="5"/>
    <ellipse cx="348" cy="205" rx="72" ry="46" fill="#ffffff" opacity=".32"/>
    <path d="M 258 228 l -25 12 l 25 11 z" fill="#eef4f7" stroke="#394650" stroke-width="4" stroke-linejoin="round"/>
    <path d="M 268 208 C 288 193 314 195 332 210 C 349 224 353 248 343 273 C 320 284 295 282 277 267 C 261 253 258 225 268 208 Z" fill="#f1f6f8" stroke="#394650" stroke-width="4"/>
    <path d="M 410 223 C 446 215 482 221 524 239 C 511 260 485 271 453 267 C 430 258 415 242 410 223 Z" fill="#eaf0f4" stroke="#394650" stroke-width="4" stroke-linejoin="round"/>
    <path d="M 286 227 C 300 220 318 223 331 233" fill="none" stroke="#dce4e9" stroke-width="4" stroke-linecap="round"/>
    <path d="M 433 234 C 452 231 474 236 495 247" fill="none" stroke="#dce4e9" stroke-width="4" stroke-linecap="round"/>
  </g>

  <!-- Handlebars -->
  <g fill="none" stroke="#394650" stroke-width="7" stroke-linecap="round" stroke-linejoin="round">
    <line x1="510" y1="240" x2="540" y2="220"/>
    <line x1="520" y1="220" x2="595" y2="220"/>
    <path d="M 520 220 q -12 -15 -22 -4"/>
    <path d="M 595 220 q 12 -15 22 -4"/>
  </g>

  <!-- Neck -->
  <path d="M 465 195 C 490 171 503 146 512 124" fill="none" stroke="#394650" stroke-width="40" stroke-linecap="round"/>
  <path d="M 465 195 C 490 171 503 146 512 124" fill="none" stroke="#fbfdff" stroke-width="32" stroke-linecap="round"/>

  <!-- Legs -->
  <g fill="none" stroke="#f2a11b" stroke-width="8" stroke-linecap="round">
    <path d="M 350 284 C 344 302 338 311 332 323"/>
    <path d="M 403 280 C 412 302 418 318 423 339"/>
  </g>

  <!-- Crank and pedals -->
  <g stroke="#394650" stroke-width="6" stroke-linecap="round" stroke-linejoin="round">
    <circle cx="380" cy="330" r="28" fill="#e8edf1"/>
    <line x1="380" y1="330" x2="415" y2="345"/>
    <line x1="380" y1="330" x2="346" y2="312"/>
    <rect x="405" y="339" width="28" height="8" rx="4" fill="#f5a623" stroke="#d98a1f" transform="rotate(22 419 343)"/>
    <rect x="322" y="308" width="28" height="8" rx="4" fill="#f5a623" stroke="#d98a1f" transform="rotate(22 336 312)"/>
  </g>

  <!-- Feet -->
  <g stroke-linejoin="round">
    <path d="M 320 326 C 331 317 345 318 353 327 C 347 338 335 341 324 338 C 319 335 318 330 320 326 Z" fill="#f5a623" stroke="#d98a1f" stroke-width="3"/>
    <path d="M 409 343 C 420 334 434 335 442 344 C 436 355 424 358 413 354 C 408 351 406 346 409 343 Z" fill="#f5a623" stroke="#d98a1f" stroke-width="3"/>
  </g>

  <!-- Head and beak -->
  <g>
    <circle cx="515" cy="112" r="29" fill="#fbfdff" stroke="#394650" stroke-width="5"/>
    <circle cx="522" cy="107" r="5.5" fill="#1d232a"/>
    <circle cx="523.5" cy="105.5" r="1.4" fill="#ffffff"/>
    <path d="M 520 118 C 570 119 610 125 658 138 C 614 150 574 155 523 148 C 521 141 520 128 520 118 Z" fill="url(#beakGrad)" stroke="#d98a1f" stroke-width="5" stroke-linejoin="round"/>
    <path d="M 526 136 C 558 141 597 144 633 139" fill="none" stroke="#ffe29b" stroke-width="4" stroke-linecap="round" opacity=".6"/>
    <path d="M 514 103 q 8 -7 16 0" fill="none" stroke="#394650" stroke-width="4" stroke-linecap="round"/>
  </g>
</svg>

Token usage

16 input, 64,678 output, {"completion_tokens_details": {"reasoning_tokens": 61429}}

2026-03-17T17:58:10 conversation: 01kkyf6k18a0cgg51kff1agttv id: 01kkyf5d7s4kcaqxtfar23e2yb

Model: gpt-5.4

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: medium

Response

<!-- spokes -->
<g stroke="#95a3af" stroke-width="2">
  <!-- left wheel -->
  <line x1="220" y1="270" x2="220" y2="450"/>
  <line x1="130" y1="360" x2="310" y2="360"/>
  <line x1="156" y1="296" x2="284" y2="424"/>
  <line x1="156" y1="424" x2="284" y2="296"/>
  <!-- right wheel -->
  <line x1="540" y1="270" x2="540" y2="450"/>
  <line x1="450" y1="360" x2="630" y2="360"/>
  <line x1="476" y1="296" x2="604" y2="424"/>
  <line x1="476" y1="424" x2="604" y2="296"/>
</g>

<!-- bike frame -->
<g stroke="#c64343" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none">
  <line x1="220" y1="360" x2="350" y2="340"/>
  <line x1="350" y1="340" x2="470" y2="260"/>
  <line x1="470" y1="260" x2="310" y2="255"/>
  <line x1="310" y1="255" x2="220" y2="360"/>
  <line x1="310" y1="255" x2="350" y2="340"/>
  <line x1="310" y1="255" x2="540" y2="360"/>
  <line x1="470" y1="260" x2="540" y2="360"/>
</g>

<!-- fork and handlebar -->
<g stroke="#25323d" stroke-width="7" stroke-linecap="round" fill="none">
  <line x1="470" y1="260" x2="530" y2="285"/>
  <path d="M495 225 L470 260 L535 250"/>
</g>

<!-- seat -->
<g>
  <line x1="310" y1="255" x2="310" y2="235" stroke="#25323d" stroke-width="6" stroke-linecap="round"/>
  <path d="M285 235 Q312 220 340 232 Q320 242 285 235Z" fill="#25323d"/>
</g>

<!-- chainring and pedals -->
<g>
  <circle cx="350" cy="340" r="24" fill="none" stroke="#25323d" stroke-width="6"/>
  <line x1="350" y1="340" x2="386" y2="320" stroke="#25323d" stroke-width="6" stroke-linecap="round"/>
  <line x1="350" y1="340" x2="314" y2="360" stroke="#25323d" stroke-width="6" stroke-linecap="round"/>
  <line x1="377" y1="315" x2="397" y2="315" stroke="#25323d" stroke-width="6" stroke-linecap="round"/>
  <line x1="303" y1="365" x2="323" y2="365" stroke="#25323d" stroke-width="6" stroke-linecap="round"/>
  <path d="M241 349 Q292 325 350 340" stroke="#25323d" stroke-width="4" fill="none"/>
</g>
<!-- body -->
<ellipse cx="335" cy="185" rx="105" ry="72" fill="url(#bodyGrad)" stroke="#6e7b87" stroke-width="3"/>

<!-- wing -->
<path d="M282 168
         Q332 128 394 160
         Q382 214 315 227
         Q278 208 282 168Z"
      fill="url(#wingGrad)" stroke="#677480" stroke-width="3"/>
<path d="M300 182 Q336 167 373 183" stroke="#cfd6dc" stroke-width="4" fill="none" opacity=".7"/>

<!-- neck -->
<path d="M400 162
         Q438 152 455 128
         Q467 111 475 105
         Q490 95 500 109
         Q488 130 465 145
         Q445 158 425 184"
      fill="url(#bodyGrad)" stroke="#6e7b87" stroke-width="3"/>

<!-- head -->
<circle cx="505" cy="115" r="28" fill="url(#bodyGrad)" stroke="#6e7b87" stroke-width="3"/>

<!-- eye -->
<circle cx="514" cy="110" r="4.5" fill="#1f2933"/>
<circle cx="515.5" cy="108.5" r="1.4" fill="#fff"/>

<!-- upper beak -->
<path d="M518 119
         Q580 98 652 108
         Q590 133 523 131 Z"
      fill="url(#beakGrad)" stroke="#a96b1f" stroke-width="3"/>

<!-- lower beak -->
<path d="M517 123
         Q585 141 644 129
         Q584 165 520 140 Z"
      fill="#efb55c" stroke="#a96b1f" stroke-width="3"/>

<!-- pouch -->
<path d="M503 125
         Q540 153 590 149
         Q552 183 505 145 Z"
      fill="#f0a3a8" stroke="#b56b72" stroke-width="3"/>

<!-- beak line -->
<path d="M535 121 Q590 119 637 120" stroke="#8b5a1b" stroke-width="2" fill="none"/>

<!-- body highlight -->
<path d="M266 156 Q322 128 382 144" stroke="#ffffff" stroke-width="6" fill="none" opacity=".75"/>

<!-- legs -->
<g stroke="#df8d2f" stroke-width="7" stroke-linecap="round" stroke-linejoin="round" fill="none">
  <path d="M318 245 Q338 284 386 320"/>
  <path d="M355 245 Q334 298 314 360"/>
</g>

<!-- feet -->
<g stroke="#df8d2f" stroke-width="5" stroke-linecap="round">
  <line x1="393" y1="320" x2="402" y2="314"/>
  <line x1="393" y1="320" x2="402" y2="321"/>
  <line x1="393" y1="320" x2="401" y2="327"/>

  <line x1="314" y1="360" x2="304" y2="355"/>
  <line x1="314" y1="360" x2="304" y2="361"/>
  <line x1="314" y1="360" x2="304" y2="367"/>
</g>

<!-- arm/feather on handlebar -->
<path d="M410 185 Q455 188 496 228" stroke="#6e7b87" stroke-width="6" fill="none" stroke-linecap="round"/>
<path d="M496 228 Q503 231 507 224" stroke="#df8d2f" stroke-width="5" fill="none" stroke-linecap="round"/>

Token usage

16 input, 2,708 output, {"completion_tokens_details": {"reasoning_tokens": 512}}

2026-03-17T17:58:10 conversation: 01kkyf5rkmqeezae7qzcf8rdf5 id: 01kkyf5d7sk000hagh5e989afj

Model: gpt-5.4-mini

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: medium

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" role="img" aria-label="A pelican riding a bicycle">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#dff4ff"/>
      <stop offset="100%" stop-color="#f7fdff"/>
    </linearGradient>
    <linearGradient id="body" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#ffffff"/>
      <stop offset="100%" stop-color="#e9eef2"/>
    </linearGradient>
    <linearGradient id="beak" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#ffcb5c"/>
      <stop offset="100%" stop-color="#f39a2d"/>
    </linearGradient>
    <linearGradient id="bikeFrame" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#3b3b3b"/>
      <stop offset="100%" stop-color="#111"/>
    </linearGradient>
  </defs>

  <rect width="800" height="500" fill="url(#sky)"/>
  <ellipse cx="400" cy="430" rx="280" ry="32" fill="#000" opacity="0.08"/>

  <!-- Bicycle -->
  <g stroke="url(#bikeFrame)" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none">
    <!-- Wheels -->
    <circle cx="235" cy="365" r="72" fill="#fff" opacity="0.15"/>
    <circle cx="235" cy="365" r="72"/>
    <circle cx="565" cy="365" r="72" fill="#fff" opacity="0.15"/>
    <circle cx="565" cy="365" r="72"/>

    <!-- Spokes -->
    <g stroke-width="3" opacity="0.55">
      <line x1="235" y1="365" x2="235" y2="293"/>
      <line x1="235" y1="365" x2="286" y2="314"/>
      <line x1="235" y1="365" x2="307" y2="365"/>
      <line x1="235" y1="365" x2="286" y2="416"/>
      <line x1="235" y1="365" x2="235" y2="437"/>
      <line x1="235" y1="365" x2="184" y2="416"/>
      <line x1="235" y1="365" x2="163" y2="365"/>
      <line x1="235" y1="365" x2="184" y2="314"/>

      <line x1="565" y1="365" x2="565" y2="293"/>
      <line x1="565" y1="365" x2="616" y2="314"/>
      <line x1="565" y1="365" x2="637" y2="365"/>
      <line x1="565" y1="365" x2="616" y2="416"/>
      <line x1="565" y1="365" x2="565" y2="437"/>
      <line x1="565" y1="365" x2="514" y2="416"/>
      <line x1="565" y1="365" x2="493" y2="365"/>
      <line x1="565" y1="365" x2="514" y2="314"/>
    </g>

    <!-- Frame -->
    <polyline points="235,365 345,295 455,365 400,365 345,295 500,295 565,365"/>
    <line x1="345" y1="295" x2="430" y2="235"/>
    <line x1="430" y1="235" x2="500" y2="295"/>
    <line x1="430" y1="235" x2="400" y2="365"/>
    <line x1="455" y1="365" x2="500" y2="295"/>

    <!-- Fork / handlebars / seat -->
    <line x1="500" y1="295" x2="535" y2="245"/>
    <line x1="535" y1="245" x2="595" y2="245"/>
    <line x1="595" y1="245" x2="615" y2="225"/>
    <line x1="345" y1="295" x2="315" y2="250"/>
    <line x1="298" y1="247" x2="350" y2="247"/>
    <line x1="300" y1="247" x2="280" y2="233"/>

    <!-- Crank / pedals -->
    <circle cx="400" cy="365" r="18" fill="#fefefe" opacity="0.9" stroke="url(#bikeFrame)" stroke-width="6"/>
    <line x1="400" y1="365" x2="430" y2="348"/>
    <line x1="400" y1="365" x2="375" y2="394"/>
    <rect x="425" y="343" width="30" height="8" rx="4" transform="rotate(-18 425 343)" fill="url(#bikeFrame)" stroke="none"/>
    <rect x="366" y="392" width="30" height="8" rx="4" transform="rotate(40 366 392)" fill="url(#bikeFrame)" stroke="none"/>
  </g>

  <!-- Pelican -->
  <g transform="translate(0,0)">
    <!-- Tail / rear body -->
    <path d="M285 285
             C305 255, 360 230, 420 236
             C470 240, 520 265, 540 295
             C550 312, 546 333, 528 342
             C505 354, 470 348, 444 338
             C420 329, 388 326, 356 332
             C322 339, 288 330, 278 311
             C270 297, 273 292, 285 285 Z"
          fill="url(#body)" stroke="#263238" stroke-width="5" stroke-linejoin="round"/>

    <!-- Wing -->
    <path d="M360 281
             C382 255, 430 251, 463 269
             C480 278, 493 293, 494 307
             C470 304, 450 313, 424 314
             C401 315, 381 305, 360 281 Z"
          fill="#f5f7fa" stroke="#263238" stroke-width="4" stroke-linejoin="round"/>

    <!-- Chest -->
    <ellipse cx="392" cy="255" rx="82" ry="62" fill="url(#body)" stroke="#263238" stroke-width="5"/>

    <!-- Neck -->
    <path d="M440 230
             C468 214, 495 216, 508 228
             C518 238, 516 252, 504 259
             C490 268, 468 265, 452 255
             C442 249, 437 240, 440 230 Z"
          fill="url(#body)" stroke="#263238" stroke-width="5" stroke-linejoin="round"/>

    <!-- Head -->
    <ellipse cx="540" cy="215" rx="42" ry="30" fill="url(#body)" stroke="#263238" stroke-width="5"/>

    <!-- Eye -->
    <circle cx="552" cy="209" r="5" fill="#263238"/>
    <circle cx="554" cy="207" r="1.6" fill="#fff"/>

    <!-- Beak -->
    <path d="M574 220
             C620 221, 662 234, 690 252
             C662 258, 622 260, 576 250
             C566 248, 561 243, 560 236
             C561 229, 565 223, 574 220 Z"
          fill="url(#beak)" stroke="#b86a10" stroke-width="5" stroke-linejoin="round"/>
    <path d="M573 243
             C606 245, 636 246, 666 252"
          fill="none" stroke="#d98313" stroke-width="3" opacity="0.7"/>

    <!-- Throat pouch -->
    <path d="M560 236
             C585 248, 592 268, 576 286
             C560 303, 534 303, 520 286
             C507 270, 511 248, 526 236
             C538 226, 551 226, 560 236 Z"
          fill="#ffd69d" stroke="#b86a10" stroke-width="4" stroke-linejoin="round" opacity="0.95"/>

    <!-- Legs -->
    <g stroke="#b86a10" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none">
      <line x1="360" y1="320" x2="385" y2="360"/>
      <line x1="430" y1="330" x2="408" y2="360"/>
      <line x1="385" y1="360" x2="372" y2="384"/>
      <line x1="408" y1="360" x2="430" y2="390"/>
    </g>

    <!-- Feet on pedals -->
    <path d="M365 381
             C378 378, 392 380, 401 387
             C393 393, 381 397, 368 396
             C362 395, 359 389, 365 381 Z"
          fill="#ffb14a" stroke="#b86a10" stroke-width="4"/>
    <path d="M420 392
             C432 386, 446 386, 455 393
             C449 400, 437 405, 424 404
             C417 403, 414 398, 420 392 Z"
          fill="#ffb14a" stroke="#b86a10" stroke-width="4"/>

    <!-- Small feather detail -->
    <path d="M316 278 C330 286, 341 296, 350 309" fill="none" stroke="#b8c2cb" stroke-width="4" stroke-linecap="round" opacity="0.8"/>
    <path d="M335 268 C350 276, 360 286, 368 299" fill="none" stroke="#b8c2cb" stroke-width="4" stroke-linecap="round" opacity="0.8"/>
  </g>
</svg>

Token usage

16 input, 3,034 output, {"completion_tokens_details": {"reasoning_tokens": 512}}

2026-03-17T17:58:10 conversation: 01kkyf6dvgnkhfga06h0839yt6 id: 01kkyf5d7t3qesjpxm4s7v4a3b

Model: gpt-5.4

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: none

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 500" width="900" height="500" role="img" aria-label="A whimsical pelican riding a bicycle">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#dff3ff"/>
      <stop offset="100%" stop-color="#ffffff"/>
    </linearGradient>
    <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
      <feDropShadow dx="0" dy="3" stdDeviation="4" flood-color="#000000" flood-opacity="0.15"/>
    </filter>
  </defs>

  <rect width="900" height="500" fill="url(#sky)"/>
  <rect y="390" width="900" height="110" fill="#dff0d2"/>
  <path d="M0 400 C140 360, 260 430, 420 395 S700 360, 900 400 L900 500 L0 500 Z" fill="#c8e6b8"/>

  <!-- Motion lines -->
  <g stroke="#9bb8c9" stroke-linecap="round" opacity="0.45">
    <path d="M90 265 h45" stroke-width="4"/>
    <path d="M70 295 h65" stroke-width="3"/>
    <path d="M105 325 h35" stroke-width="3"/>
  </g>

  <!-- Bicycle -->
  <g filter="url(#shadow)">
    <!-- Wheels -->
    <g>
      <circle cx="250" cy="355" r="82" fill="none" stroke="#2f3b46" stroke-width="10"/>
      <circle cx="560" cy="355" r="82" fill="none" stroke="#2f3b46" stroke-width="10"/>
      <circle cx="250" cy="355" r="8" fill="#2f3b46"/>
      <circle cx="560" cy="355" r="8" fill="#2f3b46"/>

      <!-- Spokes -->
      <g stroke="#71808c" stroke-width="3">
        <!-- left wheel -->
        <line x1="250" y1="355" x2="250" y2="273"/>
        <line x1="250" y1="355" x2="308" y2="297"/>
        <line x1="250" y1="355" x2="332" y2="355"/>
        <line x1="250" y1="355" x2="308" y2="413"/>
        <line x1="250" y1="355" x2="250" y2="437"/>
        <line x1="250" y1="355" x2="192" y2="413"/>
        <line x1="250" y1="355" x2="168" y2="355"/>
        <line x1="250" y1="355" x2="192" y2="297"/>

        <!-- right wheel -->
        <line x1="560" y1="355" x2="560" y2="273"/>
        <line x1="560" y1="355" x2="618" y2="297"/>
        <line x1="560" y1="355" x2="642" y2="355"/>
        <line x1="560" y1="355" x2="618" y2="413"/>
        <line x1="560" y1="355" x2="560" y2="437"/>
        <line x1="560" y1="355" x2="502" y2="413"/>
        <line x1="560" y1="355" x2="478" y2="355"/>
        <line x1="560" y1="355" x2="502" y2="297"/>
      </g>
    </g>

    <!-- Frame -->
    <g stroke="#1f6fb2" stroke-width="10" stroke-linecap="round" stroke-linejoin="round" fill="none">
      <line x1="250" y1="355" x2="385" y2="255"/>
      <line x1="385" y1="255" x2="455" y2="355"/>
      <line x1="455" y1="355" x2="250" y2="355"/>
      <line x1="385" y1="255" x2="540" y2="255"/>
      <line x1="455" y1="355" x2="560" y2="355"/>
      <line x1="540" y1="255" x2="560" y2="355"/>
      <line x1="385" y1="255" x2="370" y2="205"/>
      <line x1="540" y1="255" x2="590" y2="215"/>
    </g>

    <!-- Seat -->
    <g>
      <line x1="370" y1="205" x2="370" y2="192" stroke="#2f3b46" stroke-width="7" stroke-linecap="round"/>
      <path d="M345 192 Q370 178 395 190 Q374 198 345 192 Z" fill="#2f3b46"/>
    </g>

    <!-- Handlebars -->
    <g stroke="#2f3b46" stroke-width="7" stroke-linecap="round" fill="none">
      <line x1="590" y1="215" x2="612" y2="192"/>
      <path d="M612 192 q16 -8 28 6"/>
      <path d="M612 192 q-8 -14 -24 -10"/>
    </g>

    <!-- Crank / pedals -->
    <g>
      <circle cx="455" cy="355" r="15" fill="none" stroke="#2f3b46" stroke-width="6"/>
      <line x1="455" y1="355" x2="490" y2="335" stroke="#2f3b46" stroke-width="6" stroke-linecap="round"/>
      <line x1="455" y1="355" x2="425" y2="380" stroke="#2f3b46" stroke-width="6" stroke-linecap="round"/>
      <line x1="490" y1="335" x2="510" y2="335" stroke="#2f3b46" stroke-width="6" stroke-linecap="round"/>
      <line x1="425" y1="380" x2="405" y2="380" stroke="#2f3b46" stroke-width="6" stroke-linecap="round"/>
    </g>
  </g>

  <!-- Pelican -->
  <g filter="url(#shadow)">
    <!-- Tail -->
    <path d="M296 170 Q265 155 248 128 Q281 132 309 150 Z" fill="#ece8df" stroke="#7d7a73" stroke-width="3" stroke-linejoin="round"/>

    <!-- Body -->
    <ellipse cx="410" cy="180" rx="118" ry="78" fill="#f4efe6" stroke="#7d7a73" stroke-width="4"/>

    <!-- Wing -->
    <path d="M365 155
             C325 165, 322 225, 382 240
             C430 250, 474 220, 480 186
             C458 165, 418 150, 365 155 Z"
          fill="#d9d4ca" stroke="#7d7a73" stroke-width="4"/>

    <!-- Neck -->
    <path d="M486 135
             C520 110, 552 92, 590 96
             C606 98, 612 117, 601 132
             C573 168, 538 182, 500 185 Z"
          fill="#f4efe6" stroke="#7d7a73" stroke-width="4"/>

    <!-- Head -->
    <ellipse cx="620" cy="118" rx="42" ry="32" fill="#f4efe6" stroke="#7d7a73" stroke-width="4"/>

    <!-- Eye -->
    <circle cx="632" cy="112" r="4.5" fill="#222"/>
    <circle cx="634" cy="110" r="1.5" fill="#fff"/>

    <!-- Beak upper -->
    <path d="M648 118
             C708 104, 770 108, 826 132
             C770 144, 714 146, 652 138 Z"
          fill="#f1b24c" stroke="#8c5d17" stroke-width="4" stroke-linejoin="round"/>

    <!-- Beak pouch -->
    <path d="M648 136
             C712 146, 760 180, 777 213
             C713 210, 664 191, 636 150 Z"
          fill="#f7cf8a" stroke="#8c5d17" stroke-width="4" stroke-linejoin="round"/>

    <!-- Smile seam -->
    <path d="M656 137 C698 141, 735 151, 765 169" fill="none" stroke="#8c5d17" stroke-width="3" stroke-linecap="round"/>

    <!-- Legs -->
    <g stroke="#c98229" stroke-width="8" stroke-linecap="round" fill="none">
      <!-- rear leg to lower pedal -->
      <path d="M395 245 Q415 285 425 380"/>
      <!-- front leg to upper pedal -->
      <path d="M455 242 Q487 275 490 335"/>
    </g>

    <!-- Feet -->
    <g stroke="#c98229" stroke-width="6" stroke-linecap="round">
      <path d="M400 380 l-10 8 M400 380 l-2 10 M400 380 l8 7"/>
      <path d="M510 335 l-10 8 M510 335 l0 10 M510 335 l9 7"/>
    </g>

    <!-- Pelican arm/wing on handlebar -->
    <g stroke="#7d7a73" stroke-width="6" stroke-linecap="round" fill="none">
      <path d="M505 190 Q555 185 610 195"/>
    </g>

    <!-- Rider cap -->
    <path d="M592 92 Q620 72 650 85 Q640 96 607 99 Z" fill="#1f6fb2" stroke="#174e7d" stroke-width="3"/>
    <path d="M648 85 Q666 89 678 100 Q660 102 642 98 Z" fill="#174e7d"/>
  </g>

  <!-- Ground shadow -->
  <ellipse cx="405" cy="394" rx="275" ry="22" fill="#000" opacity="0.08"/>
</svg>

Token usage

16 input, 2,471 output

2026-03-17T17:58:10 conversation: 01kkyf6yrd0yaj7q0gd0j4dcn0 id: 01kkyf5d7wr6bq8hwyz4yxaxpc

Model: gpt-5.4

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: high

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" width="800" height="500" role="img" aria-label="A pelican riding a bicycle">
  <title>Pelican riding a bicycle</title>
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#dff4ff"/>
      <stop offset="100%" stop-color="#f8fcff"/>
    </linearGradient>

    <linearGradient id="ground" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#d9f0c9"/>
      <stop offset="100%" stop-color="#bfe19d"/>
    </linearGradient>

    <radialGradient id="wheelShine" cx="35%" cy="35%" r="75%">
      <stop offset="0%" stop-color="#4b4f59"/>
      <stop offset="100%" stop-color="#23262b"/>
    </radialGradient>

    <filter id="shadow" x="-20%" y="-20%" width="140%" height="160%">
      <feDropShadow dx="0" dy="6" stdDeviation="6" flood-color="#000" flood-opacity="0.18"/>
    </filter>

    <style>
      .frame { stroke:#2c7a7b; stroke-width:10; stroke-linecap:round; stroke-linejoin:round; fill:none; }
      .metal { stroke:#55606b; stroke-width:6; stroke-linecap:round; stroke-linejoin:round; fill:none; }
      .tire { fill:url(#wheelShine); }
      .rim { fill:none; stroke:#d9dde3; stroke-width:8; }
      .spoke { stroke:#9aa3ad; stroke-width:2; opacity:.8; }
      .pelican-line { stroke:#5f6470; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
    </style>
  </defs>

  <!-- Background -->
  <rect width="800" height="500" fill="url(#sky)"/>
  <rect y="380" width="800" height="120" fill="url(#ground)"/>

  <!-- Clouds -->
  <g fill="#ffffff" opacity="0.9">
    <g transform="translate(85 72)">
      <circle cx="0" cy="18" r="18"/>
      <circle cx="22" cy="12" r="22"/>
      <circle cx="50" cy="18" r="18"/>
      <rect x="0" y="18" width="50" height="18" rx="9"/>
    </g>
    <g transform="translate(620 85) scale(0.9)">
      <circle cx="0" cy="18" r="18"/>
      <circle cx="22" cy="12" r="22"/>
      <circle cx="50" cy="18" r="18"/>
      <rect x="0" y="18" width="50" height="18" rx="9"/>
    </g>
  </g>

  <!-- Ground shadow -->
  <ellipse cx="390" cy="395" rx="270" ry="24" fill="#7fab6b" opacity="0.25"/>

  <!-- Bicycle -->
  <g filter="url(#shadow)">
    <!-- Wheels -->
    <g>
      <circle class="tire" cx="220" cy="360" r="92"/>
      <circle class="rim" cx="220" cy="360" r="72"/>
      <circle fill="#c8ced6" cx="220" cy="360" r="8"/>
      <g>
        <line class="spoke" x1="220" y1="360" x2="220" y2="288"/>
        <line class="spoke" x1="220" y1="360" x2="271" y2="309"/>
        <line class="spoke" x1="220" y1="360" x2="292" y2="360"/>
        <line class="spoke" x1="220" y1="360" x2="271" y2="411"/>
        <line class="spoke" x1="220" y1="360" x2="220" y2="432"/>
        <line class="spoke" x1="220" y1="360" x2="169" y2="411"/>
        <line class="spoke" x1="220" y1="360" x2="148" y2="360"/>
        <line class="spoke" x1="220" y1="360" x2="169" y2="309"/>
      </g>
    </g>

    <g>
      <circle class="tire" cx="540" cy="360" r="92"/>
      <circle class="rim" cx="540" cy="360" r="72"/>
      <circle fill="#c8ced6" cx="540" cy="360" r="8"/>
      <g>
        <line class="spoke" x1="540" y1="360" x2="540" y2="288"/>
        <line class="spoke" x1="540" y1="360" x2="591" y2="309"/>
        <line class="spoke" x1="540" y1="360" x2="612" y2="360"/>
        <line class="spoke" x1="540" y1="360" x2="591" y2="411"/>
        <line class="spoke" x1="540" y1="360" x2="540" y2="432"/>
        <line class="spoke" x1="540" y1="360" x2="489" y2="411"/>
        <line class="spoke" x1="540" y1="360" x2="468" y2="360"/>
        <line class="spoke" x1="540" y1="360" x2="489" y2="309"/>
      </g>
    </g>

    <!-- Bike frame -->
    <g>
      <line class="frame" x1="220" y1="360" x2="315" y2="255"/>
      <line class="frame" x1="315" y1="255" x2="475" y2="252"/>
      <line class="frame" x1="475" y1="252" x2="345" y2="340"/>
      <line class="frame" x1="345" y1="340" x2="220" y2="360"/>
      <line class="frame" x1="315" y1="255" x2="345" y2="340"/>
      <line class="frame" x1="475" y1="252" x2="540" y2="360"/>
      <line class="frame" x1="495" y1="308" x2="540" y2="360"/>
      <line class="frame" x1="220" y1="360" x2="315" y2="255"/>
      <line class="metal" x1="315" y1="255" x2="305" y2="228"/>
      <line class="metal" x1="290" y1="228" x2="320" y2="228"/>
      <line class="metal" x1="482" y1="246" x2="500" y2="220"/>
      <line class="metal" x1="478" y1="228" x2="518" y2="228"/>
      <line class="metal" x1="345" y1="340" x2="385" y2="340"/>
      <circle fill="#48525d" cx="345" cy="340" r="16"/>
      <line class="metal" x1="345" y1="340" x2="378" y2="323"/>
      <line class="metal" x1="345" y1="340" x2="311" y2="356"/>
      <line class="metal" x1="378" y1="323" x2="403" y2="323"/>
      <line class="metal" x1="311" y1="356" x2="286" y2="356"/>
    </g>
  </g>

  <!-- Pelican -->
  <g filter="url(#shadow)">
    <!-- Tail -->
    <path d="M276 210
             C245 204, 226 197, 218 184
             C237 184, 258 188, 280 199 Z"
          fill="#7f8591" class="pelican-line"/>

    <!-- Body -->
    <ellipse cx="355" cy="220" rx="105" ry="76" fill="#f8f6f1" class="pelican-line"/>

    <!-- Wing -->
    <path d="M314 185
             C270 198, 256 236, 284 266
             C316 300, 392 287, 423 252
             C397 248, 373 228, 362 206
             C351 185, 335 176, 314 185 Z"
          fill="#9aa0ab" class="pelican-line"/>

    <!-- Belly / throat pouch -->
    <path d="M392 198
             C430 212, 438 262, 395 288
             C355 306, 334 284, 339 252
             C345 217, 361 197, 392 198 Z"
          fill="#efe1b7" class="pelican-line"/>

    <!-- Neck -->
    <path d="M404 201
             C420 173, 438 149, 459 129
             C472 116, 486 114, 495 121
             C483 140, 472 158, 466 177
             C461 194, 452 208, 437 214
             C425 219, 412 214, 404 201 Z"
          fill="#f8f6f1" class="pelican-line"/>

    <!-- Head -->
    <ellipse cx="503" cy="122" rx="34" ry="28" fill="#f8f6f1" class="pelican-line"/>

    <!-- Eye -->
    <circle cx="514" cy="118" r="4" fill="#23262b"/>
    <circle cx="515.5" cy="116.5" r="1.2" fill="#fff"/>

    <!-- Beak upper -->
    <path d="M518 128
             C552 123, 594 126, 642 140
             C603 148, 562 154, 526 153
             C520 150, 517 140, 518 128 Z"
          fill="#f0a13b" class="pelican-line"/>

    <!-- Beak lower / pouch -->
    <path d="M521 150
             C560 158, 602 171, 628 186
             C591 188, 548 182, 518 170
             C513 163, 514 155, 521 150 Z"
          fill="#f3c272" class="pelican-line"/>

    <!-- Smile line -->
    <path d="M540 153 C573 158, 596 166, 614 177" fill="none" class="pelican-line" opacity="0.45"/>

    <!-- Arm / flipper to handlebar -->
    <path d="M421 214
             C455 220, 476 223, 493 228
             C499 230, 502 236, 499 241
             C496 246, 489 246, 484 244
             C462 236, 445 236, 420 235 Z"
          fill="#f8f6f1" class="pelican-line"/>

    <!-- Hand on handlebar -->
    <ellipse cx="486" cy="239" rx="10" ry="7" fill="#f0a13b" class="pelican-line"/>

    <!-- Leg 1 -->
    <path d="M344 282
             C337 301, 331 316, 326 334
             C324 341, 320 347, 313 351
             C305 355, 298 354, 294 349
             C299 344, 303 339, 305 333
             C311 316, 318 297, 324 279 Z"
          fill="#e58e2c" class="pelican-line"/>

    <!-- Foot 1 on rear pedal -->
    <path d="M285 346
             C293 346, 302 347, 311 349
             C309 355, 304 359, 296 360
             C289 360, 282 358, 278 355
             C278 350, 281 347, 285 346 Z"
          fill="#ef9f2d" class="pelican-line"/>

    <!-- Leg 2 -->
    <path d="M378 282
             C375 300, 375 314, 378 328
             C380 337, 387 343, 396 344
             C404 345, 410 342, 412 336
             C406 333, 401 329, 398 323
             C394 313, 392 298, 392 282 Z"
          fill="#e58e2c" class="pelican-line"/>

    <!-- Foot 2 on front pedal -->
    <path d="M398 319
             C406 318, 414 319, 421 321
             C420 327, 415 331, 408 332
             C400 333, 392 331, 388 328
             C389 323, 393 320, 398 319 Z"
          fill="#ef9f2d" class="pelican-line"/>
  </g>

  <!-- Little motion accents -->
  <g stroke="#7aa9d8" stroke-width="3" stroke-linecap="round" opacity="0.6" fill="none">
    <path d="M120 300 C95 310, 95 340, 120 350"/>
    <path d="M655 295 C680 305, 680 335, 655 345"/>
    <path d="M110 328 h-26"/>
    <path d="M680 320 h28"/>
  </g>

  <!-- Grass details -->
  <g stroke="#7fb36b" stroke-width="3" stroke-linecap="round" opacity="0.65">
    <path d="M70 392 l6 -12 l6 12"/>
    <path d="M132 396 l7 -14 l7 14"/>
    <path d="M620 395 l7 -13 l7 13"/>
    <path d="M710 392 l6 -12 l6 12"/>
  </g>
</svg>

Token usage

16 input, 3,887 output, {"completion_tokens_details": {"reasoning_tokens": 512}}

2026-03-17T17:58:10 conversation: 01kkyf5mbsgjr5p813hgtctsj7 id: 01kkyf5d7xbf1nk01xktfnyntp

Model: gpt-5.4-mini

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: low

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" width="800" height="500">
  <rect width="800" height="500" fill="#f4fbff"/>
  
  <!-- Ground -->
  <line x1="80" y1="420" x2="720" y2="420" stroke="#7cc36e" stroke-width="6" stroke-linecap="round"/>
  
  <!-- Bicycle -->
  <g stroke="#2f3b52" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none">
    <!-- Wheels -->
    <circle cx="250" cy="350" r="70"/>
    <circle cx="520" cy="350" r="70"/>
    <!-- Frame -->
    <path d="M250 350 L340 290 L430 350 L520 350 L390 250 L340 290"/>
    <path d="M390 250 L460 250"/>
    <path d="M430 350 L460 250"/>
    <!-- Seat post and seat -->
    <path d="M390 250 L390 220"/>
    <path d="M360 220 L420 220"/>
    <path d="M360 220 Q390 195 420 220"/>
    <!-- Handlebar -->
    <path d="M460 250 L500 220"/>
    <path d="M490 210 L525 210"/>
    <path d="M525 210 L540 225"/>
    <!-- Pedals -->
    <circle cx="340" cy="290" r="18"/>
    <path d="M340 272 L315 252"/>
    <path d="M340 308 L365 328"/>
  </g>
  
  <!-- Spokes -->
  <g stroke="#8ea3b8" stroke-width="3" opacity="0.8">
    <g>
      <line x1="250" y1="350" x2="250" y2="280"/>
      <line x1="250" y1="350" x2="300" y2="300"/>
      <line x1="250" y1="350" x2="320" y2="350"/>
      <line x1="250" y1="350" x2="300" y2="400"/>
      <line x1="250" y1="350" x2="250" y2="420"/>
      <line x1="250" y1="350" x2="200" y2="400"/>
      <line x1="250" y1="350" x2="180" y2="350"/>
      <line x1="250" y1="350" x2="200" y2="300"/>
    </g>
    <g transform="translate(270,0)">
      <line x1="250" y1="350" x2="250" y2="280"/>
      <line x1="250" y1="350" x2="300" y2="300"/>
      <line x1="250" y1="350" x2="320" y2="350"/>
      <line x1="250" y1="350" x2="300" y2="400"/>
      <line x1="250" y1="350" x2="250" y2="420"/>
      <line x1="250" y1="350" x2="200" y2="400"/>
      <line x1="250" y1="350" x2="180" y2="350"/>
      <line x1="250" y1="350" x2="200" y2="300"/>
    </g>
  </g>
  
  <!-- Pelican -->
  <g transform="translate(0,0)">
    <!-- Body -->
    <ellipse cx="360" cy="205" rx="95" ry="70" fill="#ffffff" stroke="#2f3b52" stroke-width="5"/>
    
    <!-- Wing -->
    <path d="M330 190 Q360 230 410 205 Q385 255 335 235 Z" fill="#e8eef5" stroke="#2f3b52" stroke-width="4"/>
    
    <!-- Neck -->
    <path d="M420 180 Q470 170 470 120 Q468 80 435 70" fill="none" stroke="#2f3b52" stroke-width="18" stroke-linecap="round"/>
    <path d="M420 180 Q470 170 470 120 Q468 80 435 70" fill="none" stroke="#ffffff" stroke-width="12" stroke-linecap="round"/>
    
    <!-- Head -->
    <circle cx="435" cy="68" r="32" fill="#ffffff" stroke="#2f3b52" stroke-width="5"/>
    
    <!-- Eye -->
    <circle cx="444" cy="62" r="4.5" fill="#2f3b52"/>
    
    <!-- Beak pouch -->
    <path d="M450 82
             Q540 105 565 150
             Q530 165 470 150
             Q445 132 450 82 Z"
          fill="#f3c46b" stroke="#2f3b52" stroke-width="5" stroke-linejoin="round"/>
    <!-- Beak tip -->
    <path d="M548 128 Q585 123 610 136 Q583 148 555 146" fill="#e2a94e" stroke="#2f3b52" stroke-width="5" stroke-linejoin="round"/>
    
    <!-- Legs on pedals -->
    <g stroke="#2f3b52" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none">
      <path d="M355 265 L340 290"/>
      <path d="M385 265 L365 290"/>
      <path d="M340 290 L320 320"/>
      <path d="M365 290 L375 325"/>
    </g>
    
    <!-- Feet -->
    <g fill="#f3c46b" stroke="#2f3b52" stroke-width="4" stroke-linejoin="round">
      <path d="M312 320 Q330 314 338 327 Q321 340 305 335 Z"/>
      <path d="M372 324 Q390 318 398 331 Q381 344 365 339 Z"/>
    </g>
    
    <!-- Small tail -->
    <path d="M275 215 Q235 230 255 250 Q285 245 295 228 Z" fill="#ffffff" stroke="#2f3b52" stroke-width="4"/>
    
    <!-- Saddle connection hint -->
    <path d="M385 250 L390 230" stroke="#2f3b52" stroke-width="8" stroke-linecap="round"/>
  </g>
  
  <!-- Motion lines -->
  <g stroke="#9cc8e8" stroke-width="5" stroke-linecap="round" opacity="0.7">
    <line x1="110" y1="330" x2="170" y2="330"/>
    <line x1="120" y1="360" x2="190" y2="360"/>
    <line x1="600" y1="255" x2="675" y2="255"/>
    <line x1="615" y1="285" x2="690" y2="285"/>
  </g>
</svg>

Token usage

16 input, 1,661 output, {"completion_tokens_details": {"reasoning_tokens": 13}}

2026-03-17T17:58:10 conversation: 01kkyf5q0r8tcy2dh9bz14xzcs id: 01kkyf5d86kee8nm59tp4bpa0h

Model: gpt-5.4-mini

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: none

Response

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" role="img" aria-label="A pelican riding a bicycle">
  <defs>
    <style>
      .line { stroke: #1f1f1f; stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; fill: none; }
      .fill-dark { fill: #2f2f2f; }
      .fill-body { fill: #f2e7c9; }
      .fill-belly { fill: #fff6dc; }
      .fill-beak { fill: #e7b13b; }
      .fill-red { fill: #d96c4a; }
      .fill-bike { fill: #3d4a5a; }
      .fill-wheel { fill: #6d7a88; }
      .fill-seat { fill: #5a4336; }
      .ground { stroke: #c7d8c2; stroke-width: 10; stroke-linecap: round; }
    </style>
  </defs>

  <!-- background -->
  <rect width="800" height="500" fill="#e9f6ff"/>
  <circle cx="690" cy="90" r="34" fill="#ffe07a" opacity="0.95"/>
  <path d="M70 400 C180 370, 300 420, 410 395 S630 385, 760 405" class="ground"/>

  <!-- bicycle wheels -->
  <g>
    <circle cx="240" cy="360" r="78" class="line fill-wheel"/>
    <circle cx="240" cy="360" r="54" fill="#e9f6ff" stroke="#1f1f1f" stroke-width="6"/>
    <circle cx="560" cy="360" r="78" class="line fill-wheel"/>
    <circle cx="560" cy="360" r="54" fill="#e9f6ff" stroke="#1f1f1f" stroke-width="6"/>

    <!-- spokes -->
    <g stroke="#1f1f1f" stroke-width="4" stroke-linecap="round">
      <line x1="240" y1="360" x2="240" y2="282"/>
      <line x1="240" y1="360" x2="240" y2="438"/>
      <line x1="240" y1="360" x2="162" y2="360"/>
      <line x1="240" y1="360" x2="318" y2="360"/>
      <line x1="240" y1="360" x2="185" y2="305"/>
      <line x1="240" y1="360" x2="295" y2="305"/>
      <line x1="240" y1="360" x2="185" y2="415"/>
      <line x1="240" y1="360" x2="295" y2="415"/>

      <line x1="560" y1="360" x2="560" y2="282"/>
      <line x1="560" y1="360" x2="560" y2="438"/>
      <line x1="560" y1="360" x2="482" y2="360"/>
      <line x1="560" y1="360" x2="638" y2="360"/>
      <line x1="560" y1="360" x2="505" y2="305"/>
      <line x1="560" y1="360" x2="615" y2="305"/>
      <line x1="560" y1="360" x2="505" y2="415"/>
      <line x1="560" y1="360" x2="615" y2="415"/>
    </g>
  </g>

  <!-- bicycle frame -->
  <g class="line">
    <line x1="240" y1="360" x2="335" y2="292"/>
    <line x1="335" y1="292" x2="455" y2="292"/>
    <line x1="455" y1="292" x2="560" y2="360"/>
    <line x1="335" y1="292" x2="290" y2="360"/>
    <line x1="290" y1="360" x2="455" y2="292"/>
    <line x1="455" y1="292" x2="500" y2="250"/>
    <line x1="500" y1="250" x2="560" y2="250"/>
    <line x1="560" y1="250" x2="560" y2="360"/>
    <line x1="290" y1="360" x2="240" y2="360"/>
    <line x1="500" y1="250" x2="470" y2="220"/>
    <line x1="470" y1="220" x2="520" y2="220"/>
    <line x1="520" y1="220" x2="540" y2="250"/>
  </g>

  <!-- handlebars and seat -->
  <g>
    <path d="M548 225 Q575 205 595 220" class="line"/>
    <path d="M595 220 Q610 230 620 245" class="line"/>
    <rect x="505" y="210" width="30" height="18" rx="8" class="fill-seat" stroke="#1f1f1f" stroke-width="5"/>
  </g>

  <!-- pedals -->
  <g class="line">
    <circle cx="455" cy="292" r="24" fill="#ffffff"/>
    <line x1="455" y1="292" x2="485" y2="310"/>
    <line x1="455" y1="292" x2="430" y2="270"/>
    <line x1="478" y1="305" x2="498" y2="318"/>
    <line x1="432" y1="279" x2="412" y2="266"/>
  </g>

  <!-- pelican body -->
  <g transform="translate(0,0)">
    <!-- tail / rear body -->
    <path d="M270 240
             C240 255, 225 285, 232 320
             C240 360, 285 388, 340 382
             C400 376, 430 340, 420 300
             C410 258, 365 228, 320 228
             C302 228, 286 232, 270 240 Z"
          class="fill-body" stroke="#1f1f1f" stroke-width="6" stroke-linejoin="round"/>

    <!-- belly -->
    <path d="M290 255
             C262 270, 254 298, 260 325
             C267 356, 298 372, 336 368
             C371 364, 394 340, 388 309
             C381 275, 350 252, 318 250
             C307 249, 298 251, 290 255 Z"
          class="fill-belly" opacity="0.95" stroke="#1f1f1f" stroke-width="5"/>

    <!-- neck -->
    <path d="M320 235
             C332 205, 348 180, 372 160
             C390 145, 406 140, 418 147
             C430 154, 430 170, 419 180
             C399 198, 385 214, 378 238"
          class="fill-body" stroke="#1f1f1f" stroke-width="6" stroke-linejoin="round"/>

    <!-- head -->
    <ellipse cx="438" cy="150" rx="56" ry="42" class="fill-body" stroke="#1f1f1f" stroke-width="6"/>
    <circle cx="452" cy="142" r="6" fill="#1f1f1f"/>

    <!-- beak -->
    <path d="M480 154
             C535 150, 580 160, 620 176
             C585 190, 536 197, 485 183
             C472 179, 468 160, 480 154 Z"
          class="fill-beak" stroke="#1f1f1f" stroke-width="6" stroke-linejoin="round"/>
    <path d="M490 169 C535 168, 564 171, 598 180" class="line" opacity="0.45"/>
    <path d="M496 177 C523 184, 553 186, 583 182" class="line" opacity="0.35"/>

    <!-- pouch -->
    <path d="M488 176
             C496 210, 492 240, 473 260
             C457 277, 433 280, 423 262
             C414 246, 425 223, 442 211
             C456 202, 470 193, 488 176 Z"
          fill="#f0c56d" stroke="#1f1f1f" stroke-width="6" stroke-linejoin="round"/>

    <!-- wing -->
    <path d="M300 275
             C330 255, 378 260, 395 293
             C407 316, 398 344, 372 355
             C338 370, 292 350, 278 317
             C271 300, 280 284, 300 275 Z"
          class="fill-red" stroke="#1f1f1f" stroke-width="6" stroke-linejoin="round"/>

    <!-- saddle connection / body overlap -->
    <path d="M330 315 C370 300, 405 294, 448 292" class="line" opacity="0.15"/>

    <!-- legs -->
    <g class="line">
      <path d="M330 366 C315 388, 307 404, 306 424" />
      <path d="M348 368 C356 390, 362 406, 362 425" />
      <path d="M304 424 C295 432, 287 440, 278 444" />
      <path d="M362 425 C370 433, 380 440, 389 444" />
    </g>

    <!-- feet on pedals / ground -->
    <g>
      <path d="M270 442 C284 436, 298 436, 310 442 C299 453, 282 456, 270 442 Z"
            class="fill-beak" stroke="#1f1f1f" stroke-width="5"/>
      <path d="M374 442 C388 436, 402 436, 414 442 C403 453, 386 456, 374 442 Z"
            class="fill-beak" stroke="#1f1f1f" stroke-width="5"/>
    </g>

    <!-- small shadow -->
    <ellipse cx="400" cy="395" rx="140" ry="22" fill="#000000" opacity="0.08"/>
  </g>
</svg>

Token usage

16 input, 2,533 output

2026-03-17T17:58:10 conversation: 01kkyf5twk9pmtz9x31m4q59vy id: 01kkyf5d8ec7v41q5bwz9kf9s9

Model: gpt-5.4-nano

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: none

Response

<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600" viewBox="0 0 900 600">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#bfe8ff"/>
      <stop offset="100%" stop-color="#ffffff"/>
    </linearGradient>
    <linearGradient id="ground" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#7bd389"/>
      <stop offset="100%" stop-color="#2f8f4b"/>
    </linearGradient>
    <linearGradient id="pelicanBody" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#ffffff"/>
      <stop offset="100%" stop-color="#e8eef5"/>
    </linearGradient>
    <linearGradient id="pelicanBeak" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0%" stop-color="#ffd36e"/>
      <stop offset="100%" stop-color="#ff9f1a"/>
    </linearGradient>
    <style>
      .stroke { stroke-linecap: round; stroke-linejoin: round; }
    </style>
  </defs>

  <!-- Background -->
  <rect width="900" height="600" fill="url(#sky)"/>
  <circle cx="120" cy="95" r="35" fill="#fff" opacity="0.9"/>
  <circle cx="155" cy="80" r="22" fill="#fff" opacity="0.9"/>
  <circle cx="190" cy="100" r="28" fill="#fff" opacity="0.9"/>

  <!-- Ground -->
  <path d="M0,440 C160,410 290,470 450,440 C610,410 740,470 900,440 L900,600 L0,600 Z"
        fill="url(#ground)" opacity="0.95"/>

  <!-- Simple sun light -->
  <g opacity="0.15" fill="#ffd36e">
    <circle cx="760" cy="100" r="90"/>
  </g>

  <!-- Bicycle -->
  <!-- Wheels -->
  <g transform="translate(0,0)">
    <!-- Rear wheel -->
    <g transform="translate(250,390)">
      <circle r="85" fill="none" stroke="#1f2937" stroke-width="10"/>
      <circle r="60" fill="none" stroke="#111827" stroke-width="4" opacity="0.9"/>
      <circle r="10" fill="#111827"/>
      <!-- Spokes -->
      <g stroke="#374151" stroke-width="3" opacity="0.85">
        <line x1="0" y1="-70" x2="0" y2="70"/>
        <line x1="-62" y1="-35" x2="62" y2="35"/>
        <line x1="-62" y1="35" x2="62" y2="-35"/>
        <line x1="-35" y1="-62" x2="35" y2="62"/>
        <line x1="35" y1="-62" x2="-35" y2="62"/>
      </g>
    </g>

    <!-- Front wheel -->
    <g transform="translate(640,390)">
      <circle r="85" fill="none" stroke="#1f2937" stroke-width="10"/>
      <circle r="60" fill="none" stroke="#111827" stroke-width="4" opacity="0.9"/>
      <circle r="10" fill="#111827"/>
      <!-- Spokes -->
      <g stroke="#374151" stroke-width="3" opacity="0.85">
        <line x1="0" y1="-70" x2="0" y2="70"/>
        <line x1="-62" y1="-35" x2="62" y2="35"/>
        <line x1="-62" y1="35" x2="62" y2="-35"/>
        <line x1="-35" y1="-62" x2="35" y2="62"/>
        <line x1="35" y1="-62" x2="-35" y2="62"/>
      </g>
    </g>
  </g>

  <!-- Frame -->
  <g class="stroke" stroke="#111827" stroke-width="8" fill="none">
    <!-- Down tube -->
    <path d="M315,360 L520,400"/>
    <!-- Top tube -->
    <path d="M315,360 L575,250"/>
    <!-- Seat tube -->
    <path d="M520,400 L575,250"/>
    <!-- Head tube -->
    <path d="M575,250 L640,390"/>
    <!-- Chain stay -->
    <path d="M250,390 L520,400"/>
    <!-- Seat stay -->
    <path d="M520,400 L640,390"/>
  </g>

  <!-- Handlebar / stem -->
  <g class="stroke" fill="none" stroke="#111827" stroke-width="8">
    <path d="M640,390 L675,325"/>
    <path d="M672,330 L740,330"/>
    <path d="M672,330 L705,300"/>
  </g>

  <!-- Seat -->
  <g>
    <path d="M520,400 C530,375 565,360 595,368 C577,390 552,410 520,400 Z"
          fill="#0f172a" opacity="0.95" stroke="#111827" stroke-width="4" class="stroke"/>
  </g>

  <!-- Pedals -->
  <g fill="#111827">
    <circle cx="520" cy="400" r="12"/>
    <circle cx="520" cy="390" r="6" opacity="0.9"/>
  </g>

  <!-- Pelican -->
  <!-- Body -->
  <g transform="translate(0,0)">
    <!-- Feet -->
    <g class="stroke" fill="none" stroke="#3b2f2f" stroke-width="6">
      <path d="M455,455 C440,495 428,512 420,518" />
      <path d="M485,455 C510,495 520,512 535,518" />
    </g>
    <g>
      <path d="M412,520 C420,505 440,510 445,520 C438,532 420,535 412,520 Z"
            fill="#2b1f1f" opacity="0.95"/>
      <path d="M532,520 C520,505 505,510 500,520 C505,532 525,536 532,520 Z"
            fill="#2b1f1f" opacity="0.95"/>
    </g>

    <!-- Tail / back -->
    <ellipse cx="500" cy="365" rx="60" ry="55" fill="url(#pelicanBody)" stroke="#cfd8e3" stroke-width="4"/>

    <!-- Main body -->
    <ellipse cx="495" cy="385" rx="95" ry="85" fill="url(#pelicanBody)" stroke="#cfd8e3" stroke-width="4"/>

    <!-- Wing -->
    <path d="M440,395
             C395,380 370,350 375,320
             C382,280 430,275 458,308
             C470,322 470,345 470,360
             C470,372 465,385 455,392 Z"
          fill="#e9f0f8" stroke="#cfd8e3" stroke-width="4" class="stroke"/>
    <path d="M395,326 C420,340 440,360 455,386" stroke="#b9c6d9" stroke-width="4" opacity="0.9"/>

    <!-- Neck -->
    <path d="M545,330
             C585,270 610,250 640,240
             C665,232 685,235 694,250
             C680,260 655,270 635,292
             C617,312 600,340 592,365
             C575,415 530,425 520,385
             C515,368 528,350 545,330 Z"
          fill="#ffffff" stroke="#cfd8e3" stroke-width="4" class="stroke"/>

    <!-- Head -->
    <g>
      <ellipse cx="690" cy="250" rx="32" ry="26" fill="#ffffff" stroke="#cfd8e3" stroke-width="4"/>
      <!-- Eye -->
      <circle cx="700" cy="246" r="4.5" fill="#0f172a"/>
      <circle cx="701.5" cy="244.5" r="1.6" fill="#ffffff" opacity="0.9"/>
      <!-- Beak -->
      <path d="M715,245
               C755,235 792,232 815,230
               C792,260 752,280 715,275 Z"
            fill="url(#pelicanBeak)" stroke="#f18a00" stroke-width="4" class="stroke"/>
      <path d="M742,245 C770,240 792,241 808,238" stroke="#ffb64a" stroke-width="4" opacity="0.9"/>
      <!-- Hook line under beak -->
      <path d="M720,268 C748,282 780,283 808,270" stroke="#e57b00" stroke-width="4" opacity="0.6"/>
    </g>

    <!-- Pouch -->
    <path d="M570,390
             C595,425 592,470 560,487
             C530,503 492,485 485,450
             C480,425 505,405 530,395
             C545,390 560,387 570,390 Z"
          fill="#f7fbff" stroke="#cfd8e3" stroke-width="4" class="stroke"/>

    <!-- Pouch pleats -->
    <g stroke="#cbd5e1" stroke-width="3" opacity="0.9" fill="none">
      <path d="M500,463 C525,455 545,450 570,430"/>
      <path d="M498,445 C525,440 550,432 575,412"/>
      <path d="M505,480 C530,475 548,468 565,455"/>
      <path d="M505,470 C528,468 548,462 562,452"/>
    </g>

    <!-- Arms (wings held) -->
    <g stroke="#cfd8e3" stroke-width="6" fill="none" class="stroke" opacity="0.95">
      <path d="M455,420 C430,405 405,412 392,430"/>
      <path d="M470,405 C445,390 430,375 430,360"/>
    </g>

    <!-- Hands on handlebars (simple webbed grips) -->
    <g>
      <path d="M665,320 C690,310 707,312 720,322
               C708,330 690,335 675,330 Z"
            fill="#f7fbff" stroke="#cfd8e3" stroke-width="4" class="stroke"/>
      <path d="M660,332 C670,325 685,322 705,322" stroke="#cfd8e3" stroke-width="4" opacity="0.9"/>
    </g>

    <!-- Rider legs to pedals -->
    <g>
      <path d="M480,430 C495,435 508,443 520,450" fill="none" stroke="#3b2f2f" stroke-width="7" class="stroke"/>
      <path d="M505,455 C520,475 520,490 515,505" fill="none" stroke="#3b2f2f" stroke-width="7" class="stroke"/>
      <path d="M475,430 C452,440 442,462 438,478" fill="none" stroke="#3b2f2f" stroke-width="7" class="stroke"/>
    </g>
  </g>

  <!-- Motion hint -->
  <g opacity="0.25" stroke="#111827" stroke-width="6" fill="none" stroke-linecap="round">
    <path d="M180,430 C220,415 250,415 290,430"/>
    <path d="M710,430 C750,415 780,415 820,430"/>
  </g>

  <!-- Ground shadow -->
  <ellipse cx="445" cy="520" rx="260" ry="45" fill="#000" opacity="0.12"/>
</svg>

Token usage

16 input, 2,876 output

2026-03-17T18:07:50 conversation: 01kkyfyvrbbgfvqqd85r3h1h5k id: 01kkyfq3azwkganfm18vet6841

Model: gpt-5.4

Prompt

Generate an SVG of a pelican riding a bicycle

Options

  • reasoning_effort: xhigh

Response

Sure — here’s a self-contained SVG:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" role="img" aria-label="A pelican riding a bicycle">
  <title>Pelican riding a bicycle</title>
  <desc>A cheerful cartoon pelican pedaling a blue bicycle.</desc>

  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#eef8ff"/>
      <stop offset="100%" stop-color="#ffffff"/>
    </linearGradient>

    <linearGradient id="feather" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#ffffff"/>
      <stop offset="65%" stop-color="#e2e8ed"/>
      <stop offset="100%" stop-color="#c8d0d8"/>
    </linearGradient>

    <linearGradient id="wingGrad" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#b0bac4"/>
      <stop offset="100%" stop-color="#7b8794"/>
    </linearGradient>

    <linearGradient id="beakGrad" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0%" stop-color="#ffd274"/>
      <stop offset="100%" stop-color="#ef9d2f"/>
    </linearGradient>

    <linearGradient id="pouchGrad" x1="0" y1="0" x2="0.8" y2="1">
      <stop offset="0%" stop-color="#ffe8ba"/>
      <stop offset="100%" stop-color="#efcd8b"/>
    </linearGradient>
  </defs>

  <rect width="800" height="500" fill="url(#sky)"/>

  <g fill="#ffffff" opacity="0.8">
    <circle cx="155" cy="90" r="22"/>
    <circle cx="182" cy="82" r="28"/>
    <circle cx="212" cy="92" r="20"/>
  </g>

  <g fill="#ffffff" opacity="0.65">
    <circle cx="635" cy="70" r="20"/>
    <circle cx="660" cy="60" r="26"/>
    <circle cx="690" cy="72" r="18"/>
  </g>

  <g stroke="#d5e0e7" stroke-width="4" stroke-linecap="round" opacity="0.9">
    <line x1="90" y1="332" x2="150" y2="332"/>
    <line x1="110" y1="356" x2="170" y2="356"/>
    <line x1="98" y1="380" x2="158" y2="380"/>
  </g>

  <ellipse cx="360" cy="458" rx="280" ry="20" fill="#000000" opacity="0.08"/>

  <g id="bike">
    <g transform="translate(220 360)">
      <circle r="95" fill="#ffffff" stroke="#1f2a33" stroke-width="10"/>
      <circle r="82" fill="none" stroke="#97a7b4" stroke-width="4"/>
      <g stroke="#acb8c3" stroke-width="3">
        <line x1="0" y1="0" x2="0" y2="-82"/>
        <line x1="0" y1="0" x2="58" y2="-58"/>
        <line x1="0" y1="0" x2="82" y2="0"/>
        <line x1="0" y1="0" x2="58" y2="58"/>
        <line x1="0" y1="0" x2="0" y2="82"/>
        <line x1="0" y1="0" x2="-58" y2="58"/>
        <line x1="0" y1="0" x2="-82" y2="0"/>
        <line x1="0" y1="0" x2="-58" y2="-58"/>
      </g>
      <circle r="12" fill="#6c7883" stroke="#24323f" stroke-width="4"/>
    </g>

    <g transform="translate(500 360)">
      <circle r="95" fill="#ffffff" stroke="#1f2a33" stroke-width="10"/>
      <circle r="82" fill="none" stroke="#97a7b4" stroke-width="4"/>
      <g stroke="#acb8c3" stroke-width="3">
        <line x1="0" y1="0" x2="0" y2="-82"/>
        <line x1="0" y1="0" x2="58" y2="-58"/>
        <line x1="0" y1="0" x2="82" y2="0"/>
        <line x1="0" y1="0" x2="58" y2="58"/>
        <line x1="0" y1="0" x2="0" y2="82"/>
        <line x1="0" y1="0" x2="-58" y2="58"/>
        <line x1="0" y1="0" x2="-82" y2="0"/>
        <line x1="0" y1="0" x2="-58" y2="-58"/>
      </g>
      <circle r="12" fill="#6c7883" stroke="#24323f" stroke-width="4"/>
    </g>

    <g fill="none" stroke-linecap="round" stroke-linejoin="round">
      <g stroke="#1f7c92" stroke-width="9">
        <line x1="220" y1="360" x2="340" y2="335"/>
        <line x1="220" y1="360" x2="300" y2="245"/>
        <line x1="300" y1="245" x2="340" y2="335"/>
        <line x1="300" y1="245" x2="450" y2="255"/>
        <line x1="430" y1="295" x2="340" y2="335"/>
        <line x1="450" y1="255" x2="430" y2="295"/>
        <line x1="450" y1="255" x2="500" y2="360"/>
        <line x1="430" y1="295" x2="500" y2="360"/>
      </g>

      <g stroke="#24323f" stroke-width="8">
        <path d="M274 238 C292 228 321 228 332 239"/>
        <path d="M447 248 C468 223 499 222 518 239"/>
        <line x1="498" y1="230" x2="509" y2="245"/>
      </g>

      <g stroke="#24323f" stroke-width="6">
        <circle cx="340" cy="335" r="23" fill="#ffffff"/>
        <line x1="340" y1="335" x2="386" y2="354"/>
        <line x1="340" y1="335" x2="308" y2="308"/>
      </g>

      <rect x="373" y="350" width="26" height="8" rx="4" fill="#24323f" transform="rotate(15 386 354)"/>
      <rect x="295" y="304" width="26" height="8" rx="4" fill="#24323f" transform="rotate(-25 308 308)"/>
      <path d="M220 360 Q280 358 340 335" fill="none" stroke="#6d7882" stroke-width="4"/>
    </g>
  </g>

  <g id="pelican">
    <path d="M222 184 C201 193 189 211 190 232 C214 226 233 213 245 194 Z"
          fill="#a7b1bb" stroke="#374451" stroke-width="4" stroke-linejoin="round"/>

    <g stroke-linecap="round" stroke-linejoin="round" fill="none">
      <path d="M298 250 Q309 278 308 308" stroke="#8b5428" stroke-width="10"/>
      <path d="M298 250 Q309 278 308 308" stroke="#e6a04a" stroke-width="6"/>
      <path d="M300 312 C309 314 318 313 325 309" stroke="#8b5428" stroke-width="10"/>
      <path d="M300 312 C309 314 318 313 325 309" stroke="#e6a04a" stroke-width="6"/>

      <path d="M334 255 Q354 301 386 354" stroke="#8b5428" stroke-width="10"/>
      <path d="M334 255 Q354 301 386 354" stroke="#e6a04a" stroke-width="6"/>
      <path d="M378 359 C388 360 397 359 406 354" stroke="#8b5428" stroke-width="10"/>
      <path d="M378 359 C388 360 397 359 406 354" stroke="#e6a04a" stroke-width="6"/>
    </g>

    <ellipse cx="315" cy="188" rx="108" ry="80"
             transform="rotate(-7 315 188)"
             fill="url(#feather)" stroke="#374451" stroke-width="4"/>

    <ellipse cx="312" cy="206" rx="70" ry="49"
             transform="rotate(-7 312 206)"
             fill="#f8fbfd" opacity="0.9"/>

    <path d="M292 151 C260 180 262 228 304 252 C347 275 385 244 377 198 C371 163 336 144 292 151 Z"
          fill="url(#wingGrad)" stroke="#374451" stroke-width="4"/>

    <path d="M360 177 C370 138 383 111 398 90"
          fill="none" stroke="#374451" stroke-width="42" stroke-linecap="round"/>
    <path d="M360 177 C370 138 383 111 398 90"
          fill="none" stroke="url(#feather)" stroke-width="34" stroke-linecap="round"/>

    <path d="M350 179 C387 187 420 203 452 236"
          fill="none" stroke="#374451" stroke-width="16" stroke-linecap="round"/>
    <path d="M350 179 C387 187 420 203 452 236"
          fill="none" stroke="#dfe6ec" stroke-width="10" stroke-linecap="round"/>

    <ellipse cx="410" cy="82" rx="31" ry="27"
             fill="url(#feather)" stroke="#374451" stroke-width="4"/>
    <path d="M388 76 C394 60 420 57 432 70 C425 58 403 55 388 76 Z"
          fill="#aab4be" opacity="0.8"/>
    <path d="M411 68 Q420 64 426 69"
          fill="none" stroke="#374451" stroke-width="3" stroke-linecap="round"/>
    <circle cx="417" cy="79" r="4.8" fill="#202830"/>
    <circle cx="419" cy="77" r="1.4" fill="#ffffff"/>

    <path d="M424 83 C470 73 521 75 571 90 C522 98 471 101 426 94 Z"
          fill="url(#beakGrad)" stroke="#9b6625" stroke-width="4" stroke-linejoin="round"/>
    <path d="M425 95 C473 103 516 118 550 148 C515 161 474 159 438 141 C426 132 419 114 425 95 Z"
          fill="url(#pouchGrad)" stroke="#9b6625" stroke-width="4" stroke-linejoin="round"/>
    <path d="M548 145 C559 133 567 119 571 103 C563 103 555 104 549 107 Z"
          fill="#e46e57" opacity="0.65"/>
    <path d="M428 94 C476 93 524 95 567 103"
          fill="none" stroke="#bf7c28" stroke-width="3" stroke-linecap="round"/>
  </g>
</svg>

If you want, I can also make it more realistic, more minimalist, or with a transparent background.

Token usage

16 input, 17,930 output, {"completion_tokens_details": {"reasoning_tokens": 14829}}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment