Creative Challenge
"A cactus wearing a crown in a desert at sunset."
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<!-- Sky gradient -->
<defs>
<linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#1a0a2e" />
<stop offset="30%" stop-color="#5b2180" />
<stop offset="60%" stop-color="#e05c52" />
<stop offset="80%" stop-color="#ffb85c" />
<stop offset="100%" stop-color="#ffd68c" />
</linearGradient>
<linearGradient id="sandGradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#ffd68c" />
<stop offset="100%" stop-color="#d1995e" />
</linearGradient>
<linearGradient id="cactusGradient" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#0f5132" />
<stop offset="50%" stop-color="#2a9d5d" />
<stop offset="100%" stop-color="#0f5132" />
</linearGradient>
<linearGradient id="crownGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#ffd700" />
<stop offset="50%" stop-color="#ffb700" />
<stop offset="100%" stop-color="#ff8c00" />
</linearGradient>
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="4" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
</defs>
<!-- Background sky -->
<rect x="0" y="0" width="300" height="200" fill="url(#skyGradient)" />
<!-- Sun -->
<circle cx="250" cy="60" r="30" fill="#ff5e3a" filter="url(#glow)" />
<!-- Desert sand -->
<path d="M0,170 C60,150 120,180 180,160 C240,140 300,170 300,170 L300,300 L0,300 Z" fill="url(#sandGradient)" />
<!-- Distant mountains -->
<path d="M0,170 L40,140 L60,160 L90,130 L120,165 L150,140 L180,160 L210,135 L240,155 L270,140 L300,170 L300,170 L0,170 Z" fill="#9e6b53" opacity="0.7" />
<!-- Distant cactus silhouettes -->
<path d="M40,170 L40,150 L35,150 L35,160 L30,160 L30,150 L40,150 L40,170 Z" fill="#0a3622" />
<path d="M260,170 L260,145 L255,145 L255,155 L250,155 L250,140 L260,140 L265,140 L265,155 L260,155 L260,170 Z" fill="#0a3622" />
<!-- Main cactus body -->
<path d="M150,220 C150,220 140,180 140,150 C140,130 150,110 150,90 C150,70 150,70 150,70 C150,70 150,70 150,90 C150,110 160,130 160,150 C160,180 150,220 150,220 Z" fill="url(#cactusGradient)" stroke="#0a3622" stroke-width="1" />
<!-- Cactus arms -->
<path d="M150,130 C150,130 130,130 120,120 C110,110 110,100 110,90 C110,80 120,80 120,90 C120,100 130,110 150,130 Z" fill="url(#cactusGradient)" stroke="#0a3622" stroke-width="1" />
<path d="M150,150 C150,150 170,150 180,140 C190,130 190,120 190,110 C190,100 180,100 180,110 C180,120 170,130 150,150 Z" fill="url(#cactusGradient)" stroke="#0a3622" stroke-width="1" />
<!-- Cactus spikes -->
<g stroke="#5a3921" stroke-width="0.8">
<line x1="140" y1="100" x2="135" y2="95" />
<line x1="140" y1="110" x2="132" y2="107" />
<line x1="140" y1="120" x2="135" y2="115" />
<line x1="140" y1="130" x2="132" y2="127" />
<line x1="140" y1="140" x2="135" y2="135" />
<line x1="140" y1="150" x2="132" y2="147" />
<line x1="140" y1="160" x2="135" y2="155" />
<line x1="140" y1="170" x2="132" y2="167" />
<line x1="160" y1="100" x2="165" y2="95" />
<line x1="160" y1="110" x2="168" y2="107" />
<line x1="160" y1="120" x2="165" y2="115" />
<line x1="160" y1="130" x2="168" y2="127" />
<line x1="160" y1="140" x2="165" y2="135" />
<line x1="160" y1="150" x2="168" y2="147" />
<line x1="160" y1="160" x2="165" y2="155" />
<line x1="160" y1="170" x2="168" y2="167" />
<line x1="120" y1="100" x2="115" y2="95" />
<line x1="125" y1="110" x2="120" y2="105" />
<line x1="130" y1="120" x2="125" y2="115" />
<line x1="180" y1="120" x2="185" y2="115" />
<line x1="175" y1="130" x2="180" y2="125" />
<line x1="170" y1="140" x2="175" y2="135" />
</g>
<!-- Cactus flower -->
<circle cx="150" cy="75" r="5" fill="#ff6b8b" />
<circle cx="152" cy="73" r="1" fill="#ffeb3b" />
<circle cx="148" cy="73" r="1" fill="#ffeb3b" />
<circle cx="150" cy="71" r="1" fill="#ffeb3b" />
<!-- Crown -->
<g transform="translate(150, 60) scale(0.8)">
<path d="M-30,0 L-20,-15 L-10,0 L0,-20 L10,0 L20,-15 L30,0 L20,10 L-20,10 Z" fill="url(#crownGradient)" stroke="#ff8c00" stroke-width="1" />
<circle cx="-15" cy="0" r="4" fill="#ff5252" />
<circle cx="0" cy="-5" r="4" fill="#40c4ff" />
<circle cx="15" cy="0" r="4" fill="#69f0ae" />
</g>
<!-- Cactus face -->
<g transform="translate(150, 110)">
<ellipse cx="-5" cy="0" rx="2" ry="3" fill="#0a3622" />
<ellipse cx="5" cy="0" rx="2" ry="3" fill="#0a3622" />
<path d="M-4,8 Q0,12 4,8" fill="none" stroke="#0a3622" stroke-width="1" stroke-linecap="round" />
</g>
<!-- Ground details -->
<path d="M80,220 Q100,215 120,220 Q140,225 160,220 Q180,215 200,220 Q220,225 240,220" fill="none" stroke="#d1995e" stroke-width="1" />
<ellipse cx="90" cy="230" rx="15" ry="5" fill="#c58d53" />
<ellipse cx="210" cy="240" rx="20" ry="7" fill="#c58d53" />
<!-- Small stones -->
<circle cx="70" cy="220" r="3" fill="#a67b53" />
<circle cx="230" cy="225" r="4" fill="#a67b53" />
<circle cx="180" cy="230" r="2" fill="#a67b53" />
<circle cx="120" cy="235" r="3" fill="#a67b53" />
</svg>
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
<!-- Sunset sky -->
<defs>
<linearGradient id="skyGradient" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#fdcf58"/>
<stop offset="30%" stop-color="#fdb022"/>
<stop offset="70%" stop-color="#fe5f55"/>
<stop offset="100%" stop-color="#2a2a72"/>
</linearGradient>
<!-- Ground gradient -->
<linearGradient id="groundGradient" x1="0" y1="1" x2="0" y2="0">
<stop offset="0%" stop-color="#7c4700"/>
<stop offset="50%" stop-color="#e29827"/>
<stop offset="100%" stop-color="#f7e8be"/>
</linearGradient>
<!-- Cactus body gradient -->
<linearGradient id="cactusBody" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#7FE07D"/>
<stop offset="100%" stop-color="#187A3C"/>
</linearGradient>
<!-- Arm highlight -->
<radialGradient id="armHighlight" cx="0.5" cy="0.2" r="1">
<stop offset="0%" stop-color="#d3f9b2" stop-opacity="0.5"/>
<stop offset="100%" stop-color="transparent"/>
</radialGradient>
<!-- Sun -->
<radialGradient id="sunGradient" cx="0.5" cy="0.5" r="0.7">
<stop offset="0%" stop-color="#fff7be" />
<stop offset="30%" stop-color="#ffc94c" />
<stop offset="100%" stop-color="transparent" />
</radialGradient>
<!-- Crown base -->
<linearGradient id="crownGradient" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#fffde4"/>
<stop offset="70%" stop-color="#ffb300"/>
<stop offset="100%" stop-color="#e88d00"/>
</linearGradient>
<!-- Jewel gradient -->
<radialGradient id="jewelGradient" cx="0.5" cy="0.5" r="0.8">
<stop offset="0%" stop-color="#1af2ff"/>
<stop offset="40%" stop-color="#0079a6"/>
<stop offset="100%" stop-color="#011964"/>
</radialGradient>
<!-- Prickle pattern -->
<pattern id="pricklePattern" width="12" height="12" patternUnits="userSpaceOnUse">
<rect width="12" height="12" fill="none"/>
<line x1="6" y1="2" x2="6" y2="10" stroke="#185525" stroke-width="1"/>
</pattern>
<!-- Distant mountains -->
<linearGradient id="mountainGrad" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#bb7651"/>
<stop offset="100%" stop-color="#faad63"/>
</linearGradient>
</defs>
<!-- Sky -->
<rect x="0" y="0" width="300" height="180" fill="url(#skyGradient)"/>
<!-- Sun -->
<circle cx="220" cy="110" r="36" fill="url(#sunGradient)" opacity="0.86"/>
<!-- Distant mountains -->
<path d="M0 150 Q50 125 80 140 Q110 155 130 148 Q150 140 180 145 Q210 150 260 130 Q280 124 300 150 L300 300 L0 300 Z"
fill="url(#mountainGrad)" opacity="0.33"/>
<!-- Ground / sand -->
<ellipse cx="150" cy="245" rx="165" ry="70" fill="url(#groundGradient)" opacity="1"/>
<!-- Small cacti in background -->
<g opacity="0.19">
<rect x="45" y="185" width="8" height="28" rx="3" fill="#368453"/>
<rect x="40" y="192" width="4" height="16" rx="1.5" fill="#2e6135"/>
<rect x="56" y="195" width="4" height="14" rx="1.5" fill="#2e6135"/>
<rect x="248" y="200" width="7" height="22" rx="2.5" fill="#368453"/>
<rect x="253" y="208" width="3" height="10" rx="1" fill="#2e6135"/>
<rect x="243" y="210" width="3" height="8" rx="1" fill="#2e6135"/>
</g>
<!-- Main cactus group -->
<g>
<!-- Left arm -->
<g>
<path d="M102 193 Q87 185 84 168 Q80 151 93 143 Q106 136 109 150 Q112 168 107 176 Q102 183 102 193 Z"
fill="url(#cactusBody)"/>
<ellipse cx="95" cy="158" rx="8" ry="13" fill="url(#armHighlight)" />
</g>
<!-- Right arm -->
<g>
<path d="M196 210 Q212 205 215 188 Q219 171 205 168 Q191 165 189 183 Q187 202 193 208 Q196 210 196 210 Z"
fill="url(#cactusBody)"/>
<ellipse cx="210" cy="182" rx="8" ry="10" fill="url(#armHighlight)" />
</g>
<!-- Main cactus body -->
<g>
<ellipse cx="150" cy="170" rx="45" ry="78" fill="url(#cactusBody)"/>
<ellipse cx="150" cy="180" rx="40" ry="67" fill="url(#pricklePattern)" opacity="0.38"/>
<!-- Cactus ridges -->
<path d="M150 93 Q147 155 150 248" stroke="#3eb157" stroke-width="2" fill="none"/>
<path d="M132 103 Q124 120 125 260" stroke="#329346" stroke-width="1.3" fill="none" opacity="0.65"/>
<path d="M168 103 Q177 120 174 260" stroke="#329346" stroke-width="1.3" fill="none" opacity="0.65"/>
</g>
<!-- Prickles main -->
<g stroke="#304820" stroke-width="1.1">
<!-- Left side -->
<line x1="121" y1="130" x2="117" y2="120"/>
<line x1="121" y1="160" x2="114" y2="155"/>
<line x1="126" y1="200" x2="118" y2="202"/>
<line x1="134" y1="225" x2="128" y2="233"/>
<!-- Center -->
<line x1="150" y1="110" x2="150" y2="98"/>
<line x1="151" y1="145" x2="154" y2="132"/>
<line x1="148" y1="180" x2="147" y2="170"/>
<line x1="152" y1="220" x2="151" y2="230"/>
<!-- Right side -->
<line x1="179" y1="135" x2="185" y2="123"/>
<line x1="185" y1="165" x2="191" y2="160"/>
<line x1="177" y1="200" x2="186" y2="207"/>
<line x1="170" y1="225" x2="175" y2="233"/>
</g>
</g>
<!-- Sand shadows under cactus -->
<ellipse cx="150" cy="245" rx="55" ry="16" fill="#987841" opacity="0.41"/>
<ellipse cx="155" cy="265" rx="22" ry="7" fill="#b89358" opacity="0.23"/>
<!-- Crown group -->
<g>
<!-- Crown base -->
<path d="M120 89 Q128 55 150 88 Q172 55 180 89 Q182 94 170 91 Q150 110 130 91 Q118 94 120 89 Z"
fill="url(#crownGradient)" stroke="#ecc400" stroke-width="2.2"/>
<!-- Crown jewels -->
<circle cx="150" cy="89" r="7" fill="url(#jewelGradient)" stroke="#015077" stroke-width="1.2"/>
<circle cx="129" cy="88" r="3" fill="#db322a" stroke="#b81a1a" stroke-width="0.9"/>
<circle cx="171" cy="88" r="3" fill="#43c6eb" stroke="#0a6bc4" stroke-width="0.9"/>
<!-- Crown tips -->
<g>
<ellipse cx="128" cy="61" rx="3" ry="5.5" fill="#ffe065" stroke="#cb8a00" stroke-width="0.6"/>
<ellipse cx="150" cy="57" rx="4.6" ry="7" fill="#ffe065" stroke="#cb8a00" stroke-width="0.9"/>
<ellipse cx="172" cy="61" rx="3" ry="5.5" fill="#ffe065" stroke="#cb8a00" stroke-width="0.6"/>
<!-- Tips' jewel seeds -->
<circle cx="128" cy="57" r="1.6" fill="#f367a3"/>
<circle cx="150" cy="53" r="2.2" fill="#fff7be" stroke="#fcb900" stroke-width="0.4"/>
<circle cx="172" cy="57" r="1.6" fill="#64f8ec"/>
</g>
<!-- Crown shadow -->
<ellipse cx="150" cy="105" rx="23" ry="4" fill="#c48e1d" opacity="0.23"/>
</g>
<!-- Desert flora - surreal flowers around cactus -->
<g>
<g>
<ellipse cx="110" cy="250" rx="7" ry="2" fill="#f5a56b" transform="rotate(-11 110 250)"/>
<circle cx="110" cy="247" r="3.2" fill="#f37064"/>
<circle cx="110" cy="247" r="1.3" fill="#ffe8ea"/>
<line x1="110" y1="250" x2="110" y2="258" stroke="#3e8429" stroke-width="1"/>
</g>
<g>
<ellipse cx="195" cy="255" rx="7" ry="2" fill="#bcd43e" transform="rotate(7 195 255)"/>
<circle cx="195" cy="252.3" r="3.2" fill="#7fd681"/>
<circle cx="195" cy="252.3" r="1.3" fill="#e4fdf1"/>
<line x1="195" y1="255" x2="195" y2="263" stroke="#357438" stroke-width="1"/>
</g>
</g>
<!-- Floating clouds for whimsy -->
<g opacity="0.17">
<ellipse cx="60" cy="65" rx="24" ry="7" fill="#fff"/>
<ellipse cx="230" cy="70" rx="18" ry="5" fill="#fff"/>
<ellipse cx="175" cy="40" rx="15" ry="4.5" fill="#fff"/>
</g>
</svg>
Judge's Analysis
Player 2's submission demonstrates stronger adherence to the prompt with a clear depiction of a crowned cactus and a vibrant desert at sunset.
The composition is well-balanced, and the warm, blended colors of the sunset create a more immersive atmosphere.
Player 1's submission, while creative, lacks the same level of polish and depth in its desert scenery and crown design.
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
The total number of shape elements (rect, circle, ellipse, line, polygon, polyline, path) in the SVG.
The number of rectangle elements (rect) in the SVG.
The number of circle elements (circle) in the SVG.
The number of ellipse elements (ellipse) in the SVG.
The number of line elements (line) in the SVG.
The number of polygon elements (polygon) in the SVG.
The number of path elements (path) in the SVG.
The number of group elements (g) in the SVG.
Visual Effects Metrics
The number of gradient definitions (linearGradient, radialGradient) in the SVG.
The number of pattern definitions (pattern) in the SVG.
The number of filter definitions (filter) in the SVG.
The number of mask definitions (mask) in the SVG.
The number of clipping path definitions (clipPath) in the SVG.
The number of elements with opacity attributes in the SVG.
The number of elements with stroke attributes in the SVG.
Colors Metrics
The number of unique colors used in the SVG.
Interactivity Metrics
The number of animation elements (animate, animateMotion, animateTransform, set) in the SVG.
The number of elements with transform attributes in the SVG.
Complexity Metrics
The total number of path commands in all path elements (M, L, C, Q, etc.) in the SVG.
The maximum nesting level of group elements (g) in the SVG.
The number of elements defined within the defs element in the SVG.
The number of use elements (use) in the SVG.
Text Metrics
The number of text elements (text) in the SVG.
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
"Robot juggling planets in space."
"An octopus juggling flaming swords underwater."
"Robot watering a metallic flower in a desert."