Creative Challenge
"Two penguins jousting on icebergs with candy canes under a twilight sky."
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<!-- Definitions for reusable elements -->
<defs>
<!-- Twilight sky gradient -->
<linearGradient id="twilightSky" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#0a1a40"/>
<stop offset="60%" style="stop-color:#2a1a5e"/>
<stop offset="85%" style="stop-color:#5e1a4a"/>
<stop offset="100%" style="stop-color:#7d3240"/>
</linearGradient>
<!-- Ice gradient -->
<linearGradient id="iceGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#ffffff"/>
<stop offset="50%" style="stop-color:#e0f2ff"/>
<stop offset="100%" style="stop-color:#a8d5ff"/>
</linearGradient>
<!-- Ice gradient 2 -->
<linearGradient id="iceGradient2" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#e0f2ff"/>
<stop offset="60%" style="stop-color:#c0e8ff"/>
<stop offset="100%" style="stop-color:#a8d5ff"/>
</linearGradient>
<!-- Underwater gradient -->
<linearGradient id="waterGradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#123a6a"/>
<stop offset="100%" style="stop-color:#051525"/>
</linearGradient>
<!-- Candy cane pattern -->
<pattern id="candyStripes" patternUnits="userSpaceOnUse" width="10" height="10" patternTransform="rotate(45)">
<rect width="5" height="10" fill="white"/>
<rect width="5" height="10" x="5" fill="#ff3333"/>
</pattern>
<!-- Star glow effect -->
<filter id="starGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="1" result="blur"/>
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
</filter>
<!-- Bright star glow effect -->
<filter id="brightStarGlow" x="-100%" y="-100%" width="300%" height="300%">
<feGaussianBlur stdDeviation="2" result="blur"/>
<feComposite in="SourceGraphic" in2="blur" operator="over"/>
</filter>
<!-- Aurora patterns -->
<linearGradient id="auroraGradient1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#3ae374;stop-opacity:0.3"/>
<stop offset="50%" style="stop-color:#32ff7e;stop-opacity:0.4"/>
<stop offset="100%" style="stop-color:#3ae374;stop-opacity:0.3"/>
</linearGradient>
<linearGradient id="auroraGradient2" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#7d5fff;stop-opacity:0.3"/>
<stop offset="50%" style="stop-color:#7158e2;stop-opacity:0.4"/>
<stop offset="100%" style="stop-color:#7d5fff;stop-opacity:0.3"/>
</linearGradient>
<!-- Metal helmet gradient -->
<linearGradient id="metalGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#d1d1d1"/>
<stop offset="50%" style="stop-color:#a0a0a0"/>
<stop offset="100%" style="stop-color:#707070"/>
</linearGradient>
</defs>
<!-- Background - Twilight Sky -->
<rect x="0" y="0" width="300" height="300" fill="url(#twilightSky)"/>
<!-- Stars -->
<g id="stars">
<!-- Small stars -->
<circle cx="30" cy="30" r="1" fill="white" filter="url(#starGlow)" opacity="0.8"/>
<circle cx="60" cy="40" r="0.8" fill="white" filter="url(#starGlow)" opacity="0.7"/>
<circle cx="90" cy="20" r="1.2" fill="white" filter="url(#starGlow)" opacity="0.9"/>
<circle cx="120" cy="50" r="0.7" fill="white" filter="url(#starGlow)" opacity="0.6"/>
<circle cx="150" cy="30" r="1.1" fill="white" filter="url(#starGlow)" opacity="0.8"/>
<circle cx="180" cy="15" r="0.9" fill="white" filter="url(#starGlow)" opacity="0.7"/>
<circle cx="210" cy="35" r="1" fill="white" filter="url(#starGlow)" opacity="0.8"/>
<circle cx="240" cy="25" r="0.8" fill="white" filter="url(#starGlow)" opacity="0.7"/>
<circle cx="270" cy="45" r="1.2" fill="white" filter="url(#starGlow)" opacity="0.9"/>
<circle cx="45" cy="60" r="0.7" fill="white" filter="url(#starGlow)" opacity="0.6"/>
<circle cx="75" cy="15" r="1.1" fill="white" filter="url(#starGlow)" opacity="0.8"/>
<circle cx="105" cy="25" r="0.9" fill="white" filter="url(#starGlow)" opacity="0.7"/>
<circle cx="135" cy="10" r="1" fill="white" filter="url(#starGlow)" opacity="0.8"/>
<circle cx="165" cy="45" r="0.8" fill="white" filter="url(#starGlow)" opacity="0.7"/>
<circle cx="195" cy="55" r="1.2" fill="white" filter="url(#starGlow)" opacity="0.9"/>
<circle cx="225" cy="5" r="0.7" fill="white" filter="url(#starGlow)" opacity="0.6"/>
<circle cx="255" cy="60" r="1.1" fill="white" filter="url(#starGlow)" opacity="0.8"/>
<circle cx="285" cy="30" r="0.9" fill="white" filter="url(#starGlow)" opacity="0.7"/>
<!-- Bright stars (with stronger glow) -->
<circle cx="50" cy="25" r="1.5" fill="white" filter="url(#brightStarGlow)" opacity="0.9"/>
<circle cx="160" cy="20" r="1.8" fill="white" filter="url(#brightStarGlow)" opacity="0.9"/>
<circle cx="270" cy="15" r="1.6" fill="white" filter="url(#brightStarGlow)" opacity="0.9"/>
<circle cx="200" cy="40" r="1.7" fill="white" filter="url(#brightStarGlow)" opacity="0.9"/>
</g>
<!-- Aurora Borealis -->
<path d="M0,80 Q75,60 150,85 T300,70" stroke="url(#auroraGradient1)" stroke-width="10" fill="none" opacity="0.6"/>
<path d="M0,95 Q75,115 150,100 T300,120" stroke="url(#auroraGradient2)" stroke-width="8" fill="none" opacity="0.4"/>
<path d="M0,65 Q100,85 200,70 T300,90" stroke="url(#auroraGradient1)" stroke-width="5" fill="none" opacity="0.3"/>
<!-- Water -->
<rect x="0" y="150" width="300" height="150" fill="url(#waterGradient)"/>
<!-- Water Ripples -->
<path d="M0,150 Q75,152 150,150 T300,152" stroke="#3a95e0" stroke-width="1" fill="none" opacity="0.2"/>
<path d="M0,155 Q75,153 150,155 T300,153" stroke="#3a95e0" stroke-width="1" fill="none" opacity="0.2"/>
<!-- Icebergs -->
<g id="leftIceberg">
<!-- Main iceberg shape -->
<path d="M30,150 L70,150 L80,140 L60,130 L90,120 L70,110 L80,100 L50,130 L20,120 L30,150" fill="url(#iceGradient)" stroke="#ffffff" stroke-width="1"/>
<!-- Underwater part -->
<path d="M30,150 L70,150 L60,170 L55,190 L45,190 L40,175 L30,150" fill="url(#iceGradient2)" opacity="0.6"/>
<!-- Ice details -->
<path d="M60,130 L65,135 M70,125 L75,120 M50,115 L45,110" stroke="white" stroke-width="0.5" opacity="0.7"/>
<path d="M40,140 C45,138 50,142 55,138" stroke="white" stroke-width="0.5" opacity="0.6"/>
<!-- Snow cap -->
<path d="M60,108 C65,105 70,107 75,103" stroke="white" stroke-width="2" opacity="0.8" stroke-linecap="round"/>
</g>
<g id="rightIceberg">
<!-- Main iceberg shape -->
<path d="M220,150 L260,150 L270,130 L250,120 L280,110 L260,100 L240,110 L230,90 L210,120 L220,150" fill="url(#iceGradient)" stroke="#ffffff" stroke-width="1"/>
<!-- Underwater part -->
<path d="M220,150 L260,150 L250,175 L255,190 L245,195 L230,180 L220,150" fill="url(#iceGradient2)" opacity="0.6"/>
<!-- Ice details -->
<path d="M240,120 L245,115 M255,125 L260,120 M230,105 L225,100" stroke="white" stroke-width="0.5" opacity="0.7"/>
<path d="M225,135 C235,133 240,138 250,135" stroke="white" stroke-width="0.5" opacity="0.6"/>
<!-- Snow cap -->
<path d="M235,98 C245,95 255,97 265,94" stroke="white" stroke-width="2" opacity="0.8" stroke-linecap="round"/>
</g>
<!-- Left Penguin -->
<g id="leftPenguin" transform="translate(50, 120) scale(0.8) rotate(10)">
<!-- Body -->
<ellipse cx="0" cy="0" rx="15" ry="20" fill="#1a1a1a"/>
<ellipse cx="0" cy="5" rx="10" ry="15" fill="white"/>
<!-- Arm/Wing holding lance -->
<path d="M-15,-5 C-25,0 -28,10 -23,20" stroke="#1a1a1a" stroke-width="4" fill="none"/>
<!-- Candy Cane Lance -->
<rect x="-30" y="-10" width="40" height="5" rx="2" fill="url(#candyStripes)" transform="rotate(-20)" stroke="white" stroke-width="0.5"/>
<path d="M-30,-12 C-35,-10 -40,-15 -40,-10" stroke="url(#candyStripes)" stroke-width="5" fill="none" stroke-linecap="round"/>
<!-- Shield (small candy cane shield) -->
<ellipse cx="12" cy="0" rx="8" ry="10" fill="#1a1a1a" stroke="url(#candyStripes)" stroke-width="2"/>
<path d="M12,0 M9,-5 L15,-5 M9,5 L15,5" stroke="white" stroke-width="1"/>
<!-- Head -->
<circle cx="0" cy="-25" r="12" fill="#1a1a1a"/>
<ellipse cx="0" cy="-23" rx="8" ry="6" fill="white"/>
<!-- Eyes -->
<circle cx="-5" cy="-28" r="2" fill="white"/>
<circle cx="5" cy="-28" r="2" fill="white"/>
<circle cx="-5" cy="-28" r="1" fill="black"/>
<circle cx="5" cy="-28" r="1" fill="black"/>
<!-- Beak -->
<path d="M-3,-22 L3,-22 L0,-17 Z" fill="#e67e22"/>
<!-- Feet -->
<path d="M-7,20 L-12,25 L-7,25 L-5,20" fill="#e67e22"/>
<path d="M7,20 L12,25 L7,25 L5,20" fill="#e67e22"/>
<!-- Knight Helmet -->
<path d="M-12,-35 C-12,-40 12,-40 12,-35 L12,-25 C12,-21 0,-15 0,-15 C0,-15 -12,-21 -12,-25 Z" fill="url(#metalGradient)" stroke="#707070" stroke-width="1"/>
<rect x="-2" y="-30" width="4" height="10" fill="#707070"/>
<path d="M-8,-38 C-4,-45 4,-45 8,-38" stroke="#707070" stroke-width="2" fill="none"/>
</g>
<!-- Right Penguin -->
<g id="rightPenguin" transform="translate(240, 120) scale(0.8) rotate(-10)">
<!-- Body -->
<ellipse cx="0" cy="0" rx="15" ry="20" fill="#1a1a1a"/>
<ellipse cx="0" cy="5" rx="10" ry="15" fill="white"/>
<!-- Arm/Wing holding lance -->
<path d="M15,-5 C25,0 28,10 23,20" stroke="#1a1a1a" stroke-width="4" fill="none"/>
<!-- Candy Cane Lance -->
<rect x="-5" y="-10" width="40" height="5" rx="2" fill="url(#candyStripes)" transform="rotate(20)" stroke="white" stroke-width="0.5"/>
<path d="M30,-12 C35,-10 40,-15 40,-10" stroke="url(#candyStripes)" stroke-width="5" fill="none" stroke-linecap="round"/>
<!-- Shield (small candy cane shield) -->
<ellipse cx="-12" cy="0" rx="8" ry="10" fill="#1a1a1a" stroke="url(#candyStripes)" stroke-width="2"/>
<path d="M-12,0 M-15,-5 L-9,-5 M-15,5 L-9,5" stroke="white" stroke-width="1"/>
<!-- Head -->
<circle cx="0" cy="-25" r="12" fill="#1a1a1a"/>
<ellipse cx="0" cy="-23" rx="8" ry="6" fill="white"/>
<!-- Eyes -->
<circle cx="-5" cy="-28" r="2" fill="white"/>
<circle cx="5" cy="-28" r="2" fill="white"/>
<circle cx="-5" cy="-28" r="1" fill="black"/>
<circle cx="5" cy="-28" r="1" fill="black"/>
<!-- Beak -->
<path d="M-3,-22 L3,-22 L0,-17 Z" fill="#e67e22"/>
<!-- Feet -->
<path d="M-7,20 L-12,25 L-7,25 L-5,20" fill="#e67e22"/>
<path d="M7,20 L12,25 L7,25 L5,20" fill="#e67e22"/>
<!-- Knight Helmet -->
<path d="M-12,-35 C-12,-40 12,-40 12,-35 L12,-25 C12,-21 0,-15 0,-15 C0,-15 -12,-21 -12,-25 Z" fill="url(#metalGradient)" stroke="#707070" stroke-width="1"/>
<rect x="-2" y="-30" width="4" height="10" fill="#707070"/>
<path d="M-8,-38 C-4,-45 4,-45 8,-38" stroke="#707070" stroke-width="2" fill="none"/>
</g>
<!-- Snowflakes -->
<g id="snowflakes">
<!-- Detailed snowflakes -->
<g opacity="0.8">
<path d="M30,70 L30,65 M28,68 L32,67 M28,67 L32,68" stroke="white" stroke-width="0.5"/>
<path d="M60,90 L60,85 M58,88 L62,87 M58,87 L62,88" stroke="white" stroke-width="0.5"/>
<path d="M100,65 L100,60 M98,63 L102,62 M98,62 L102,63" stroke="white" stroke-width="0.5"/>
<path d="M140,85 L140,80 M138,83 L142,82 M138,82 L142,83" stroke="white" stroke-width="0.5"/>
<path d="M180,70 L180,65 M178,68 L182,67 M178,67 L182,68" stroke="white" stroke-width="0.5"/>
<path d="M220,90 L220,85 M218,88 L222,87 M218,87 L222,88" stroke="white" stroke-width="0.5"/>
<path d="M260,65 L260,60 M258,63 L262,62 M258,62 L262,63" stroke="white" stroke-width="0.5"/>
</g>
<!-- More elaborate snowflakes -->
<g opacity="0.7">
<path d="M70,50 L70,45 M67,47.5 L73,47.5 M68,46 L72,49 M68,49 L72,46" stroke="white" stroke-width="0.5"/>
<path d="M130,60 L130,55 M127,57.5 L133,57.5 M128,56 L132,59 M128,59 L132,56" stroke="white" stroke-width="0.5"/>
<path d="M200,50 L200,45 M197,47.5 L203,47.5 M198,46 L202,49 M198,49 L202,46" stroke="white" stroke-width="0.5"/>
<path d="M250,80 L250,75 M247,77.5 L253,77.5 M248,76 L252,79 M248,79 L252,76" stroke="white" stroke-width="0.5"/>
</g>
</g>
<!-- Reflections in the water -->
<ellipse cx="50" cy="230" rx="20" ry="5" fill="white" opacity="0.1"/>
<ellipse cx="240" cy="240" rx="20" ry="5" fill="white" opacity="0.1"/>
<!-- Ice cracks and details -->
<path d="M40,140 L60,138 M65,135 L75,142" stroke="white" stroke-width="0.5" opacity="0.7"/>
<path d="M230,132 L250,135 M260,140 L245,138" stroke="white" stroke-width="0.5" opacity="0.7"/>
<!-- Movement lines -->
<g stroke="white" stroke-width="0.5" opacity="0.5">
<path d="M80,100 L90,95" />
<path d="M75,105 L85,98" />
<path d="M210,100 L200,95" />
<path d="M215,105 L205,98" />
</g>
<!-- Moon -->
<circle cx="245" cy="25" r="15" fill="#f5f5f5" opacity="0.9"/>
<circle cx="240" cy="20" r="13" fill="url(#twilightSky)" opacity="0.9"/>
<!-- Impact sparkle (at candy cane jousting point) -->
<g transform="translate(150, 120)">
<path d="M0,0 L5,5 M0,0 L-5,5 M0,0 L5,-5 M0,0 L-5,-5 M0,0 L0,7 M0,0 L0,-7 M0,0 L7,0 M0,0 L-7,0" stroke="white" stroke-width="1"/>
<circle cx="0" cy="0" r="2" fill="white"/>
</g>
<!-- Small fish in water -->
<path d="M100,200 C105,195 110,195 115,200 L120,195 L115,200 C120,205 115,210 105,210 C95,210 90,205 95,200 C90,195 95,195 100,200 Z" fill="#53a3e0" opacity="0.5"/>
<circle cx="103" cy="198" r="1" fill="white" opacity="0.8"/>
<path d="M200,220 C205,215 210,215 215,220 L220,215 L215,220 C220,225 215,230 205,230 C195,230 190,225 195,220 C190,215 195,215 200,220 Z" fill="#53a3e0" opacity="0.5" transform="scale(-1,1)"/>
<circle cx="197" cy="218" r="1" fill="white" opacity="0.8"/>
</svg>
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="sky" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#330066" />
<stop offset="50%" stop-color="#660099" />
<stop offset="100%" stop-color="#9933CC" />
</linearGradient>
<radialGradient id="iceberg" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" stop-color="#CCFFFF" />
<stop offset="100%" stop-color="#99FFFF" />
</radialGradient>
<pattern id="candycane" width="20" height="20" patternUnits="userSpaceOnUse">
<rect width="20" height="20" fill="#FF0000" />
<path d="M0 5h20M0 15h20" stroke="#FFFFFF" stroke-width="4" />
</pattern>
</defs>
<rect width="300" height="300" fill="url(#sky)" />
<path d="M50 200c0 0 20 20 40 -10l20 -30c0 0 20 10 40 -20l-100 20z" fill="url(#iceberg)" stroke="#6699CC" stroke-width="3" />
<path d="M250 220c0 0 -20 20 -40 -10l-20 -30c0 0 -20 10 -40 -20l100 20z" fill="url(#iceberg)" stroke="#6699CC" stroke-width="3" />
<path d="M80 180c-5 -10 -5 -25 10 -30c10 -3 25 0 30 10c3 7 0 20 -10 25z" fill="#000000" />
<path d="M75 170c-2 -5 -2 -15 5 -20c10 -8 25 0 30 10c2 5 0 15 -5 20z" fill="#FF9900" />
<path d="M220 200c5 -10 5 -25 -10 -30c-10 -3 -25 0 -30 10c-3 7 0 20 10 25z" fill="#000000" />
<path d="M225 190c2 -5 2 -15 -5 -20c-10 -8 -25 0 -30 10c-2 5 0 15 5 20z" fill="#FF9900" />
<line x1="100" y1="170" x2="200" y2="190" stroke="url(#candycane)" stroke-width="10" stroke-linecap="round" />
<ellipse cx="85" cy="155" rx="10" ry="5" fill="#FFFFFF" />
<ellipse cx="215" cy="175" rx="10" ry="5" fill="#FFFFFF" />
</svg>
Judge's Analysis
Player 1's submission captures the prompt more effectively with two identifiable penguins jousting on icebergs using candy canes under a twilight sky, featuring a moon, stars, and auroras for added context.
Player 2's submission is minimalistic and lacks clarity in depicting penguins or a twilight setting, making it less aligned with the prompt and less visually engaging.
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
"Two giraffes tangled in a spaghetti fight under a disco ball."
"A snail racing a cheetah on a winding desert road."
"A snail with a city skyline on its shell at sunset"
"A cat made of clouds napping on a crescent moon"