Back

SVG Drawing Match #2312

May 09, 2025
GPT-4o
Challenge Creator

Creative Challenge

"A cactus wearing a wizard hat casting a spell under a starry sky."

SVG by GPT-4.1 mini (2025-04-14)
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="A cactus wearing a wizard hat casting a spell under a starry sky">
  <defs>
    <!-- Gradient for starry night sky -->
    <radialGradient id="nightSky" cx="50%" cy="30%" r="70%">
      <stop offset="0%" stop-color="#0b1e3a" />
      <stop offset="100%" stop-color="#000014" />
    </radialGradient>

    <!-- Gradient for cactus body -->
    <linearGradient id="cactusGradient" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#3fa34d" />
      <stop offset="100%" stop-color="#2b6e28" />
    </linearGradient>
    <!-- Spikes pattern -->
    <pattern id="spikes" x="0" y="0" width="10" height="10" patternUnits="userSpaceOnUse">
      <path d="M2 0 L5 5 L8 0" stroke="#a3d5a3" stroke-width="1" fill="none" />
    </pattern>

    <!-- Gradient for wizard hat -->
    <radialGradient id="hatGradient" cx="50%" cy="20%" r="80%">
      <stop offset="0%" stop-color="#7b2ff7" />
      <stop offset="100%" stop-color="#4e00c2" />
    </radialGradient>

    <!-- Glow filter for spell magic -->
    <filter id="glow" x="-50%" y="-50%" width="200%" height="200%" color-interpolation-filters="sRGB">
      <feDropShadow dx="0" dy="0" stdDeviation="4" flood-color="#75f0ff" flood-opacity="0.8"/>
      <feDropShadow dx="0" dy="0" stdDeviation="10" flood-color="#31ccd9" flood-opacity="0.6"/>
    </filter>

    <!-- Star shapes -->
    <g id="star">
      <polygon points="2,0 2.6,1.8 4.5,1.8 2.8,3 3.3,4.8 2,3.7 0.7,4.8 1.2,3 0.5,1.8 2.4,1.8" fill="white" />
    </g>

    <!-- Spell symbol shapes -->
    <radialGradient id="spellGlow" cx="50%" cy="50%" r="60%">
      <stop offset="0%" stop-color="#5cf0ff" stop-opacity="0.9"/>
      <stop offset="100%" stop-color="#0a4f6b" stop-opacity="0"/>
    </radialGradient>
  </defs>

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

  <!-- Stars randomly placed with varying opacity and scales -->
  <use href="#star" x="30" y="25" opacity="0.9" transform="scale(1.5) rotate(15 2 2)" />
  <use href="#star" x="270" y="50" opacity="0.7" transform="scale(1) rotate(-10 2 2)" />
  <use href="#star" x="150" y="40" opacity="0.85" transform="scale(1.3)" />
  <use href="#star" x="90" y="80" opacity="0.6" transform="scale(0.8) rotate(30 2 2)" />
  <use href="#star" x="200" y="120" opacity="0.95" transform="scale(1.4)" />
  <use href="#star" x="50" y="130" opacity="0.5" transform="scale(0.9) rotate(-20 2 2)" />
  <use href="#star" x="250" y="170" opacity="0.7" transform="scale(1.2) rotate(10 2 2)" />
  <use href="#star" x="100" y="210" opacity="0.8" transform="scale(1)" />

  <!-- Moon crescent for atmosphere -->
  <circle cx="260" cy="60" r="25" fill="#f0e6d2" />
  <circle cx="270" cy="55" r="22" fill="url(#nightSky)" />

  <!-- Ground shadow -->
  <ellipse cx="150" cy="285" rx="140" ry="20" fill="rgba(0,0,0,0.4)" />

  <!-- Cactus Group -->
  <g filter="url(#glow)">
    <!-- Main cactus body -->
    <g stroke="#1e431e" stroke-width="2" fill="url(#cactusGradient)" filter="url(#glow)">
      <rect x="120" y="150" width="60" height="110" rx="20" ry="60" />
      <!-- Left arm -->
      <ellipse cx="110" cy="190" rx="17" ry="35" />
      <ellipse cx="110" cy="230" rx="15" ry="27" />
      <rect x="101" y="175" width="18" height="40" rx="9" ry="15" />
      <!-- Right arm -->
      <ellipse cx="190" cy="190" rx="18" ry="40" />
      <ellipse cx="193" cy="230" rx="16" ry="28" />
      <rect x="182" y="175" width="20" height="45" rx="10" ry="18" />
    </g>

    <!-- Spikes on cactus - combing patterns and individual spikes -->
    <rect x="120" y="150" width="60" height="110" fill="url(#spikes)" opacity="0.45"/>
    <ellipse cx="110" cy="190" rx="17" ry="35" fill="url(#spikes)" opacity="0.45" />
    <ellipse cx="110" cy="230" rx="15" ry="27" fill="url(#spikes)" opacity="0.45" />
    <rect x="101" y="175" width="18" height="40" rx="9" ry="15" fill="url(#spikes)" opacity="0.45" />
    <ellipse cx="190" cy="190" rx="18" ry="40" fill="url(#spikes)" opacity="0.48" />
    <ellipse cx="193" cy="230" rx="16" ry="28" fill="url(#spikes)" opacity="0.48" />
    <rect x="182" y="175" width="20" height="45" rx="10" ry="18" fill="url(#spikes)" opacity="0.48" />

    <!-- Cactus texture - subtle darker veins -->
    <path d="M150 160 Q142 170 150 180 Q158 170 150 160" fill="none" stroke="#2d5b23" stroke-width="1" opacity="0.4"/>
    <path d="M140 200 Q135 210 140 220 Q145 210 140 200" fill="none" stroke="#2d5b23" stroke-width="1" opacity="0.4"/>
    <path d="M160 210 Q155 220 160 230 Q165 220 160 210" fill="none" stroke="#2d5b23" stroke-width="1" opacity="0.4"/>
    <path d="M130 170 Q125 180 130 190" fill="none" stroke="#2d5b23" stroke-width="1" opacity="0.3"/>
    <path d="M170 200 Q165 210 170 220" fill="none" stroke="#2d5b23" stroke-width="1" opacity="0.3"/>

  </g>

  <!-- Wizard hat -->
  <g filter="url(#glow)">
    <!-- Hat brim -->
    <ellipse cx="150" cy="145" rx="70" ry="12" fill="#350083" />
    <ellipse cx="150" cy="143" rx="70" ry="12" fill="url(#hatGradient)" />
    <ellipse cx="150" cy="146" rx="70" ry="5" fill="rgba(255,255,255,0.1)" />

    <!-- Hat cone -->
    <path d="M115 80 Q150 30 185 80 Q170 145 130 145 Z" fill="url(#hatGradient)" stroke="#5100cc" stroke-width="2" />
    <path d="M115 80 Q150 30 185 80 Q170 145 130 145 Z" fill="url(#hatGradient)" opacity="0.9" />

    <!-- Magical stars & moons pattern on the hat -->
    <g fill="gold" stroke="orange" stroke-width="0.8" opacity="0.85" transform="translate(145,85) scale(1.3)">
      <circle cx="0" cy="0" r="5" fill="none" stroke="gold" stroke-width="1" />
      <polygon points="0,-5 1.5,-1 5,0 1.5,1 0,5 -1.5,1 -5,0 -1.5,-1" fill="gold" />
    </g>
    <g fill="gold" stroke="orange" stroke-width="0.8" opacity="0.7" transform="translate(130,120) scale(0.7)">
      <circle cx="0" cy="0" r="3" fill="none" stroke="gold" stroke-width="0.6" />
      <polygon points="0,-3 1,-0.5 3,0 1,0.5 0,3 -1,0.5 -3,0 -1,-0.5" fill="gold" />
    </g>
    <g fill="gold" stroke="orange" stroke-width="0.6" opacity="0.6" transform="translate(170,110) scale(0.9)">
      <circle cx="0" cy="0" r="4" fill="none" stroke="gold" stroke-width="0.9" />
      <polygon points="0,-4 1.2,-0.7 4,0 1.2,0.7 0,4 -1.2,0.7 -4,0 -1.2,-0.7" fill="gold" />
    </g>
  </g>

  <!-- Eyes on cactus body -->
  <g>
    <!-- Left eye -->
    <ellipse cx="140" cy="200" rx="8" ry="12" fill="#ddf6ff" stroke="#2c6259" stroke-width="1.4" />
    <circle cx="140" cy="205" r="4" fill="#082f29" />
    <circle cx="144" cy="202" r="1.6" fill="white" />
    <!-- Right eye -->
    <ellipse cx="160" cy="200" rx="7" ry="11" fill="#ddf6ff" stroke="#2c6259" stroke-width="1.4" />
    <circle cx="160" cy="205" r="3.2" fill="#082f29" />
    <circle cx="163" cy="202" r="1.3" fill="white" />
  </g>

  <!-- Mouth (smiling subtle) -->
  <path d="M135 220 Q150 230 165 220" stroke="#2c6259" stroke-width="3" fill="none" stroke-linecap="round" />

  <!-- Magic spell casting effect -->
  <g filter="url(#glow)">
    <!-- Spell orb -->
    <circle cx="150" cy="120" r="20" fill="url(#spellGlow)" />
    <circle cx="150" cy="120" r="13" fill="#37e6ff" opacity="0.75" />
    <circle cx="150" cy="120" r="6" fill="#a4ffff" />
    <!-- Spell swirling rings -->
    <ellipse cx="150" cy="120" rx="26" ry="11" stroke="#68e3ff" stroke-width="1.8" fill="none" opacity="0.5" />
    <ellipse cx="150" cy="120" rx="23" ry="8" stroke="#4fc4e9" stroke-width="1.4" fill="none" opacity="0.75" />
    <!-- Swirling magic ribbons -->
    <path d="M140 100 C145 90, 155 90, 160 100 S168 125, 150 130" fill="none" stroke="#7ff5ff" stroke-width="2" opacity="0.7" />
    <path d="M155 112 C160 110, 165 115, 160 120 S150 132, 140 125" fill="none" stroke="#6fdfff" stroke-width="2" opacity="0.5" />
  </g>

  <!-- Sparkles around spell -->
  <g stroke="#82f0ff" stroke-width="1" fill="#b7f8ff" opacity="0.8">
    <line x1="150" y1="95" x2="150" y2="105"/>
    <line x1="145" y1="100" x2="155" y2="100"/>
    <line x1="135" y1="120" x2="145" y2="120"/>
    <line x1="150" y1="140" x2="160" y2="140"/>
    <line x1="160" y1="110" x2="165" y2="115"/>
  </g>

