Back

SVG Drawing Match #2736

May 10, 2025
GPT-4o
Challenge Creator

Creative Challenge

"A bird wearing a tiny astronaut helmet, perched on the moon."

SVG by Gemini 2.5 Pro Preview 05-06
<svg width="300" height="300" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <radialGradient id="spaceGradient" cx="50%" cy="50%" r="70%" fx="30%" fy="30%">
      <stop offset="0%" stop-color="#400080" /> <!-- Brighter Purple Core -->
      <stop offset="30%" stop-color="#2A004F" /> <!-- Mid Purple -->
      <stop offset="100%" stop-color="#0A001F" /> <!-- Deep Space Purple/Black -->
    </radialGradient>

    <linearGradient id="moonSurfaceGradient" x1="0.5" y1="0" x2="0.5" y2="1">
        <stop offset="0%" stop-color="#CCCCCC" />
        <stop offset="60%" stop-color="#A0A0A0" />
        <stop offset="100%" stop-color="#707070" />
    </linearGradient>

    <radialGradient id="craterInterior" cx="50%" cy="50%" r="50%" fx="60%" fy="60%">
        <stop offset="0%" stop-color="#606060" /> <!-- Darker center -->
        <stop offset="100%" stop-color="#909090" /> <!-- Lighter rim -->
    </radialGradient>
     <radialGradient id="craterRimHighlight" cx="50%" cy="50%" r="50%" fx="30%" fy="30%">
        <stop offset="0%" stop-color="#E0E0E0" />
        <stop offset="100%" stop-color="#B0B0B0" />
    </radialGradient>

    <radialGradient id="birdBodyGradient" cx="50%" cy="40%" r="60%">
        <stop offset="0%" stop-color="#00BFFF" /> <!-- DeepSkyBlue -->
        <stop offset="100%" stop-color="#0077B6" /> <!-- Darker, slightly desaturated blue -->
    </radialGradient>
    <linearGradient id="birdWingGradient" x1="0%" y1="0%" x2="80%" y2="100%">
        <stop offset="0%" stop-color="#00A0F0" />
        <stop offset="100%" stop-color="#006090" />
    </linearGradient>
    <linearGradient id="birdTailGradient" x1="0%" y1="0%" x2="100%" y2="100%">
        <stop offset="0%" stop-color="#00AEEF"/> <!-- Slightly different blue for tail -->
        <stop offset="100%" stop-color="#0077B6"/>
    </linearGradient>


    <radialGradient id="helmetShellGradient" cx="35%" cy="35%" r="65%">
        <stop offset="0%" stop-color="#FFFFFF" />
        <stop offset="100%" stop-color="#C0C0C0" /> <!-- Silver Grey -->
    </radialGradient>
    <radialGradient id="helmetVisorGradient" cx="30%" cy="30%" r="70%">
      <stop offset="0%" stop-color="#7080B0" /> <!-- Softer blueish highlight -->
      <stop offset="40%" stop-color="#202040" /> <!-- Dark main visor -->
      <stop offset="100%" stop-color="#0A0A1A" /> <!-- Very dark for depth -->
    </radialGradient>

    <filter id="starGlow" x="-50%" y="-50%" width="200%" height="200%">
        <feGaussianBlur in="SourceAlpha" stdDeviation="1" result="blur"/>
        <feFlood flood-color="#FFFFE0" flood-opacity="0.7" result="glowColor"/>
        <feComposite in="glowColor" in2="blur" operator="in" result="softGlow_colored"/>
        <feMerge>
            <feMergeNode in="softGlow_colored"/>
            <feMergeNode in="SourceGraphic"/>
        </feMerge>
    </filter>
  </defs>

  <!-- Background -->
  <rect width="300" height="300" fill="url(#spaceGradient)" />

  <!-- Stars -->
  <circle cx="40" cy="50" r="1.2" fill="#FFFFFF" opacity="0.9"/>
  <circle cx="80" cy="30" r="0.8" fill="#E0E8FF" opacity="0.8"/> <!-- Pale Blue -->
  <circle cx="120" cy="80" r="1.5" fill="#FFFFE0" filter="url(#starGlow)" />
  <circle cx="200" cy="40" r="1" fill="#FFFFFF" opacity="0.9"/>
  <circle cx="250" cy="70" r="1.8" fill="#FFFFE0" filter="url(#starGlow)" />
  <circle cx="280" cy="120" r="0.9" fill="#E0E8FF" opacity="0.8"/>
  <circle cx="30" cy="150" r="1.3" fill="#FFFFE0" filter="url(#starGlow)" />
  <circle cx="70" cy="110" r="0.7" fill="#FFFFFF" opacity="0.9"/>
  <circle cx="150" cy="20" r="1.6" fill="#FFFFE0" filter="url(#starGlow)" />
  <circle cx="220" cy="140" r="1.1" fill="#FFFFFF" opacity="0.9"/>
  <circle cx="10" cy="90" r="0.8" fill="#E0E8FF" opacity="0.8"/>
  <circle cx="180" cy="170" r="1.4" fill="#FFFFE0" filter="url(#starGlow)" />
  <circle cx="20" cy="10" r="1" fill="#FFFFFF" opacity="0.9"/>
  <circle cx="280" cy="15" r="1.2" fill="#FFFFE0" filter="url(#starGlow)" />
  <circle cx="55" cy="190" r="0.9" fill="#E0E8FF" opacity="0.8"/>
  <circle cx="260" cy="200" r="1.3" fill="#FFFFE0" filter="url(#starGlow)" />
  <circle cx="125" cy="130" r="0.7" fill="#FFFFFF" opacity="0.9" />
  <circle cx="190" cy="95" r="1.1" fill="#FFFFE0" filter="url(#starGlow)" />


  <!-- Distant Earth -->
  <g transform="translate(240, 45) scale(0.8)">
    <circle r="8" fill="#3A7CA5" filter="url(#starGlow)"/> <!-- Added subtle glow to Earth for 'atmosphere' -->
    <path d="M -4 -2 q 2 -3 4 0 q 2 3 -1 4 q -3 1 -3 -4 Z" fill="#6A8A28" /> <!-- Green continent 1 -->
    <path d="M 1 2 q 2 1 1 3 q -2 1 -3 -1 q -1 -2 1 -3 Z" fill="#90A860" /> <!-- Lighter green/tan continent 2 -->
    <path d="M 0 -7 A 7 7 0 0 0 0 7 A 3.5 3.5 0 0 1 0 -7" fill="rgba(255,255,255,0.25)" /> <!-- Atmosphere highlight -->
  </g>

  <!-- Moon Surface -->
  <path d="M-10 300 Q150 170 310 300 L310 300 L-10 300 Z" fill="url(#moonSurfaceGradient)" stroke="#404040" stroke-width="0.5"/>
  <!-- Craters -->
  <g id="crater1" transform="translate(80, 235)">
    <circle r="28" fill="url(#craterInterior)"/>
    <circle r="28" stroke="#505050" stroke-width="1.5" fill="none"/>
    <ellipse cx="2" cy="-3" rx="25" ry="20" fill="url(#craterRimHighlight)" opacity="0.25" transform="rotate(20)"/>
  </g>
  <g id="crater2" transform="translate(210, 255)">
    <circle r="18" fill="url(#craterInterior)"/>
    <circle r="18" stroke="#484848" stroke-width="1" fill="none"/>
    <ellipse cx="-1" cy="1" rx="16" ry="12" fill="url(#craterRimHighlight)" opacity="0.20" transform="rotate(-30)"/>
  </g>
  <g id="crater3" transform="translate(150, 270)"> <!-- Smaller crater -->
    <circle r="12" fill="url(#craterInterior)"/>
    <circle r="12" stroke="#555555" stroke-width="0.8" fill="none"/>
     <ellipse cx="1" cy="-1" rx="10" ry="8" fill="url(#craterRimHighlight)" opacity="0.15" transform="rotate(10)"/>
  </g>
  <g id="crater4" transform="translate(30,275)  scale(0.8)"> <!-- Edge crater partially visible, scaled down -->
    <path d="M0,0 A15,15 0 0,1 25,-10 A15,12 0 0,0 0,0 Z" fill="url(#craterInterior)" transform="rotate(10)"/>
    <path d="M0,0 A15,15 0 0,1 25,-10" stroke="#505050" stroke-width="1.2" fill="none" transform="rotate(10)"/>
  </g>

  <!-- Bird -->
  <g id="birdOnMoon" transform="translate(150, 170)"> <!-- Feet will be at (150,170) on moon's highest point -->
    <!-- Legs and Feet -->
    <g id="legs">
        <line x1="-3" y1="0" x2="-4" y2="-12" stroke="#8B4513" stroke-width="2.5" stroke-linecap="round"/> <!-- SaddleBrown -->
        <line x1="3" y1="0" x2="4" y2="-12" stroke="#8B4513" stroke-width="2.5" stroke-linecap="round"/>
        <!-- Claws -->
        <path d="M-4.5 0 L-7 -2 L-4.5 -2.5 Z M-3.5 0 L-1 -2 L-3.5 -2.5 Z" fill="#652A0D"/> <!-- Darker brown for claws -->
        <path d="M4.5 0 L7 -2 L4.5 -2.5 Z M3.5 0 L1 -2 L3.5 -2.5 Z" fill="#652A0D"/>
    </g>

    <!-- Body, Wing, Tail Group (rotated together for a slight tilt) -->
    <g transform="rotate(-5 0 -27)"> <!-- Rotate around body center: (0, -27) -->
        <ellipse cx="0" cy="-27" rx="18" ry="15" fill="url(#birdBodyGradient)"/>
        <!-- Tail: extends from back of body. Body rear is roughly (18, -27) in this local rotated space -->
        <path d="M16 -27  q 8 0 10 8 q -2 6 -10 6 q -5 -3 -6 -10 Z" fill="url(#birdTailGradient)" stroke="#005080" stroke-width="0.5" />
        <!-- Wing (folded) -->
        <path d="M-10 -30  Q -28 -35 -22 -18 Q -12 -15 -10 -30 Z" fill="url(#birdWingGradient)" stroke="#004D80" stroke-width="0.5"/>
    </g>

    <!-- Beak (peeking out from under helmet) -->
    <polygon points="0,0 -2.5,3.5 2.5,3.5" fill="#FFA500" stroke="#D48800" stroke-width="0.3" transform="translate(0, -39)" />

    <!-- Helmet Group -->
    <g id="helmet" transform="translate(0, -52)"> <!-- Position helmet above body -->
      <!-- Main helmet shell -->
      <circle cx="0" cy="0" r="13" fill="url(#helmetShellGradient)" stroke="#808080" stroke-width="0.8"/>
      <!-- Visor -->
      <ellipse cx="0" cy="0.5" rx="11.5" ry="8.5" fill="url(#helmetVisorGradient)" />
      <!-- Visor Reflection Highlights -->
      <ellipse cx="-4.5" cy="-2.5" rx="2.5" ry="1.2" fill="white" opacity="0.6" transform="rotate(-25)"/>
      <circle cx="4" cy="1.5" r="0.9" fill="white" opacity="0.45"/>
      <!-- Tiny Earth reflection on visor -->
        <g transform="translate(3.8, 0.5) scale(0.12)"> <!-- Position and scale the Earth reflection -->
             <circle r="8" fill="#5090C0"/> <!-- Slightly different blue for reflection -->
             <path d="M -4 -2 q 2 -3 4 0 q 2 3 -1 4 q -3 1 -3 -4 Z" fill="#70A030" />
             <path d="M 1 2 q 2 1 1 3 q -2 1 -3 -1 q -1 -2 1 -3 Z" fill="#B0A070" />
        </g>
      <!-- Helmet Rim / Neck Ring -->
      <ellipse cx="0" cy="9.2" rx="13" ry="3.5" fill="#B8B8B8" stroke="#606060" stroke-width="0.6"/>
      <!-- Antenna -->
      <line x1="10.5" y1="-8.5" x2="16" y2="-16" stroke="#A0A0A0" stroke-width="1.5" stroke-linecap="round"/>
      <circle cx="16" y1="-16" r="1.5" fill="#FF4500"/> <!-- OrangeRed tip -->
    </g>
  </g>
