Back

SVG Drawing Match #2579

May 09, 2025
GPT-4o
Challenge Creator

Creative Challenge

"A floating island with a lone tree, roots dangling into the clouds below."

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="50%" y1="0%" x2="50%" y2="100%">
      <stop offset="0%" style="stop-color:#FFAC81; stop-opacity:1" /> <!-- Peachy orange -->
      <stop offset="35%" style="stop-color:#FFC2B4; stop-opacity:1" /> <!-- Lighter Pink/Orange -->
      <stop offset="65%" style="stop-color:#A2D2FF; stop-opacity:1" /> <!-- Light Sky Blue -->
      <stop offset="100%" style="stop-color:#78A2CC; stop-opacity:1" /> <!-- Deeper Sky Blue -->
    </linearGradient>

    <radialGradient id="cloudGradient" cx="50%" cy="50%" r="65%">
      <stop offset="0%" style="stop-color:#FFFFFF;stop-opacity:0.95"/>
      <stop offset="70%" style="stop-color:#F0F8FF;stop-opacity:0.8"/>
      <stop offset="100%" style="stop-color:#E0E8F0;stop-opacity:0.6"/>
    </radialGradient>
    <filter id="cloudBlur">
      <feGaussianBlur in="SourceGraphic" stdDeviation="2.5" />
    </filter>

    <linearGradient id="islandRockGradient" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:#A07855;" /> <!-- Lighter Earthy Brown -->
      <stop offset="50%" style="stop-color:#8B5A2B;" /> <!-- Mid Earthy Brown -->
      <stop offset="100%" style="stop-color:#5C4033;" /> <!-- Dark Earthy Brown -->
    </linearGradient>
    <pattern id="rockPattern" patternUnits="userSpaceOnUse" width="15" height="15" patternTransform="rotate(30)">
      <path d="M0 2 L2 0 L4 2 L2 4 Z M5 7 L7 5 L9 7 L7 9 Z" fill="#4A3B31" opacity="0.2"/>
      <circle cx="10" cy="2" r="1" fill="#4A3B31" opacity="0.15"/>
      <rect width="15" height="15" fill="transparent" opacity="0.1"/>
    </pattern>

    <linearGradient id="islandGrassGradient" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:#779A3F;" /> <!-- Olive Green -->
      <stop offset="100%" style="stop-color:#556B2F;" /> <!-- Dark Olive Green -->
    </linearGradient>

    <linearGradient id="treeTrunkGradient" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" style="stop-color:#967969;" />   <!-- Lighter Brown on left -->
      <stop offset="40%" style="stop-color:#654321;" />  <!-- Dark Brown middle -->
      <stop offset="100%" style="stop-color:#50331B;" /> <!-- Darkest Brown on right -->
    </linearGradient>
    <radialGradient id="canopyGradient" cx="50%" cy="50%" r="70%">
      <stop offset="0%" style="stop-color:#4A7729;" /> <!-- Vibrant Green -->
      <stop offset="60%" style="stop-color:#386641;" /> <!-- Forest Green -->
      <stop offset="100%" style="stop-color:#2A482A;" /> <!-- Darker Forest Green -->
    </radialGradient>
    <filter id="subtleShadow">
      <feDropShadow dx="2.5" dy="2.5" stdDeviation="1.5" flood-color="#000000" flood-opacity="0.25"/>
    </filter>

    <linearGradient id="rootGradient1" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" stop-color="#B08D57" /> 
      <stop offset="100%" stop-color="#8C6H46" /> 
    </linearGradient>
    <linearGradient id="rootGradient2" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" stop-color="#C49A6C" />
      <stop offset="100%" stop-color="#8B5A2B" />
    </linearGradient>
  </defs>

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

  <!-- Stars -->
  <g id="stars" opacity="0.9">
    <circle cx="60" cy="40" r="1.2" fill="#FFF8DC"><animate attributeName="r" values="1.2;1.5;1.2" dur="3s" repeatCount="indefinite" begin="0.5s"/></circle>
    <circle cx="250" cy="60" r="0.9" fill="#FFF8DC"/>
    <circle cx="150" cy="20" r="1" fill="#FFFACD"><animate attributeName="opacity" values="0.6;1;0.6" dur="2.5s" repeatCount="indefinite"/></circle>
    <circle cx="30" cy="90" r="0.7" fill="#FFF8DC"/>
    <circle cx="280" cy="120" r="0.8" fill="#FFFACD"/>
    <circle cx="200" cy="35" r="1.3" fill="#FFF8DC"><animate attributeName="r" values="1.3;1;1.3" dur="4s" repeatCount="indefinite" begin="1s"/></circle>
    <circle cx="100" cy="70" r="0.9" fill="#FFFACD"><animate attributeName="opacity" values="1;0.5;1" dur="3.5s" begin="0.2s" repeatCount="indefinite" /></circle>
  </g>

  <!-- Background Clouds (behind island) -->
  <g id="cloudsBackground" filter="url(#cloudBlur)" opacity="0.8">
    <ellipse cx="80" cy="190" rx="100" ry="40" fill="url(#cloudGradient)" transform="rotate(-5 80 190)"/>
    <ellipse cx="240" cy="200" rx="80" ry="35" fill="url(#cloudGradient)" transform="rotate(5 240 200)"/>
  </g>
  
  <!-- Main floating element: Island, Roots, Tree -->
  <g id="mainSceneElement" transform="translate(0 -15)">

    <!-- Roots (drawn first to be behind island base if overlapping, but start points should align) -->
    <g id="roots" filter="url(#subtleShadow)">
      <path d="M95,205 Q85,235 90,260 T100,285 Q95,295 85,300" stroke="url(#rootGradient1)" stroke-width="4" fill="none" stroke-linecap="round"/>
      <path d="M120,215 Q110,240 118,265 T125,295 Q130,305 135,310" stroke="url(#rootGradient2)" stroke-width="3" fill="none" stroke-linecap="round"/>
      <path d="M150,220 Q145,250 155,275 T145,305 Q150,315 140,320" stroke="url(#rootGradient1)" stroke-width="5" fill="none" stroke-linecap="round"/>
      <path d="M180,210 Q190,245 180,265 T188,290 Q180,300 190,305" stroke="url(#rootGradient2)" stroke-width="3.5" fill="none" stroke-linecap="round"/>
      <path d="M205,200 Q215,230 200,255 T195,280 Q205,290 190,295" stroke="url(#rootGradient1)" stroke-width="3" fill="none" stroke-linecap="round"/>
      <path d="M70,195 Q65,225 75,245 T65,270" stroke="url(#rootGradient2)" stroke-width="2.5" fill="none" stroke-linecap="round"/>
      <path d="M230,190 Q225,210 235,230 T225,255" stroke="url(#rootGradient1)" stroke-width="3" fill="none" stroke-linecap="round"/>
    </g>

    <!-- Floating Island -->
    <g id="floatingIsland" filter="url(#subtleShadow)">
      <path id="islandBase" d="M45,175 Q65,150 100,165 T150,160 Q190,145 210,165 T255,175 
                              L250,210 Q210,230 150,225 Q90,235 50,210 L45,175 Z" 
            fill="url(#islandRockGradient)"/>
      <path id="islandBaseTextureOverlay" d="M45,175 Q65,150 100,165 T150,160 Q190,145 210,165 T255,175 
                              L250,210 Q210,230 150,225 Q90,235 50,210 L45,175 Z" 
            fill="url(#rockPattern)" opacity="0.35"/>
      <path id="islandGrass" d="M48,175 Q65,160 100,170 T150,165 Q185,155 210,170 T252,178 
                               L248,183 Q205,180 150,178 Q95,180 52,183 L48,175 Z" 
                               fill="url(#islandGrassGradient)" stroke="#4A5C2A" stroke-width="0.7"/>
      
      <!-- Lone Tree -->
      <g id="loneTree" transform="translate(150 105)"> <!-- Position tree on island center, y adjusted for grass height -->
        <!-- Trunk -->
        <path d="M-6,60 C-10,40 -3,15 0,0 C3,15 10,40 6,60 Z" fill="url(#treeTrunkGradient)" transform="scale(1.1 1.2)"/>
        <!-- Branches -->
        <path d="M0,12 q-18,-12 -28,-8" stroke="#50331B" stroke-width="4.5" fill="none" stroke-linecap="round" transform="scale(1.1 1.2)"/>
        <path d="M0,18 q15,-15 25,-5" stroke="#654321" stroke-width="3.5" fill="none" stroke-linecap="round" transform="scale(1.1 1.2)"/>
        <path d="M-1,8 q8,-12 18,-18" stroke="#654321" stroke-width="3" fill="none" stroke-linecap="round" transform="scale(1.1 1.2)"/>
        
        <!-- Canopy -->
        <g id="canopy" transform="translate(0 -22) scale(1.15)"> 
          <path d="M0,-38 
                   Q-30,-50 -40,-20 
                   Q-55,15 -25,18 
                   Q-20,30 0,15 
                   Q20,30 25,18 
                   Q55,15 40,-20 
                   Q30,-50 0,-38 Z" 
                fill="url(#canopyGradient)"/> 
          <ellipse cx="-18" cy="-22" rx="22" ry="19" fill="url(#canopyGradient)" opacity="0.85" transform="rotate(-10 -18 -22)"/>
          <ellipse cx="15" cy="-28" rx="25" ry="21" fill="url(#canopyGradient)" opacity="0.9" transform="rotate(8 15 -28)"/>
           <ellipse cx="0" cy="-40" rx="18" ry="15" fill="#5A8D3A" opacity="0.7"/>
        </g>
      </g>
    </g>
  </g>

  <!-- Foreground Clouds (obscuring root ends) -->
  <g id="cloudsForeground" filter="url(#cloudBlur)">
    <ellipse cx="150" cy="265" rx="90" ry="35" fill="url(#cloudGradient)" />
    <ellipse cx="90" cy="275" rx="70" ry="30" fill="url(#cloudGradient)" transform="rotate(8 90 275)" />
    <ellipse cx="210" cy="270" rx="80" ry="32" fill="url(#cloudGradient)" transform="rotate(-6 210 270)" />
    <ellipse cx="150" cy="295" rx="120" ry="40" fill="url(#cloudGradient)" opacity="0.9"/>
    <ellipse cx="40" cy="280" rx="60" ry="25" fill="url(#cloudGradient)" />
    <ellipse cx="260" cy="285" rx="70" ry="28" fill="url(#cloudGradient)" />
  </g>

