Back

SVG Drawing Match #2418

May 09, 2025
GPT-4o
Challenge Creator

Creative Challenge

"A cactus wearing a top hat and sunglasses in the middle of a rainy desert."

SVG by Gemini 2.5 Pro Preview 05-06
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:#4A5568;"/>
      <stop offset="60%" style="stop-color:#718096;"/>
      <stop offset="100%" style="stop-color:#A0AEC0;"/>
    </linearGradient>
    <radialGradient id="cactusGradient" cx="50%" cy="50%" r="65%" fx="30%" fy="30%">
      <stop offset="0%" style="stop-color:#689F38;" />
      <stop offset="100%" style="stop-color:#33691E;" />
    </radialGradient>
    <linearGradient id="hatGradient" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:#212121;" />
      <stop offset="100%" style="stop-color:#424242;" />
    </linearGradient>
    <linearGradient id="lensGradient" x1="0%" y1="0%" x2="100%" y2="100%">
        <stop offset="0%" style="stop-color:#2c3e50; stop-opacity:0.9"/>
        <stop offset="100%" style="stop-color:#1a252f; stop-opacity:0.95"/>
    </linearGradient>
    <pattern id="sandTexture" patternUnits="userSpaceOnUse" width="10" height="10">
        <circle cx="2" cy="2" r="0.6" fill="#C19A6B" fill-opacity="0.5"/>
        <circle cx="7" cy="5" r="0.5" fill="#B8860B" fill-opacity="0.4"/>
        <circle cx="5" cy="8" r="0.6" fill="#D2B48C" fill-opacity="0.3"/>
    </pattern>
    <filter id="subtleBlur">
      <feGaussianBlur in="SourceGraphic" stdDeviation="2"/>
    </filter>
  </defs>

  <!-- Background -->
  <rect x="0" y="0" width="300" height="300" fill="url(#skyGradient)" />
  
  <!-- Distant mountains -->
  <path d="M-20 210 Q30 180, 80 200 T150 190 Q200 170, 250 205 T320 195" fill="#607D8B" opacity="0.5"/>
  <path d="M-10 215 Q50 190, 100 210 T180 200 Q240 180, 310 210" fill="#78909C" opacity="0.6"/>

  <!-- Desert Ground -->
  <path d="M0 200 Q60 180, 120 205 Q180 230, 240 200 Q300 170, 300 210 L300 300 L0 300 Z" fill="#BF946A" />
  <path d="M0 200 Q60 180, 120 205 Q180 230, 240 200 Q300 170, 300 210 L300 300 L0 300 Z" fill="url(#sandTexture)" opacity="0.4" />

  <!-- Puddles -->
  <ellipse cx="80" cy="270" rx="50" ry="15" fill="#778899" opacity="0.6" transform="rotate(-5 80 270)"/>
  <ellipse cx="200" cy="280" rx="70" ry="20" fill="#607D8B" opacity="0.7">
     <animate attributeName="rx" values="70;72;69;71;70" dur="4s" repeatCount="indefinite"/>
     <animate attributeName="ry" values="20;19;21;18;20" dur="4s" repeatCount="indefinite"/>
  </ellipse>
  <ellipse cx="150" cy="230" rx="30" ry="10" fill="#81A9C4" opacity="0.5" transform="rotate(10 150 230)"/>

  <!-- Cactus Shadow -->
  <ellipse cx="150" cy="252" rx="45" ry="10" fill="rgba(0,0,0,0.15)" filter="url(#subtleBlur)"/>

  <!-- Cactus Group -->
  <g id="cactus">
    <!-- Main body -->
    <path d="M150,250 C130,250 125,150 135,110 A15,15 0 1,1 165,110 C175,150 170,250 150,250 Z" fill="url(#cactusGradient)" stroke="#2E7D32" stroke-width="0.5"/>
    <!-- Left arm -->
    <path d="M135,160 C105,170 90,150 100,120 A10,10 0 1,1 120,120 C120,150 125,155 135,160 Z" fill="url(#cactusGradient)" stroke="#2E7D32" stroke-width="0.5"/>
    <!-- Right arm -->
    <path d="M165,170 C195,180 210,160 200,130 A10,10 0 1,0 180,130 C180,160 175,165 165,170 Z" fill="url(#cactusGradient)" stroke="#2E7D32" stroke-width="0.5"/>
    
    <!-- Cactus Spines -->
    <g stroke="#F1F8E9" stroke-width="0.7" opacity="0.75" stroke-linecap="round">
      <!-- Spines on main body -->
      <path d="M140 130 l-3 -2 l3 2 l-1 3"/> <path d="M160 130 l3 -2 l-3 2 l1 3"/>
      <path d="M138 155 l-3 -2 l3 2 l-1 3"/> <path d="M162 155 l3 -2 l-3 2 l1 3"/>
      <path d="M140 180 l-3 -2 l3 2 l-1 3"/> <path d="M160 180 l3 -2 l-3 2 l1 3"/>
      <path d="M145 205 l-3 -2 l3 2 l-1 3"/> <path d="M155 205 l3 -2 l-3 2 l1 3"/>
      <path d="M148 230 l-3 -2 l3 2 l-1 3"/>
      <!-- Spines on left arm -->
      <path d="M105 125 l-3 -2 l3 2 l-1 3"/> <path d="M115 128 l3 -2 l-3 2 l1 3"/>
      <path d="M102 140 l-3 -2 l3 2 l-1 3"/> <path d="M118 145 l3 -2 l-3 2 l1 3"/>
      <!-- Spines on right arm -->
      <path d="M185 135 l-3 -2 l3 2 l-1 3"/> <path d="M195 138 l3 -2 l-3 2 l1 3"/>
      <path d="M182 150 l-3 -2 l3 2 l-1 3"/> <path d="M198 155 l3 -2 l-3 2 l1 3"/>
    </g>

    <!-- Sunglasses -->
    <g id="sunglasses" transform="translate(150, 120) rotate(-2)">
      <path d="M-10 0 Q0 -3, 10 0" stroke="#333" stroke-width="2.5" fill="none"/>
      <ellipse cx="-20" cy="0" rx="14" ry="10" fill="url(#lensGradient)" stroke="#222" stroke-width="2"/>
      <path d="M-28 -2 Q-23 -7 -18 -2 Z" fill="white" fill-opacity="0.2"/>
      <ellipse cx="20" cy="0" rx="14" ry="10" fill="url(#lensGradient)" stroke="#222" stroke-width="2"/>
      <path d="M18 -2 Q23 -7 28 -2 Z" fill="white" fill-opacity="0.2"/>
      <path d="M-33 0 L-45 -7" stroke="#333" stroke-width="3" stroke-linecap="round"/>
      <path d="M33 0 L45 -7" stroke="#333" stroke-width="3" stroke-linecap="round"/>
    </g>

    <!-- Top Hat -->
    <g id="topHat" transform="translate(150, 88)">
      <ellipse cx="0" cy="15" rx="35" ry="10" fill="#333333" />
      <rect x="-25" y="-30" width="50" height="45" fill="url(#hatGradient)" rx="3" ry="3"/>
      <ellipse cx="0" cy="-30" rx="25" ry="7" fill="#212121" />
      <rect x="-28" y="5" width="56" height="8" fill="#AD1457" rx="2" ry="2"/>
      <path d="M-15 -25 q 2 -10 5 -10 q 3 0 5 10 l -3 2 q -2 -8 -4 -8 q -2 0 -3 8 z" fill="#424242" opacity="0.2"/>
    </g>
  </g>

  <!-- Rain -->
  <g id="rain" stroke="#A0D2DB" stroke-width="1.2" opacity="0.65" stroke-linecap="round">
    <line x1="15" y1="-15" x2="-5" y2="35"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.5s" repeatCount="indefinite" /> </line>
    <line x1="50" y1="-10" x2="30" y2="30"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.3s" begin="0.2s" repeatCount="indefinite" /> </line>
    <line x1="80" y1="-20" x2="55" y2="40"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.6s" begin="0.4s" repeatCount="indefinite" /> </line>
    <line x1="110" y1="-10" x2="95" y2="25"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.2s" begin="0.1s" repeatCount="indefinite" /> </line>
    <line x1="140" y1="-15" x2="118" y2="38"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.7s" begin="0.3s" repeatCount="indefinite" /> </line>
    <line x1="170" y1="-10" x2="150" y2="30"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.4s" begin="0.5s" repeatCount="indefinite" /> </line>
    <line x1="200" y1="-20" x2="178" y2="35"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.65s" begin="0.25s" repeatCount="indefinite" /> </line>
    <line x1="230" y1="-10" x2="210" y2="28"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.35s" begin="0.15s" repeatCount="indefinite" /> </line>
    <line x1="260" y1="-15" x2="240" y2="40"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.55s" begin="0.35s" repeatCount="indefinite" /> </line>
    <line x1="290" y1="-10" x2="275" y2="32"> <animateTransform attributeName="transform" type="translate" values="0 0; 300 330" dur="1.25s" begin="0.45s" repeatCount="indefinite" /> </line>
    
    <line x1="35" y1="-10" x2="20" y2="25" stroke-opacity="0.5"> <animateTransform attributeName="transform" type="translate" values="0 0; 280 310" dur="1.8s" begin="0.7s" repeatCount="indefinite" /> </line>
    <line x1="155" y1="-15" x2="130" y2="40" stroke-opacity="0.5"> <animateTransform attributeName="transform" type="translate" values="0 0; 200 230" dur="2s" begin="0.9s" repeatCount="indefinite" /> </line>
     <line x1="275" y1="-20" x2="250" y2="30" stroke-opacity="0.5"> <animateTransform attributeName="transform" type="translate" values="0 0; 100 130" dur="1.9s" begin="1.1s" repeatCount="indefinite" /> </line>
  </g>

  <!-- Rain splashes on ground -->
  <g fill="#A0D2DB" opacity="0.5">
    <circle cx="70" cy="265" r="1"> <animate attributeName="r" values="0;5;0" dur="0.5s" begin="0.1s" repeatCount="indefinite"/> <animate attributeName="opacity" values="0;0.8;0" dur="0.5s" begin="0.1s" repeatCount="indefinite"/> </circle>
    <circle cx="190" cy="275" r="1"> <animate attributeName="r" values="0;6;0" dur="0.6s" begin="0.3s" repeatCount="indefinite"/> <animate attributeName="opacity" values="0;0.7;0" dur="0.6s" begin="0.3s" repeatCount="indefinite"/> </circle>
    <circle cx="250" cy="250" r="1"> <animate attributeName="r" values="0;4;0" dur="0.4s" begin="0.5s" repeatCount="indefinite"/> <animate attributeName="opacity" values="0;0.8;0" dur="0.4s" begin="0.5s" repeatCount="indefinite"/> </circle>
    <circle cx="120" cy="285" r="1"> <animate attributeName="r" values="0;5;0" dur="0.55s" begin="0.2s" repeatCount="indefinite"/> <animate attributeName="opacity" values="0;0.7;0" dur="0.55s" begin="0.2s" repeatCount="indefinite"/> </circle>
    <circle cx="150" cy="228" r="1"> <animate attributeName="r" values="0;3;0" dur="0.45s" begin="0.4s" repeatCount="indefinite"/> <animate attributeName="opacity" values="0;0.6;0" dur="0.45s" begin="0.4s" repeatCount="indefinite"/> </circle>
  </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>
    <linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:#2c3e50"/>
      <stop offset="100%" style="stop-color:#3498db"/>
    </linearGradient>
    <pattern id="rainPattern" width="30" height="30" patternUnits="userSpaceOnUse">
      <line x1="15" y1="0" x2="0" y2="30" stroke="#a8d8ff" stroke-width="2"/>
    </pattern>
  </defs>
  
  <!-- Background -->
  <rect x="0" y="0" width="300" height="300" fill="url(#skyGradient)"/>
  <rect x="0" y="0" width="300" height="300" fill="url(#rainPattern)" opacity="0.5"/>
  
  <!-- Desert ground -->
  <path d="M0,220 Q150,180 300,220 L300,300 L0,300 Z" fill="#e67e22"/>
  
  <!-- Cactus body -->
  <path d="M130,160 Q130,100 150,80 Q170,100 170,160 L170,250 L130,250 Z" fill="#27ae60"/>
  <path d="M170,140 L200,120 Q220,120 220,140 L200,160 L170,160" fill="#27ae60"/>
  <path d="M130,130 L100,110 Q80,110 80,130 L100,150 L130,150" fill="#27ae60"/>
  
  <!-- Top hat -->
  <rect x="120" y="40" width="60" height="10" fill="#2c3e50"/>
  <rect x="130" y="20" width="40" height="30" fill="#2c3e50"/>
  <ellipse cx="150" cy="50" rx="30" ry="5" fill="#2c3e50"/>
  
  <!-- Sunglasses -->
  <rect x="125" y="70" width="50" height="15" rx="5" fill="#2c3e50"/>
  <rect x="125" y="70" width="20" height="15" rx="5" fill="#f1c40f"/>
  <rect x="155" y="70" width="20" height="15" rx="5" fill="#f1c40f"/>
  
  <!-- Lightning bolt -->
  <path d="M50,50 L70,80 L60,100 L80,130" stroke="#f1c40f" stroke-width="3" fill="none"/>
  <path d="M220,30 L240,60 L230,80 L250,110" stroke="#f1c40f" stroke-width="3" fill="none"/>
  
  <!-- Sand dunes -->
  <path d="M0,250 Q75,220 150,250 Q225,280 300,250" fill="none" stroke="#d35400" stroke-width="3"/>
  <path d="M0,270 Q75,240 150,270 Q225,300 300,270" fill="none" stroke="#d35400" stroke-width="3"/>
</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 is more polished in terms of composition and visual appeal.

    The cactus has clear details like thorns, a realistic top hat, and sunglasses, and the desert environment features puddles that enhance adherence to the rainy setting.

    Player 2's submission is less refined, with simplistic shapes and less attention to detail in the environment and accessories.

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
62
Player 2
17
Rectangles

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

Player 1
3
Player 2
7
Circles

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

Player 1
8
Player 2
Ellipses

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

Player 1
8
Player 2
1
Lines

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

Player 1
13
Player 2
1
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
30
Player 2
8
Groups

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

Player 1
6
Player 2

Visual Effects Metrics

Gradients

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

Player 1
4
Player 2
1
Patterns

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

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

The number of elements with stroke attributes in the SVG.

Player 1
10
Player 2
5

Colors Metrics

Unique Colors

The number of unique colors used in the SVG.

Player 1
19
Player 2
6

Interactivity Metrics

Animations

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

Player 1
25
Player 2
Elements with Transform

The number of elements with transform attributes in the SVG.

Player 1
4
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
125
Player 2
35
Max Group Nesting

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

Player 1
1
Player 2
Defs Elements

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

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