Skip to content

Instantly share code, notes, and snippets.

@simonw
Created April 24, 2026 04:16
Show Gist options
  • Select an option

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

Select an option

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

2026-04-24T04:12:29 conversation: 01kpyv6j97de61mj6ff3nw604p id: 01kpyv0ve0c0mz5y4w8bj9yc0f

Model: openrouter/deepseek/deepseek-v4-flash

Prompt

Generate an SVG of a pelican riding a bicycle

Response

I’ll generate a playful SVG illustration of a pelican riding a bicycle, with a light, cartoon-like feel and clear composition.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600" width="100%" height="100%">
  <defs>
    <!-- Reusable Wheel Component -->
    <g id="wheel">
      <!-- Tire -->
      <circle cx="0" cy="0" r="60" stroke="#2c3e50" stroke-width="12" fill="none" />
      <!-- Rim -->
      <circle cx="0" cy="0" r="54" stroke="#bdc3c7" stroke-width="4" fill="none" />
      <!-- Hub -->
      <circle cx="0" cy="0" r="8" fill="#34495e" />
      <!-- Spokes -->
      <line x1="0" y1="-54" x2="0" y2="54" stroke="#bdc3c7" stroke-width="2" />
      <line x1="-54" y1="0" x2="54" y2="0" stroke="#bdc3c7" stroke-width="2" />
      <line x1="-38" y1="-38" x2="38" y2="38" stroke="#bdc3c7" stroke-width="2" />
      <line x1="38" y1="-38" x2="-38" y2="38" stroke="#bdc3c7" stroke-width="2" />
      <line x1="-21" y1="-50" x2="21" y2="50" stroke="#bdc3c7" stroke-width="2" />
      <line x1="21" y1="-50" x2="-21" y2="50" stroke="#bdc3c7" stroke-width="2" />
      <line x1="-50" y1="-21" x2="50" y2="21" stroke="#bdc3c7" stroke-width="2" />
      <line x1="50" y1="-21" x2="-50" y2="21" stroke="#bdc3c7" stroke-width="2" />
    </g>
  </defs>

  <!-- Background -->
  <rect width="800" height="600" fill="#e0f7fa" />
  
  <!-- Ground -->
  <rect x="0" y="500" width="800" height="100" fill="#b2dfdb" />
  <ellipse cx="400" cy="500" rx="250" ry="15" fill="#80cbc4" />
  
  <!-- Motion Wind Lines -->
  <path d="M 600,150 L 720,150" stroke="#b0bec5" stroke-width="4" stroke-linecap="round" />
  <path d="M 120,250 L 240,250" stroke="#b0bec5" stroke-width="4" stroke-linecap="round" />
  <path d="M 680,350 L 780,350" stroke="#b0bec5" stroke-width="4" stroke-linecap="round" />

  <!-- ================= BACKGROUND ELEMENTS (FAR SIDE) ================= -->
  
  <!-- Far Wheel -->
  <use href="#wheel" x="250" y="440" />
  <!-- Front Wheel -->
  <use href="#wheel" x="550" y="440" />

  <!-- Far Crank and Pedal -->
  <line x1="380" y1="440" x2="360" y2="400" stroke="#2c3e50" stroke-width="8" stroke-linecap="round" />
  <rect x="350" y="395" width="20" height="10" rx="3" fill="#7f8c8d" />
  
  <!-- Far Leg -->
  <line x1="290" y1="300" x2="340" y2="350" stroke="#d35400" stroke-width="10" stroke-linecap="round" />
  <line x1="340" y1="350" x2="360" y2="400" stroke="#d35400" stroke-width="8" stroke-linecap="round" />
  <!-- Far Foot (Webbed) -->
  <path d="M 355,400 L 375,400 L 370,408 L 365,405 L 360,408 Z" fill="#d35400" />

  <!-- Far Wing (Reaching far handlebar) -->
  <path d="M 280,250 Q 400,240 520,305" stroke="#ffffff" stroke-width="24" fill="none" stroke-linecap="round" />
  <!-- Far Wing Feathers / Hand -->
  <path d="M 515,295 Q 535,305 515,315" stroke="#2c3e50" stroke-width="6" fill="none" stroke-linecap="round" />
  <path d="M 518,300 Q 538,310 518,320" stroke="#2c3e50" stroke-width="6" fill="none" stroke-linecap="round" />

  <!-- ================= BIKE FRAME ================= -->
  
  <!-- Chain (Dashed for realism) -->
  <line x1="250" y1="430" x2="380" y2="415" stroke="#7f8c8d" stroke-width="4" stroke-dasharray="4,2" />
  <line x1="250" y1="450" x2="380" y2="465" stroke="#7f8c8d" stroke-width="4" stroke-dasharray="4,2" />
  
  <!-- Chainring and Cog -->
  <circle cx="380" cy="440" r="25" fill="none" stroke="#34495e" stroke-width="6" />
  <circle cx="380" cy="440" r="25" fill="none" stroke="#2c3e50" stroke-width="6" stroke-dasharray="4,2" />
  <circle cx="250" cy="440" r="10" fill="none" stroke="#34495e" stroke-width="4" stroke-dasharray="3,2" />
  <circle cx="250" cy="440" r="6" fill="#34495e" />
  
  <!-- Frame Tubes -->
  <g stroke="#c0392b" stroke-width="8" stroke-linecap="round" stroke-linejoin="round" fill="none">
    <line x1="320" y1="360" x2="500" y2="360" /> <!-- Top Tube -->
    <line x1="380" y1="440" x2="500" y2="360" /> <!-- Down Tube -->
    <line x1="320" y1="360" x2="380" y2="440" /> <!-- Seat Tube -->
    <line x1="250" y1="440" x2="320" y2="360" /> <!-- Seat Stays -->
    <line x1="250" y1="440" x2="380" y2="440" /> <!-- Chain Stays -->
    <line x1="500" y1="380" x2="550" y2="440" /> <!-- Fork -->
  </g>
  
  <!-- Head Tube -->
  <line x1="500" y1="340" x2="500" y2="380" stroke="#c0392b" stroke-width="12" stroke-linecap="round" />
  <rect x="490" y="350" width="20" height="15" rx="2" fill="#f1c40f" /> <!-- Head Badge -->
  
  <!-- Seat and Seatpost -->
  <line x1="320" y1="360" x2="320" y2="330" stroke="#34495e" stroke-width="8" stroke-linecap="round" />
  <ellipse cx="320" cy="320" rx="35" ry="12" fill="#34495e" />
  
  <!-- Handlebars and Stem -->
  <line x1="500" y1="340" x2="510" y2="300" stroke="#34495e" stroke-width="8" stroke-linecap="round" />
  <path d="M 480,300 Q 510,290 530,310" stroke="#34495e" stroke-width="8" fill="none" stroke-linecap="round" />
  
  <!-- Handlebar Grips -->
  <ellipse cx="485" cy="300" rx="10" ry="6" fill="#1a1a1a" transform="rotate(-15 485 300)" />
  <ellipse cx="525" cy="305" rx="10" ry="6" fill="#1a1a1a" transform="rotate(15 525 305)" />

  <!-- ================= PELICAN MAIN BODY ================= -->
  
  <!-- Tail -->
  <path d="M 235,270 C 180,260 170,310 230,310" fill="#ffffff" stroke="#90a4ae" stroke-width="4" />
  <path d="M 180,270 L 170,270 L 175,285 Z" fill="#2c3e50" />
  <path d="M 185,290 L 175,300 L 195,305 Z" fill="#2c3e50" />
  
  <!-- Main Body -->
  <ellipse cx="300" cy="270" rx="70" ry="55" fill="#ffffff" stroke="#90a4ae" stroke-width="4" />
  
  <!-- Belly Feather Details -->
  <path d="M 280,300 Q 290,310 300,300" stroke="#cfd8dc" fill="none" stroke-width="3" stroke-linecap="round" />
  <path d="M 300,310 Q 310,320 320,310" stroke="#cfd8dc" fill="none" stroke-width="3" stroke-linecap="round" />
  
  <!-- Neck -->
  <path d="M 340,250 C 400,250 420,190 420,160 L 390,140 C 370,160 350,220 300,230 Z" fill="#ffffff" stroke="#90a4ae" stroke-width="4" />
  
  <!-- Head -->
  <ellipse cx="410" cy="145" rx="30" ry="25" fill="#ffffff" stroke="#90a4ae" stroke-width="4" />
  
  <!-- Head Tuft / Crest -->
  <path d="M 385,130 Q 370,120 375,110 Q 390,125 400,130" fill="#ffffff" stroke="#90a4ae" stroke-width="3" />
  
  <!-- Eye -->
  <path d="M 415,130 L 430,135" stroke="#2c3e50" stroke-width="3" stroke-linecap="round" /> <!-- Eyebrow -->
  <circle cx="425" cy="140" r="6" fill="#2c3e50" />
  <circle cx="427" cy="138" r="2" fill="#ffffff" /> <!-- Highlight -->
  
  <!-- Beak -->
  <!-- Upper Beak -->
  <path d="M 435,135 L 530,135 Q 545,135 545,145 L 535,150 L 435,150 Z" fill="#f39c12" stroke="#d35400" stroke-width="3" stroke-linejoin="round" />
  <path d="M 435,135 L 530,135" stroke="#e67e22" stroke-width="2" /> <!-- Beak ridge -->
  <ellipse cx="470" cy="138" rx="4" ry="2" fill="#d35400" /> <!-- Nostril -->
  
  <!-- Lower Beak / Pouch -->
  <path d="M 435,150 C 480,190 510,190 535,150 C 510,210 460,210 435,170 Z" fill="#f1c40f" stroke="#d35400" stroke-width="3" stroke-linejoin="round" />
  <path d="M 435,150 Q 445,150 450,148" stroke="#d35400" stroke-width="2" fill="none" /> <!-- Smile line -->
  
  <!-- Pouch Creases -->
  <path d="M 440,155 Q 470,180 500,165" stroke="#e67e22" stroke-width="2" fill="none" />
  <path d="M 445,165 Q 465,190 490,175" stroke="#e67e22" stroke-width="2" fill="none" />
  <path d="M 440,170 Q 460,195 480,185" stroke="#e67e22" stroke-width="2" fill="none" />

  <!-- ================= FOREGROUND ELEMENTS (NEAR SIDE) ================= -->
  
  <!-- Near Crank and Pedal -->
  <line x1="380" y1="440" x2="400" y2="480" stroke="#34495e" stroke-width="8" stroke-linecap="round" />
  <rect x="390" y="475" width="20" height="10" rx="3" fill="#95a5a6" />
  <rect x="392" y="477" width="6" height="6" fill="#e74c3c" rx="1" /> <!-- Reflector -->
  
  <!-- Near Leg -->
  <line x1="310" y1="310" x2="360" y2="400" stroke="#f39c12" stroke-width="12" stroke-linecap="round" />
  <line x1="360" y1="400" x2="400" y2="480" stroke="#f39c12" stroke-width="10" stroke-linecap="round" />
  <circle cx="360" cy="400" r="8" fill="#e67e22" /> <!-- Knee -->
  
  <!-- Near Foot (Webbed) -->
  <path d="M 395,480 L 415,480 L 410,488 L 405,485 L 400,488 Z" fill="#e67e22" />
  
  <!-- Near Wing (Reaching near handlebar) -->
  <!-- Outline for depth -->
  <path d="M 320,260 Q 400,270 485,300" stroke="#90a4ae" stroke-width="32" fill="none" stroke-linecap="round" />
  <!-- Main wing -->
  <path d="M 320,260 Q 400,270 485,300" stroke="#ffffff" stroke-width="28" fill="none" stroke-linecap="round" />
  
  <!-- Near Wing Feathers / Hand wrapping the handlebar -->
  <path d="M 475,290 Q 495,300 475,315" stroke="#2c3e50" stroke-width="8" fill="none" stroke-linecap="round" />
  <path d="M 478,295 Q 498,305 478,320" stroke="#2c3e50" stroke-width="8" fill="none" stroke-linecap="round" />
  <path d="M 481,300 Q 501,310 481,325" stroke="#2c3e50" stroke-width="8" fill="none" stroke-linecap="round" />

  <!-- Accessories -->
  <!-- Bell -->
  <circle cx="505" cy="295" r="8" fill="#f1c40f" stroke="#d35400" stroke-width="2" />
  <line x1="505" y1="303" x2="500" y2="315" stroke="#34495e" stroke-width="2" stroke-linecap="round" />
  
  <!-- Front Reflector -->
  <rect x="600" y="440" width="10" height="20" rx="3" fill="#e74c3c" transform="rotate(45 600 440)" />

</svg>

The scene shows a white pelican with a bright orange-and-yellow beak, balancing on a red bicycle as one wing stretches forward to the handlebars. Soft sky and ground colors, motion lines, and shaded wheels help reinforce the sense of movement and keep the image lively.

Token usage

14 input, 16,362 output, {"completion_tokens_details": {"reasoning_tokens": 12792}, "cost": 0.00458332, "cost_details": {"upstream_inference_cost": 0.00458332, "upstream_inference_prompt_cost": 1.96e-06, "upstream_inference_completions_cost": 0.00458136}}

@simonw
Copy link
Copy Markdown
Author

simonw commented Apr 24, 2026

image

@simonw
Copy link
Copy Markdown
Author

simonw commented Apr 24, 2026

Took 187238ms aka 187s aka 3 minutes, 7 seconds.

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