Generate an SVG of a pelican riding a bicycle
-
Analyze the Request:
- Topic: A cartoon pelican with a large beak riding a red bicycle.
- Style: Flat design style, bold black outlines.
- Details: Simple background with grass and sky.
- Output: ONLY valid SVG code in an
xmlcodeblock.
-
Deconstruct the Composition:
- Canvas: 800x800 for a nice, square composition.
- Background:
- Sky: Light blue rectangle (
#78D6F4). - Sun: Yellow circle with a bold outline.
- Clouds: White pill-shaped clouds with black outlines.
- Hills/Ground: Green overlapping ellipses for rolling hills and a flat ground plane, both with thick black outlines.
- Sky: Light blue rectangle (
- Bicycle:
- Color: Red (
#FF4D4D) frame with bold black outlines. - Structure: Classic diamond frame, thin wheels with spokes, black tires, red pedals.
- Position: Centered, slightly to the left to balance the pelican's beak.
- Color: Red (
- Pelican:
- Colors: White body (
#FFFFFF), light grey wing (#E2E8F0), yellow/orange beak and feet (#FFC300,#FF8C00). - Features: Large round eye, massive beak with a visible gular pouch (throat sac).
- Pose: Sitting on the seat, one wing gripping the handlebars, one foot on the pedal.
- Colors: White body (
-
Drafting the SVG Elements (Mental & Scratchpad):
- Outlines: Use
stroke="#000000" stroke-width="8"consistently for that bold cartoon look. Usestroke-linejoin="round"andstroke-linecap="round"for smooth corners. - Wheels: Two circles at
(325, 610)and(575, 610)with radius95. Inner rims in red to match the frame. - Frame: A
<polygon>connecting the key joints: bottom bracket, seat cluster, head tube, top tube, chain stay, seat stay. This creates a perfect diamond shape. - Pelican Body: A custom
<path>for the plump body, tapering towards the tail and curving up to the neck. - Beak: Two parts - the upper beak (long pointed polygon) and the lower pouch (rounded rectangle with a curve).
- Legs & Wings: Thick stroked paths for legs. The wing needs to be layered behind the body but overlap the handlebars to look like it's gripping them.
- Outlines: Use
-
Refining Details & Layering:
- Layering order: Background -> Back Wheel -> Chain/Crank -> Frame -> Handlebars -> Seat -> Front Wheel -> Pedal/Legs -> Body -> Wing -> Beak -> Face details.
- Pedals: Rotate the pedal group so one is down (left foot) and one is up (right leg hanging freely).
- Face: A small black dot for the eye, white highlight, a curved line for the cheek/blush, and a couple of lines on the beak for texture.
-
Code Assembly & Validation:
- Ensure all tags are properly closed.
- Check coordinate math (e.g., handlebars aligning with the pelican's wing tip).
- Verify colors provide good contrast against each other and the background.
- Wrap in the required
xmlcodeblock.
-
Final Polish: Add small details like a saddle stripe, wheel hubs, and a smile to make it undeniably "cartoon". The result is a vibrant, clean, flat-design illustration perfectly matching the prompt.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800" width="100%" height="100%">
<defs>
<!-- Reusable Wheel -->
<g id="wheel">
<!-- Tire -->
<circle cx="325" cy="610" r="95" fill="#FFFFFF" stroke="#000000" stroke-width="8"/>
<!-- Red Inner Rim -->
<circle cx="325" cy="610" r="75" fill="#FF4D4D" stroke="#000000" stroke-width="6"/>
<!-- Spokes -->
<path d="M 325 535 L 325 685 M 250 570 L 400 650 M 250 650 L 400 570" stroke="#000000" stroke-width="5" stroke-linecap="round"/>
<!-- Hub -->
<circle cx="325" cy="610" r="18" fill="#FF4D4D" stroke="#000000" stroke-width="6"/>
</g>
</defs>
<!-- ================= BACKGROUND ================= -->
<!-- Sky -->
<rect width="800" height="800" fill="#78D6F4"/>
<!-- Sun -->
<circle cx="120" cy="120" r="50" fill="#FFD700" stroke="#000000" stroke-width="8"/>
<!-- Clouds -->
<g fill="#FFFFFF" stroke="#000000" stroke-width="8" stroke-linejoin="round">
<rect x="250" y="140" width="160" height="50" rx="25"/>
<circle cx="300" cy="140" r="35"/>
<circle cx="350" cy="130" r="45"/>
<rect x="580" y="90" width="140" height="40" rx="20"/>
<circle cx="620" cy="95" r="25"/>
<circle cx="670" cy="80" r="35"/>
</g>
<!-- Rolling Hills -->
<ellipse cx="150" cy="700" rx="400" ry="200" fill="#8CD96A" stroke="#000000" stroke-width="8"/>
<ellipse cx="650" cy="720" rx="450" ry="180" fill="#8CD96A" stroke="#000000" stroke-width="8"/>
<!-- Ground Plane -->
<rect x="0" y="680" width="800" height="120" fill="#7BC45E" stroke="#000000" stroke-width="8"/>
<!-- Grass Tufts -->
<g stroke="#000000" stroke-width="6" stroke-linecap="round" fill="none">
<path d="M 120 730 L 130 700 L 140 730"/>
<path d="M 150 730 L 160 710 L 170 730"/>
<path d="M 680 750 L 690 720 L 700 750"/>
<path d="M 710 750 L 720 710 L 730 750"/>
<path d="M 380 780 L 390 760 L 400 780"/>
</g>
<!-- ================= BICYCLE & PELICAN ================= -->
<!-- Back Wheel (Behind Frame) -->
<use href="#wheel" x="0" y="0"/>
<!-- Chain / Crank Set -->
<circle cx="450" cy="610" r="30" fill="#FF4D4D" stroke="#000000" stroke-width="8"/>
<!-- BICYCLE FRAME (Red Diamond) -->
<polygon points="450,610 450,470 620,490 570,370 325,470 360,610"
fill="#FF4D4D" stroke="#000000" stroke-width="8" stroke-linejoin="round"/>
<!-- Handlebars -->
<path d="M 590 470 L 620 390 C 620 370, 590 370, 580 390"
fill="none" stroke="#000000" stroke-width="14" stroke-linecap="round"/>
<!-- Seat Post & Saddle -->
<line x1="450" y1="470" x2="430" y2="430" stroke="#000000" stroke-width="12" stroke-linecap="round"/>
<path d="M 380 430 C 380 410, 450 410, 460 430 Z" fill="#FF4D4D" stroke="#000000" stroke-width="8" stroke-linejoin="round"/>
<path d="M 400 425 L 440 425" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round"/>
<!-- PELICAN: Back Leg (Right) -->
<g transform="rotate(20, 370, 610)">
<line x1="380" y1="540" x2="390" y2="600" stroke="#FFC300" stroke-width="14" stroke-linecap="round"/>
<path d="M 370 600 L 410 600 L 410 580 L 390 580 Z" fill="#FFC300" stroke="#000000" stroke-width="6" stroke-linejoin="round"/>
<!-- Right Pedal (Up) -->
<g transform="translate(390, 610)">
<rect x="-25" y="-8" width="50" height="16" rx="4" fill="#FF4D4D" stroke="#000000" stroke-width="6"/>
</g>
</g>
<!-- PELICAN: Front Wheel (Overlaps Frame) -->
<use href="#wheel" x="250" y="0"/>
<!-- PELICAN Body -->
<path d="M 480 370
C 560 370, 590 450, 560 510
C 520 540, 400 540, 370 510
C 350 480, 370 420, 400 400
C 390 360, 430 360, 480 370 Z"
fill="#FFFFFF" stroke="#000000" stroke-width="8" stroke-linejoin="round"/>
<!-- PELICAN: Front Leg (Left, Down on Pedal) -->
<path d="M 410 520 L 390 570 L 430 600" fill="none" stroke="#FFC300" stroke-width="14" stroke-linecap="round" stroke-linejoin="round"/>
<!-- Left Foot -->
<path d="M 410 600 L 450 600 L 450 580 L 420 580 Z" fill="#FFC300" stroke="#000000" stroke-width="6" stroke-linejoin="round"/>
<!-- Left Pedal (Down) -->
<g transform="translate(410, 610)">
<rect x="-25" y="-8" width="50" height="16" rx="4" fill="#FF4D4D" stroke="#000000" stroke-width="6"/>
</g>
<!-- PELICAN Wing (Gripping Handlebars) -->
<path d="M 430 420 C 520 440, 580 410, 590 390"
fill="#E2E8F0" stroke="#000000" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<!-- Wing Feathers -->
<path d="M 560 415 L 590 390 M 570 420 L 600 395"
fill="none" stroke="#000000" stroke-width="5" stroke-linecap="round"/>
<!-- PELICAN Neck & Head -->
<path d="M 450 370 C 480 320, 490 260, 490 220 C 490 180, 440 180, 420 200"
fill="#FFFFFF" stroke="#000000" stroke-width="8" stroke-linejoin="round"/>
<!-- Head Top -->
<circle cx="465" cy="205" r="30" fill="#FFFFFF" stroke="#000000" stroke-width="8"/>
<!-- PELICAN Beak (Upper) -->
<path d="M 475 190 L 720 220 C 700 260, 500 240, 470 230 Z"
fill="#FFC300" stroke="#000000" stroke-width="8" stroke-linejoin="round"/>
<!-- Beak Texture Lines -->
<line x1="550" y1="215" x2="570" y2="230" stroke="#000000" stroke-width="4" stroke-linecap="round"/>
<line x1="620" y1="225" x2="640" y2="240" stroke="#000000" stroke-width="4" stroke-linecap="round"/>
<!-- PELICAN Gular Pouch (Throat Sac) -->
<path d="M 475 230 C 520 310, 680 290, 720 220 L 470 230 Z"
fill="#FF8C00" stroke="#000000" stroke-width="8" stroke-linejoin="round"/>
<!-- Pouch Opening -->
<path d="M 475 230 C 520 260, 680 250, 720 220"
fill="none" stroke="#FFC300" stroke-width="4" stroke-linecap="round"/>
<!-- PELICAN Eye -->
<circle cx="485" cy="195" r="16" fill="#FFFFFF" stroke="#000000" stroke-width="6"/>
<circle cx="492" cy="195" r="7" fill="#000000"/>
<circle cx="494" cy="192" r="2.5" fill="#FFFFFF"/>
<!-- Cheek Blush -->
<ellipse cx="465" cy="215" rx="8" ry="5" fill="#FFB6C1" opacity="0.7"/>
<!-- Smile Line -->
<path d="M 520 205 C 540 215, 580 210, 600 195"
fill="none" stroke="#000000" stroke-width="5" stroke-linecap="round"/>
</svg>
I got different results (tried several times) with Ornith-1.0-35B-4bit with mlx.
The thinking was also less structured.
Thinking
The user wants me to generate an SVG image of a pelican riding a bicycle. This is a creative illustration task. I need to create an SVG with:
A bicycle - frame, wheels, handlebars, seat, pedals
A pelican - body, wings, beak (characteristic large pouch), legs on pedals, head
Let me design this step by step. I'll use simple shapes and paths to create a cartoonish/illustrative style.
Key features of a pelican:
Large body
Long beak with a pouch (gular pouch)
Webbed feet
White/grey coloring (for an Australian pelican, grey body with white wings; for a brown pelican, darker)
Small head relative to body
Long neck
Bicycle features:
Two wheels with spokes
Frame (triangular)
Handlebars
Seat
Pedals and chainring
Let me compose this as a fun, cartoon-style SVG illustration.
I'll think about the layout:
Bicycle centered in the SVG
Pelican sitting on the seat, pedaling
The pelican's body would be above the bike frame
The pelican's beak would extend forward
Legs reaching down to pedals
Let me code this up with reasonable coordinates.
SVG canvas: 800x600
Bicycle:
Rear wheel center: (300, 450), radius 80
Front wheel center: (550, 450), radius 80
Frame connects to wheel axles
Seat post from frame to seat
Handlebars at front
Pelican:
Body as an ellipse/oval shape

Neck extending up and forward
Head with beak
Wings
Legs on pedals
Let me write this out carefully.