Skip to content

Instantly share code, notes, and snippets.

@simonw
Created August 7, 2025 17:27
Show Gist options
  • Select an option

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

Select an option

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

2025-08-07T14:31:21 conversation: 01k22f467e0m2qq13sw6wx700z id: 01k22f34vt76ypb5vg3s14951z

Model: nectarine-alpha-new-minimal-effort-2025-07-25

Prompt

Generate an SVG of a pelican riding a bicycle

Response

<?xml version="1.0" encoding="UTF-8"?>
<svg width="600" height="450" viewBox="0 0 600 450" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Pelican riding a bicycle">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#b9e4ff"/>
      <stop offset="100%" stop-color="#e9f7ff"/>
    </linearGradient>
    <linearGradient id="beakGrad" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0%" stop-color="#f2a20f"/>
      <stop offset="100%" stop-color="#f7c23a"/>
    </linearGradient>
    <linearGradient id="pelicanBody" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#ffffff"/>
      <stop offset="100%" stop-color="#e6eef2"/>
    </linearGradient>
    <linearGradient id="legGrad" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#f7a94a"/>
      <stop offset="100%" stop-color="#e78325"/>
    </linearGradient>
    <linearGradient id="tireGrad" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0%" stop-color="#2c2c2c"/>
      <stop offset="100%" stop-color="#444"/>
    </linearGradient>
    <linearGradient id="frameGrad" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#2b8cff"/>
      <stop offset="100%" stop-color="#1c56b5"/>
    </linearGradient>
    <radialGradient id="hubGrad" cx="50%" cy="50%" r="50%">
      <stop offset="0%" stop-color="#dfe8ef"/>
      <stop offset="100%" stop-color="#9aa9b6"/>
    </radialGradient>
    <filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
      <feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
      <feOffset dx="0" dy="3" result="off"/>
      <feMerge>
        <feMergeNode in="off"/>
        <feMergeNode in="SourceGraphic"/>
      </feMerge>
    </filter>
  </defs>

  <rect width="100%" height="100%" fill="url(#sky)"/>
  <ellipse cx="300" cy="400" rx="220" ry="28" fill="#000" opacity="0.08"/>

  <!-- Bicycle -->
  <g id="bike" transform="translate(0,0)" filter="url(#shadow)">
    <!-- Wheels -->
    <g id="rearWheel" transform="translate(210,330)">
      <circle r="70" fill="url(#tireGrad)"/>
      <circle r="58" fill="#f9fbfd" stroke="#c9d6e0" stroke-width="2"/>
      <circle r="8" fill="url(#hubGrad)" stroke="#7d8a96" stroke-width="1.5"/>
      <!-- Spokes -->
      <g stroke="#a7b6c4" stroke-width="1">
        <line x1="0" y1="0" x2="0" y2="-58"/>
        <line x1="0" y1="0" x2="40.98" y2="-40.98"/>
        <line x1="0" y1="0" x2="58" y2="0"/>
        <line x1="0" y1="0" x2="40.98" y2="40.98"/>
        <line x1="0" y1="0" x2="0" y2="58"/>
        <line x1="0" y1="0" x2="-40.98" y2="40.98"/>
        <line x1="0" y1="0" x2="-58" y2="0"/>
        <line x1="0" y1="0" x2="-40.98" y2="-40.98"/>
      </g>
    </g>

    <g id="frontWheel" transform="translate(410,330)">
      <circle r="70" fill="url(#tireGrad)"/>
      <circle r="58" fill="#f9fbfd" stroke="#c9d6e0" stroke-width="2"/>
      <circle r="8" fill="url(#hubGrad)" stroke="#7d8a96" stroke-width="1.5"/>
      <g stroke="#a7b6c4" stroke-width="1">
        <line x1="0" y1="0" x2="0" y2="-58"/>
        <line x1="0" y1="0" x2="40.98" y2="-40.98"/>
        <line x1="0" y1="0" x2="58" y2="0"/>
        <line x1="0" y1="0" x2="40.98" y2="40.98"/>
        <line x1="0" y1="0" x2="0" y2="58"/>
        <line x1="0" y1="0" x2="-40.98" y2="40.98"/>
        <line x1="0" y1="0" x2="-58" y2="0"/>
        <line x1="0" y1="0" x2="-40.98" y2="-40.98"/>
      </g>
    </g>

    <!-- Frame -->
    <g id="frame" stroke="url(#frameGrad)" stroke-width="8" fill="none">
      <line x1="210" y1="330" x2="310" y2="260"/>
      <line x1="410" y1="330" x2="310" y2="260"/>
      <line x1="260" y1="330" x2="360" y2="330"/>
      <line x1="260" y1="330" x2="310" y2="260"/>
      <line x1="360" y1="330" x2="310" y2="260"/>
    </g>

    <!-- Seat post and saddle -->
    <line x1="300" y1="270" x2="285" y2="220" stroke="#1c56b5" stroke-width="6"/>
    <path d="M260,210 C275,200 300,200 315,210 C320,220 310,230 300,230 C285,230 270,225 260,210 Z" fill="#333"/>

    <!-- Crank and pedals -->
    <g transform="translate(310,330)">
      <circle r="14" fill="#7d8a96" stroke="#5e6a74" stroke-width="2"/>
      <line x1="0" y1="0" x2="20" y2="-24" stroke="#7d8a96" stroke-width="6" stroke-linecap="round"/>
      <line x1="0" y1="0" x2="-20" y2="24" stroke="#7d8a96" stroke-width="6" stroke-linecap="round"/>
      <rect x="18" y="-30" width="28" height="8" rx="3" fill="#333"/>
      <rect x="-46" y="22" width="28" height="8" rx="3" fill="#333"/>
    </g>

    <!-- Handlebars and fork -->
    <line x1="410" y1="330" x2="400" y2="270" stroke="#1c56b5" stroke-width="8"/>
    <path d="M400,270 C410,260 435,255 455,260" stroke="#333" stroke-width="8" fill="none" stroke-linecap="round"/>
    <circle cx="455" cy="260" r="6" fill="#333"/>
  </g>

  <!-- Pelican -->
  <g id="pelican" filter="url(#shadow)">
    <!-- Tail -->
    <path d="M210,280 C190,270 175,260 172,246 C170,237 177,230 188,232 C198,234 215,245 224,255 Z" fill="#dfe7ec"/>

    <!-- Body -->
    <ellipse cx="250" cy="260" rx="85" ry="55" fill="url(#pelicanBody)" stroke="#cfd8de" stroke-width="2"/>

    <!-- Wing -->
    <path d="M220,250 C200,270 200,300 230,310 C260,320 300,300 305,275 C308,260 300,248 285,245 C270,242 240,235 220,250 Z"
          fill="#e8eff3" stroke="#cfd8de" stroke-width="2"/>
    <path d="M230,255 C215,270 215,295 238,302 C255,307 283,298 292,280" fill="none" stroke="#c0ccd4" stroke-width="2" stroke-linecap="round"/>

    <!-- Neck -->
    <path d="M300,250 C325,235 350,220 362,205 C370,195 368,185 355,180 C338,174 315,182 298,195 C282,207 270,230 270,245"
          fill="none" stroke="#e6eef2" stroke-width="28" stroke-linecap="round"/>
    <path d="M300,250 C325,235 350,220 362,205 C370,195 368,185 355,180 C338,174 315,182 298,195 C282,207 270,230 270,245"
          fill="none" stroke="#cfd8de" stroke-width="2" stroke-linecap="round"/>

    <!-- Head -->
    <ellipse cx="370" cy="180" rx="35" ry="28" fill="url(#pelicanBody)" stroke="#cfd8de" stroke-width="2"/>

    <!-- Eye -->
    <circle cx="382" cy="176" r="6" fill="#222"/>
    <circle cx="384" cy="174" r="2" fill="#fff" opacity="0.8"/>

    <!-- Beak upper -->
    <path d="M358,182 C392,180 440,170 470,168 C478,168 486,174 486,180 C486,188 475,192 466,192 C440,192 400,190 360,190"
          fill="url(#beakGrad)" stroke="#d98f0c" stroke-width="2"/>
    <!-- Beak lower pouch -->
    <path d="M360,190 C390,202 430,214 460,212 C474,211 488,204 488,194 C488,186 480,182 468,182 C440,182 400,185 360,190 Z"
          fill="#f4b443" stroke="#d98f0c" stroke-width="2" opacity="0.95"/>

    <!-- Legs -->
    <g stroke="url(#legGrad)" stroke-width="10" stroke-linecap="round">
      <line x1="270" y1="305" x2="300" y2="330"/>
      <line x1="290" y1="305" x2="320" y2="330"/>
    </g>

    <!-- Feet on pedals -->
    <path d="M332,300 c12,2 18,10 16,18 c-2,8 -12,12 -22,10 c-10,-2 -16,-10 -14,-18 c2,-8 8,-14 20,-10 Z" fill="#f1a03a" stroke="#d88422" stroke-width="2"/>
    <path d="M280,350 c12,2 18,10 16,18 c-2,8 -12,12 -22,10 c-10,-2 -16,-10 -14,-18 c2,-8 8,-14 20,-10 Z" fill="#f1a03a" stroke="#d88422" stroke-width="2"/>

    <!-- Mouth line -->
    <path d="M360,189 C400,186 452,182 478,184" stroke="#cc7b0a" stroke-width="2" opacity="0.7"/>

    <!-- A small smile crease near eye -->
    <path d="M372,193 C378,196 384,196 390,193" stroke="#b6c2cb" stroke-width="2" stroke-linecap="round" opacity="0.8"/>
  </g>

  <!-- Simple clouds -->
  <g fill="#ffffff" opacity="0.9">
    <ellipse cx="95" cy="80" rx="26" ry="18"/>
    <ellipse cx="115" cy="80" rx="22" ry="14"/>
    <ellipse cx="80" cy="85" rx="20" ry="12"/>

    <ellipse cx="520" cy="70" rx="30" ry="20"/>
    <ellipse cx="545" cy="72" rx="24" ry="16"/>
    <ellipse cx="500" cy="78" rx="22" ry="14"/>
  </g>

  <!-- Ground line hint -->
  <rect x="0" y="398" width="600" height="52" fill="#d2f0d2" opacity="0.35"/>
</svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment