Skip to content

Instantly share code, notes, and snippets.

@simonw

simonw/pro.md Secret

Created March 6, 2026 01:10
Show Gist options
  • Select an option

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

Select an option

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

2026-03-06T01:02:50 conversation: 01kk0az2sem90dcjwbrbfq9m0t id: 01kk0apc46b9xs40aga2ma8g0h

Model: openai/gpt-5.4-pro

Prompt

Generate an SVG of a pelican riding a bicycle

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 playful SVG illustration of a pelican pedaling a bicycle.</desc>

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

    <linearGradient id="wingShade" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#8a96a6"/>
      <stop offset="100%" stop-color="#59616d"/>
    </linearGradient>

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

    <linearGradient id="pouchGrad" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#ffd6a5"/>
      <stop offset="100%" stop-color="#fca5a5"/>
    </linearGradient>

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

    <style>
      .frame { stroke:#244c74; stroke-width:8; stroke-linecap:round; stroke-linejoin:round; fill:none; }
      .metal { stroke:#475569; stroke-width:4; stroke-linecap:round; stroke-linejoin:round; fill:none; }
      .tire { stroke:#111827; stroke-width:12; fill:none; }
      .rim { stroke:#334155; stroke-width:6; fill:none; }
      .spoke line { stroke:#94a3b8; stroke-width:2; }
    </style>

    <g id="wheel">
      <circle class="tire" cx="0" cy="0" r="88"/>
      <circle class="rim" cx="0" cy="0" r="76"/>
      <g class="spoke">
        <line x1="0" y1="0" x2="0" y2="-76"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(30)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(60)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(90)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(120)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(150)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(180)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(210)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(240)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(270)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(300)"/>
        <line x1="0" y1="0" x2="0" y2="-76" transform="rotate(330)"/>
      </g>
      <circle cx="0" cy="0" r="10" fill="#64748b" stroke="#334155" stroke-width="3"/>
    </g>
  </defs>

  <rect width="800" height="500" fill="#eef7ff"/>
  <path d="M0 405 C130 382, 260 433, 400 404 C545 374, 660 430, 800 402 L800 500 L0 500 Z" fill="#dff2d6"/>

  <ellipse cx="220" cy="445" rx="110" ry="12" fill="#000" opacity="0.08"/>
  <ellipse cx="530" cy="445" rx="110" ry="12" fill="#000" opacity="0.08"/>
  <ellipse cx="345" cy="292" rx="130" ry="20" fill="#000" opacity="0.07"/>

  <!-- Bicycle -->
  <g filter="url(#shadow)">
    <use href="#wheel" transform="translate(220 350)"/>
    <use href="#wheel" transform="translate(530 350)"/>

    <g class="frame">
      <line x1="220" y1="350" x2="318" y2="248"/>
      <line x1="220" y1="350" x2="358" y2="338"/>
      <line x1="318" y1="248" x2="358" y2="338"/>
      <line x1="318" y1="248" x2="470" y2="250"/>
      <line x1="456" y1="294" x2="358" y2="338"/>
      <line x1="470" y1="250" x2="456" y2="294"/>
      <line x1="456" y1="294" x2="530" y2="350"/>
      <line x1="470" y1="250" x2="530" y2="350"/>
    </g>

    <g class="metal">
      <line x1="318" y1="248" x2="318" y2="226"/>
      <path d="M297 227 L335 227" stroke="#1f2937" stroke-width="6"/>
      <line x1="470" y1="250" x2="497" y2="224" stroke="#475569" stroke-width="5"/>
      <path d="M478 225 Q499 214 517 221 Q507 228 492 233" stroke="#1f2937" stroke-width="6"/>
      <circle cx="358" cy="338" r="18" fill="none" stroke="#334155" stroke-width="5"/>
      <circle cx="220" cy="350" r="15" fill="none" stroke="#334155" stroke-width="4"/>
      <line x1="358" y1="338" x2="395" y2="355" stroke="#475569" stroke-width="5"/>
      <line x1="358" y1="338" x2="321" y2="321" stroke="#475569" stroke-width="5"/>
      <rect x="389" y="350" width="16" height="8" rx="2" fill="#475569" stroke="none"/>
      <rect x="313" y="317" width="16" height="8" rx="2" fill="#475569" stroke="none"/>
      <path d="M235 339 Q290 337 340 332" stroke="#1f2937" stroke-width="3"/>
      <path d="M236 347 Q289 347 339 343" stroke="#1f2937" stroke-width="3"/>
    </g>
  </g>

  <!-- Pelican -->
  <g filter="url(#shadow)">
    <!-- tail -->
    <path d="M248 220 C218 198, 205 210, 208 232 C214 250, 234 255, 262 245 Z"
          fill="url(#wingShade)" stroke="#5b6470" stroke-width="3"/>

    <!-- body -->
    <ellipse cx="332" cy="220" rx="76" ry="54"
             fill="url(#feather)" stroke="#7c8a98" stroke-width="3"/>
    <ellipse cx="348" cy="232" rx="46" ry="31" fill="#ffffff" opacity="0.55"/>

    <!-- tucked wing -->
    <path d="M278 206 C255 185, 249 251, 311 267 C350 274, 381 237, 359 205 C340 180, 299 184, 278 206 Z"
          fill="url(#wingShade)" stroke="#586270" stroke-width="3"/>

    <!-- neck -->
    <path d="M360 182
             C366 145, 387 119, 409 118
             C426 117, 438 126, 439 140
             C440 154, 430 165, 415 168
             C399 171, 389 180, 392 194
             L365 201
             C360 194, 358 188, 360 182 Z"
          fill="url(#feather)" stroke="#7c8a98" stroke-width="3"/>

    <!-- wing on handlebar -->
    <path d="M362 210
             C404 211, 453 220, 494 231
             C499 232, 500 239, 495 241
             C450 238, 406 232, 360 223 Z"
          fill="url(#feather)" stroke="#7c8a98" stroke-width="3"/>
    <ellipse cx="497" cy="236" rx="12" ry="8"
             fill="#f2f7fb" stroke="#7c8a98" stroke-width="2"/>

    <!-- head -->
    <ellipse cx="417" cy="142" rx="34" ry="27"
             fill="url(#feather)" stroke="#7c8a98" stroke-width="3"/>
    <path d="M393 120 Q405 108 419 115" fill="none" stroke="#7c8a98" stroke-width="3" stroke-linecap="round"/>
    <circle cx="419" cy="139" r="4.6" fill="#111827"/>
    <circle cx="417.5" cy="137.5" r="1.4" fill="#ffffff"/>

    <!-- beak -->
    <path d="M432 135
             C484 120, 558 121, 636 145
             C637 153, 634 157, 628 158
             C549 147, 485 145, 433 148 Z"
          fill="url(#beakGrad)" stroke="#b45309" stroke-width="3" stroke-linejoin="round"/>
    <path d="M628 145 Q636 149 631 157"
          fill="none" stroke="#7c2d12" stroke-width="3" stroke-linecap="round"/>

    <!-- pouch -->
    <path d="M433 149
             C493 151, 553 163, 612 197
             C557 207, 487 199, 437 177
             C431 170, 429 159, 433 149 Z"
          fill="url(#pouchGrad)" stroke="#c96b4b" stroke-width="3"/>

    <!-- legs -->
    <path d="M309 270 Q314 296 321 321"
          fill="none" stroke="#d97706" stroke-width="7" stroke-linecap="round" stroke-linejoin="round"/>
    <path d="M339 270 Q353 302 395 355"
          fill="none" stroke="#d97706" stroke-width="7" stroke-linecap="round" stroke-linejoin="round"/>

    <!-- feet -->
    <path d="M315 322 l8 -4 l5 6 l-9 2 l8 5"
          fill="none" stroke="#d97706" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
    <path d="M389 356 l8 -4 l5 6 l-9 2 l8 5"
          fill="none" stroke="#d97706" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
  </g>
</svg>

Token usage

16 input, 8,593 output, {"output_tokens_details": {"reasoning_tokens": 5771}}

@simonw
Copy link
Copy Markdown
Author

simonw commented Mar 6, 2026

Took 4m45s and cost me $1.55.

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