</svg>
SVG by DeepSeek-R1-Distill-Llama-70B
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <!-- Background with gradient -->
  <rect width="300" height="300" fill="url(#space-gradient)" />
  
  <!-- Moon surface -->
  <path d="M50,200 Q150,250 250,200 Q230,180 210,160 L210,130 Q220,120 230,110 Q250,130 270,160 Q260,170 250,180 Q240,170 230,160 L230,130 Q220,140 210,150 Q200,140 190,130 L190,160 Q180,170 170,180 Q160,190 150,200 Z" fill="#4a4a4a" />
  
  <!-- Moon craters -->
  <circle cx="180" cy="190" r="5" fill="#333" opacity="0.3" />
  <circle cx="220" cy="200" r="3" fill="#333" opacity="0.3" />
  <circle cx="200" cy="180" r="4" fill="#333" opacity="0.3" />
  
  <!-- Bird body -->
  <path d="M140,170 L160,160 Q170,155 180,150 Q190,140 200,130 L200,110 Q190,100 180,90 Q170,80 160,70 L140,80 Q130,85 120,95 Q110,100 100,110 L100,130 Q110,140 120,150 Q130,155 140,160 L140,170 Z" fill="url(#bird-gradient)" />
  
  <!-- Bird head -->
  <ellipse cx="160" cy="100" rx="20" ry="15" fill="url(#bird-gradient)" />
  
  <!-- Bird beak -->
  <path d="M180,100 Q185,95 190,100" fill="#ffa500" />
  
  <!-- Helmet -->
  <path d="M155,95 Q160,90 165,95 Q170,100 165,105 Q160,100 155,95 Z" fill="url(#helmet-gradient)" />
  <path d="M157,92 Q160,89 163,90 Q160,91 157,92 Z" fill="white" />
  
  <!-- Legs -->
  <path d="M140,170 L140,180" stroke="#ffa500" stroke-width="2" />
  <path d="M160,170 L160,180" stroke="#ffa500" stroke-width="2" />
  
  <!-- Gradient definitions -->
  <defs>
    <linearGradient id="space-gradient" x1="0" y1="0" x2="0" y2="300">
      <stop offset="0" stop-color="#1a1a4a" />
      <stop offset="1" stop-color="#000" />
    </linearGradient>
    
    <radialGradient id="bird-gradient" cx="150" cy="150" r="50" fx="150" fy="150">
      <stop offset="0" stop-color="#ffd700" />
      <stop offset="1" stop-color="#ff8c00" />
    </radialGradient>
    
    <radialGradient id="helmet-gradient" cx="160" cy="100" r="10" fx="160" fy="100">
      <stop offset="0" stop-color="#ffd700" />
      <stop offset="1" stop-color="#c0c000" />
    </radialGradient>
  </defs>