</svg>
SVG by Gemini Pro 1.5
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <radialGradient id="sky" cx="150" cy="350" r="250" gradientUnits="userSpaceOnUse">
      <stop offset="0%" stop-color="#A6D0E8"/>
      <stop offset="50%" stop-color="#F0F8FF"/>
      <stop offset="100%" stop-color="#D4ECF9"/>
    </radialGradient>
    <radialGradient id="island" cx="150" cy="180" r="80" gradientUnits="userSpaceOnUse">
      <stop offset="0%" stop-color="#558B2F"/>
      <stop offset="50%" stop-color="#388E3C"/>
      <stop offset="100%" stop-color="#1B5E20"/>
    </radialGradient>
    <filter id="cloudFilter">
      <feGaussianBlur in="SourceGraphic" stdDeviation="4" result="blur"/>
      <feColorMatrix in="blur" type="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 18 -7" result="goo"/>
    </filter>
  </defs>
  <rect width="300" height="300" fill="url(#sky)"/>
  <g filter="url(#cloudFilter)">
    <path d="M50 200 c 30 20, 70 20, 100 0 c 30 -10, 60 -40, 90 -40 c 30 10, 50 40, 80 40 c 30 -20, 60 -10, 90 20" fill="#fff" opacity="0.8"/>
    <path d="M20 230 c 20 10, 50 15, 70 5 c 20 -10, 40 -30, 60 -30 c 20 10, 40 25, 60 25 c 20 -15, 50 -20, 70 0" fill="#fff" opacity="0.8"/>
  </g>
  <ellipse cx="150" cy="180" rx="70" ry="40" fill="url(#island)"/>
  <path d="M140 120 c -10 0 -15 10 -10 20 c 0 40 10 60 20 80 c 10 20 25 40 45 40 c 20 0 35 -20 45 -40 c 10 -20 20 -40 20 -80 c 5 -10 -0 -20 -10 -20 l -70 2" fill="#2E7D32" stroke="#1B5E20" stroke-width="2"/>
  <path d="M110 175 c -5 -20 0 -40 10 -50 c 10 -5 30 -5 40 0 c 5 15 15 40 15 60" stroke="#A1887F" stroke-width="5" fill="none"/>
    <path d="M150 175 c -5 -20 0 -40 10 -50 c 10 -5 30 -5 40 0 c 5 15 15 40 15 60" stroke="#A1887F" stroke-width="5" fill="none"/>
    <path d="M190 175 c -5 -20 0 -40 10 -50 c 10 -5 30 -5 40 0 c 5 15 15 40 15 60" stroke="#A1887F" stroke-width="5" fill="none"/>
</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 adheres more closely to the idea of a floating island with a lone tree and dangling roots.

    The tree is clearly depicted, and the floating island is visually distinct with roots extending into the clouds.

    Player 2's submission lacks clarity in representing the tree and island concept, making it less visually engaging and less aligned with the prompt.

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
37
Player 2
8
Rectangles

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

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

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

Player 1
8
Player 2
1

Visual Effects Metrics

Gradients

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

Player 1
8
Player 2
2
Patterns

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

Player 1
1
Player 2
Filters

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

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

The number of elements with stroke attributes in the SVG.

Player 1
11
Player 2
4

Colors Metrics

Unique Colors

The number of unique colors used in the SVG.

Player 1
11
Player 2
9

Interactivity Metrics

Animations

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

Player 1
4
Player 2
Elements with Transform

The number of elements with transform attributes in the SVG.

Player 1
13
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
84
Player 2
30
Max Group Nesting

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

Player 1
3
Player 2
Defs Elements

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

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