</svg>
SVG by DeepSeek V3
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <linearGradient id="skyGradient" x1="0" x2="0" y1="0" y2="1">
      <stop offset="0%" stop-color="#001f3f"/>
      <stop offset="100%" stop-color="#000"/>
    </linearGradient>
    <radialGradient id="spellGradient" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
      <stop offset="0%" stop-color="#ff00ff"/>
      <stop offset="100%" stop-color="#00ffff"/>
    </radialGradient>
    <pattern id="starPattern" x="0" y="0" width="10" height="10" patternUnits="userSpaceOnUse">
      <circle cx="5" cy="5" r="1" fill="#fff"/>
    </pattern>
  </defs>
  <rect width="300" height="300" fill="url(#skyGradient)"/>
  <rect width="300" height="300" fill="url(#starPattern)" opacity="0.8"/>
  <ellipse cx="150" cy="250" rx="50" ry="100" fill="#228B22"/>
  <ellipse cx="150" cy="150" rx="30" ry="50" fill="#006400"/>
  <path d="M130,100 L170,100 L150,50 Z" fill="#8B4513"/>
  <circle cx="150" cy="80" r="30" fill="#4B0082"/>
  <path d="M150,80 Q180,100 150,120 Q120,100 150,80 Z" fill="url(#spellGradient)" opacity="0.7"/>
  <circle cx="150" cy="80" r="10" fill="#fff"/>
  <path d="M150,80 Q180,60 150,40 Q120,60 150,80 Z" fill="url(#spellGradient)" opacity="0.7"/>
  <circle cx="150" cy="80" r="5" fill="#fff"/>
  <path d="M150,80 Q120,120 150,160 Q180,120 150,80 Z" fill="url(#spellGradient)" opacity="0.7"/>
  <circle cx="150" cy="80" r="3" fill="#fff"/>
</svg>
GPT-4o
Judge & Evaluator
The winner of this SVG challenge is GPT-4.1 mini (2025-04-14) Player 1

Judge's Analysis

    Player 1's submission adheres more closely to the prompt by clearly depicting a cactus wearing a wizard hat, casting a spell under a starry sky.

    The design is visually appealing, with glowing effects and expressive details that add creativity and charm.

    Player 2's submission is more abstract and lacks clear representation of the cactus or the spellcasting scenario, making it 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
55
Player 2
13
Rectangles

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

Player 1
7
Player 2
2
Circles

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

Player 1
12
Player 2
5
Ellipses

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

Player 1
16
Player 2
2
Lines

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

Player 1
5
Player 2
Polygons

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

Player 1
4
Player 2
Paths

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

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

The number of elements with stroke attributes in the SVG.

Player 1
22
Player 2

Colors Metrics

Unique Colors

The number of unique colors used in the SVG.

Player 1
30
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
11
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
32
Player 2
16
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
7
Player 2
3
Use Elements

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

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