</svg>
GPT-4o
Judge & Evaluator
The winner of this SVG challenge is Gemini 2.5 Pro Preview 05-06 Player 1

Judge's Analysis

    Player 1's submission more closely adheres to the prompt by clearly depicting a bird wearing an astronaut helmet and perched on the moon.

    The background with stars and Earth adds to the space theme, enhancing the visual appeal.

    Player 2's image, while abstract and creative, does not clearly convey the bird or the astronaut helmet, making it less adherent to the specified idea.

These metrics analyze technical aspects of both SVG drawings. Look for differences that might explain the judge's decision. Use the "View Code" button above to see the SVG code for each drawing.

Shapes Metrics

Total Shapes

The total number of shape elements (rect, circle, ellipse, line, polygon, polyline, path) in the SVG.

Player 1
53
Player 2
12
Rectangles

The number of rectangle elements (rect) in the SVG.

Player 1
1
Player 2
1
Circles

The number of circle elements (circle) in the SVG.

Player 1
29
Player 2
3
Ellipses

The number of ellipse elements (ellipse) in the SVG.

Player 1
7
Player 2
1
Lines

The number of line elements (line) in the SVG.

Player 1
3
Player 2
Polygons

The number of polygon elements (polygon) in the SVG.

Player 1
1
Player 2
Paths

