Back

SVG Drawing Match #2625

May 09, 2025
GPT-4o
Challenge Creator

Creative Challenge

"A flying fish leaping over a crescent moon in a starry sky."

SVG by Gemini 2.5 Pro Preview 05-06
<svg xmlns="http://www.w3.org/2000/svg" viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'>
  <defs>
    <radialGradient id="skyGradient" cx="50%" cy="40%" r="70%" fx="50%" fy="30%">
      <stop offset="0%" style="stop-color:#0D0D3B;stop-opacity:1" />
      <stop offset="50%" style="stop-color:#1A1A4A;stop-opacity:1" />
      <stop offset="100%" style="stop-color:#00001A;stop-opacity:1" />
    </radialGradient>

    <linearGradient id="moonGradient" x1="0%" y1="0%" x2="100%" y2="100%">
      <stop offset="0%" style="stop-color:#FEFDE7;" />
      <stop offset="100%" style="stop-color:#F0E68C;" />
    </linearGradient>
    
    <filter id="moonGlow">
      <feGaussianBlur stdDeviation="5" result="coloredBlur"/>
      <feMerge>
        <feMergeNode in="coloredBlur"/>
        <feMergeNode in="SourceGraphic"/>
      </feMerge>
    </filter>

    <linearGradient id="fishBodyGradient" x1="0%" y1="0%" x2="100%" y2="100%">
      <stop offset="0%" style="stop-color:#28C7FA;" /> <!-- Light Sky Blue / Cyan -->
      <stop offset="45%" style="stop-color:#6A5ACD;" /> <!-- Slate Blue -->
      <stop offset="80%" style="stop-color:#EE82EE;" /> <!-- Violet -->
      <stop offset="100%" style="stop-color:#FFB6C1;" /> <!-- Light Pink accents -->
    </linearGradient>

    <linearGradient id="fishFinGradient" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" style="stop-color:rgba(137,207,240,0.7);" /> <!-- Light Sky Blue, semi-transparent -->
      <stop offset="100%" style="stop-color:rgba(221,160,221,0.7);" /> <!-- Plum, semi-transparent -->
    </linearGradient>

    <pattern id="fishScales" x="0" y="0" width="8" height="8" patternUnits="userSpaceOnUse">
      <path d="M0 4 Q2 0 4 4 T8 4" stroke="rgba(255,255,255,0.3)" stroke-width="0.7" fill="none"/>
    </pattern>

    <pattern id="starDust" x="0" y="0" width="60" height="60" patternUnits="userSpaceOnUse">
      <circle cx="8" cy="10" r="0.35" fill="white" opacity="0.6"/>
      <circle cx="20" cy="45" r="0.25" fill="white" opacity="0.4"/>
      <circle cx="35" cy="15" r="0.4" fill="white" opacity="0.7"/>
      <circle cx="50" cy="50" r="0.3" fill="white" opacity="0.5"/>
      <path d="M15 30 l0.5 0.5 l-0.5 0.5 l-0.5 -0.5 Z" fill="white" opacity="0.4"/>
    </pattern>
    
    <linearGradient id="waterDropletGradient" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:rgba(200,230,255,0.8);" />
      <stop offset="100%" style="stop-color:rgba(150,200,240,0.5);" />
    </linearGradient>
  </defs>

  <rect width="300" height="300" fill="url(#skyGradient)" />
  <rect width="300" height="300" fill="url(#starDust)" />

  <circle cx="50" cy="40" r="1.5" fill="#FFFFF0" opacity="0.95"/>
  <path d="M230 58 L232 60 L230 62 L228 60 Z" fill="#F0FFFF" opacity="1"/> 
  <circle cx="160" cy="25" r="1.2" fill="#FFFFE0" opacity="0.8"/>
  <circle cx="80" cy="150" r="0.9" fill="#F5F5F5" opacity="0.85"/>
  <path d="M260 178 L261.5 180 L260 182 L258.5 180 Z" fill="#FFFFF0" opacity="0.9"/>
  <circle cx="30" cy="250" r="0.8" fill="#E6E6FA" opacity="0.75"/>
  <circle cx="270" cy="100" r="1.1" fill="#F0F8FF" opacity="0.9"/>
  <circle cx="120" cy="90" r="1.4" fill="#FAFAD2" opacity="1"/>
  <circle cx="180" cy="270" r="1" fill="#FFFACD" opacity="0.8"/>
  <circle cx="60" cy="210" r="1.2" fill="#F0FFF0" opacity="0.92"/>
  <circle cx="200" cy="140" r="0.7" fill="#F5F5DC" opacity="0.7"/>

  <g filter="url(#moonGlow)">
    <path id="moonShape" d="M100,180 A70,70 0 0,1 100,260  A55,55 0 1,0 100,180 Z" fill="url(#moonGradient)"/>
    <circle cx="95" cy="200" r="7" fill="#D4C87E" opacity="0.35" transform="rotate(-10 95 200)"/>
    <circle cx="108" cy="230" r="4" fill="#D4C87E" opacity="0.25" transform="rotate(10 108 230)"/>
    <circle cx="100" cy="245" r="3" fill="#D4C87E" opacity="0.3"/>
    <circle cx="115" cy="205" r="5" fill="#D4C87E" opacity="0.20"/>
  </g>

  <g id="flyingFish" transform="translate(10, -25) rotate(-20 160 150)">
    <g opacity="0.85">
        <circle cx="90" cy="155" r="2.5" fill="url(#waterDropletGradient)" opacity="0.9"/>
        <ellipse cx="80" cy="165" rx="2" ry="3.5" fill="url(#waterDropletGradient)" transform="rotate(-30 80 165)" opacity="0.8"/>
        <circle cx="70" cy="175" r="1.8" fill="url(#waterDropletGradient)" opacity="0.7"/>
    </g>
    
    <path d="M100,150 
             C130,120 180,110 220,140 
             S235,185 200,180 
             C170,200 130,190 100,150 Z" 
          fill="url(#fishBodyGradient)" stroke="rgba(255,255,255,0.2)" stroke-width="0.5"/>
    <path d="M100,150 
             C130,120 180,110 220,140 
             S235,185 200,180 
             C170,200 130,190 100,150 Z" 
          fill="url(#fishScales)"/>

    <path d="M150,155 
             C120,125 90,130 110,80 
             S210,95 200,130 
             C190,145 150,155 150,155 Z" 
          fill="url(#fishFinGradient)" stroke="rgba(255,255,255,0.3)" stroke-width="0.4" opacity="0.9"/>
    
     <path d="M160,162 
             C140,150 125,145 135,115 
             S195,125 205,148 
             C195,158 160,162 160,162 Z" 
          fill="url(#fishFinGradient)" stroke="rgba(255,255,255,0.2)" stroke-width="0.3" opacity="0.75" transform="translate(10,8) rotate(5 160 162)"/>

    <path d="M95,150 
             C75,145 65,130 80,115 
             L100,150 
             L80,185 C65,170 75,155 95,150 Z"
          fill="url(#fishFinGradient)" stroke="rgba(255,255,255,0.3)" stroke-width="0.4" opacity="0.95"/>
          
    <path d="M170,138 
             C185,123 200,125 205,138 
             L195,145 Z" fill="rgba(123,104,238,0.65)" transform="rotate(-5 188 132)"/>

    <circle cx="208" cy="148" r="5" fill="#0A0A0A"/>
    <circle cx="210" cy="146.5" r="1.5" fill="#FFFFFF" opacity="0.9"/>
  </g>