The number of path elements (path) in the SVG.

Player 1
12
Player 2
7
Groups

The number of group elements (g) in the SVG.

Player 1
10
Player 2

Visual Effects Metrics

Gradients

The number of gradient definitions (linearGradient, radialGradient) in the SVG.

Player 1
9
Player 2
3
Patterns

The number of pattern definitions (pattern) in the SVG.

Player 1
Player 2
Filters

The number of filter definitions (filter) in the SVG.

Player 1
1
Player 2
Masks

The number of mask definitions (mask) in the SVG.

Player 1
Player 2
Clip Paths

The number of clipping path definitions (clipPath) in the SVG.

Player 1
Player 2
Elements with Opacity

The number of elements with opacity attributes in the SVG.

Player 1
15
Player 2
3
Elements with Stroke

The number of elements with stroke attributes in the SVG.

Player 1
13
Player 2
2

Colors Metrics

Unique Colors

The number of unique colors used in the SVG.

Player 1
42
Player 2
9

Interactivity Metrics

Animations

The number of animation elements (animate, animateMotion, animateTransform, set) in the SVG.

Player 1
Player 2
Elements with Transform

The number of elements with transform attributes in the SVG.

Player 1
16
Player 2

Complexity Metrics

Path Commands

The total number of path commands in all path elements (M, L, C, Q, etc.) in the SVG.

Player 1
59
Player 2
45
Max Group Nesting

The maximum nesting level of group elements (g) in the SVG.

Player 1
2
Player 2
Defs Elements

The number of elements defined within the defs element in the SVG.

Player 1
10
Player 2
3
Use Elements

The number of use elements (use) in the SVG.

Player 1
Player 2

Text Metrics

Text Elements

The number of text elements (text) in the SVG.

Player 1
Player 2

AI Judging Process

Creativity

Originality, innovative use of shapes and unique approach to the prompt.

Prompt Adherence

How accurately the SVG captures the essence of the prompt.

Visual Appeal

Aesthetic quality including composition, color usage and overall visual impact.

How does judging work?

SVG drawings are converted to static PNG images for evaluation. The AI judge receives the original prompt and both images, then determines which drawing better fulfills the evaluation criteria without seeing animations, interactivity, or SVG code.

Similar Challenges