</svg>
SVG by Claude 3.5 Sonnet (2024-10-22)
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <radialGradient id="skyGradient" cx="50%" cy="50%" r="80%">
      <stop offset="0%" style="stop-color:#0B0B3B"/>
      <stop offset="100%" style="stop-color:#000033"/>
    </radialGradient>
    <linearGradient id="fishGradient" x1="0%" y1="0%" x2="100%" y2="100%">
      <stop offset="0%" style="stop-color:#7EB8E6"/>
      <stop offset="100%" style="stop-color:#3B83BD"/>
    </linearGradient>
    <filter id="glow">
      <feGaussianBlur stdDeviation="2" result="coloredBlur"/>
      <feMerge>
        <feMergeNode in="coloredBlur"/>
        <feMergeNode in="SourceGraphic"/>
      </feMerge>
    </filter>
  </defs>

  <!-- Background -->
  <rect x="0" y="0" width="300" height="300" fill="url(#skyGradient)"/>

  <!-- Stars -->
  <g fill="#FFF" filter="url(#glow)">
    <circle cx="50" cy="50" r="1"/>
    <circle cx="80" cy="30" r="1.5"/>
    <circle cx="150" cy="40" r="1"/>
    <circle cx="200" cy="60" r="1.2"/>
    <circle cx="250" cy="40" r="1"/>
    <circle cx="40" cy="100" r="1.3"/>
    <circle cx="220" cy="120" r="1"/>
    <circle cx="180" cy="20" r="1.5"/>
    <circle cx="100" cy="70" r="1"/>
  </g>

  <!-- Moon -->
  <path d="M180 120 A 40 40 0 1 1 220 180 A 35 35 0 1 0 180 120" 
        fill="#FFF8DC" 
        filter="url(#glow)"/>

  <!-- Flying Fish -->
  <g transform="translate(100,150) rotate(-20)">
    <!-- Fish Body -->
    <path d="M0 0 C30 -10 60 -10 90 0 C60 10 30 10 0 0" 
          fill="url(#fishGradient)" 
          stroke="#2B5F8A" 
          stroke-width="1"/>
    
    <!-- Fins -->
    <path d="M30 0 C20 -20 40 -30 60 -25 C45 -15 35 -5 30 0" 
          fill="#7EB8E6" 
          stroke="#2B5F8A" 
          stroke-width="1"/>
    <path d="M30 0 C20 20 40 30 60 25 C45 15 35 5 30 0" 
          fill="#7EB8E6" 
          stroke="#2B5F8A" 
          stroke-width="1"/>
    
    <!-- Tail -->
    <path d="M-10 0 C-5 -10 0 -15 5 -10 C0 0 5 10 -10 0" 
          fill="#7EB8E6" 
          stroke="#2B5F8A" 
          stroke-width="1"/>
    
    <!-- Eye -->
    <circle cx="75" cy="-2" r="3" fill="#000"/>
    <circle cx="75" cy="-2" r="1" fill="#FFF"/>
  </g>

  <!-- Water Droplets -->
  <g fill="#A7D8FF" filter="url(#glow)">
    <circle cx="80" cy="180" r="2"/>
    <circle cx="90" cy="170" r="1.5"/>
    <circle cx="100" cy="185" r="1"/>
    <circle cx="70" cy="175" r="1.5"/>
  </g>
</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 demonstrates a higher level of creativity and technical quality, with a beautifully blended gradient on the fish and a realistic depiction of the crescent moon.

    The translucent fins and glowing stars add depth and visual appeal, adhering well to the prompt.

    Player 2's image, while charming, has a simpler design and lacks the same level of detail and polish as Player 1's.

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
Player 2
21
Rectangles

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

Player 1
Player 2
1
Circles

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

Player 1
Player 2
15
Ellipses

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

Player 1
Player 2
Lines

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

Player 1
Player 2
Polygons

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

Player 1
Player 2
Paths

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

Player 1
Player 2
5
Groups

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

Player 1
Player 2
3

Visual Effects Metrics

Gradients

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

Player 1
Player 2
2
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
Player 2
1
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
Player 2
Elements with Stroke

The number of elements with stroke attributes in the SVG.

Player 1
Player 2
4

Colors Metrics

Unique Colors

The number of unique colors used in the SVG.

Player 1
Player 2
6

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
Player 2
1

Complexity Metrics

Path Commands

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

Player 1
Player 2
15
Max Group Nesting

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

Player 1
Player 2
Defs Elements

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

Player 1
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