Creative Challenge
"Jellyfish balloon floating over a geometric cityscape"
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<!-- Definitions for reusable elements -->
<defs>
<!-- Sky gradient -->
<linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#0a001a" />
<stop offset="40%" stop-color="#1a0033" />
<stop offset="70%" stop-color="#330066" />
<stop offset="100%" stop-color="#4d0099" />
</linearGradient>
<!-- Jellyfish dome gradient -->
<radialGradient id="jellyfishDome" cx="50%" cy="40%" r="60%" fx="50%" fy="40%">
<stop offset="0%" stop-color="#ff66ff" stop-opacity="0.9" />
<stop offset="70%" stop-color="#cc33ff" stop-opacity="0.7" />
<stop offset="100%" stop-color="#9900cc" stop-opacity="0.5" />
</radialGradient>
<!-- Jellyfish inner glow gradient -->
<radialGradient id="innerGlow" cx="50%" cy="40%" r="50%" fx="50%" fy="30%">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.7" />
<stop offset="40%" stop-color="#ffccff" stop-opacity="0.5" />
<stop offset="100%" stop-color="#ff99ff" stop-opacity="0.3" />
</radialGradient>
<!-- Jellyfish glow -->
<filter id="jellyfishGlow">
<feGaussianBlur stdDeviation="3" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
<!-- Building windows pattern 1 -->
<pattern id="windowPattern1" x="0" y="0" width="10" height="10" patternUnits="userSpaceOnUse">
<rect x="1" y="1" width="6" height="6" fill="#ffff99" opacity="0.7" />
</pattern>
<!-- Building windows pattern 2 - smaller windows -->
<pattern id="windowPattern2" x="0" y="0" width="5" height="5" patternUnits="userSpaceOnUse">
<rect x="0.5" y="0.5" width="3" height="3" fill="#ffff99" opacity="0.6" />
</pattern>
<!-- Building gradient 1 -->
<linearGradient id="buildingGradient1" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#000033" />
<stop offset="100%" stop-color="#000066" />
</linearGradient>
<!-- Building gradient 2 -->
<linearGradient id="buildingGradient2" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#000044" />
<stop offset="100%" stop-color="#000088" />
</linearGradient>
<!-- Building gradient 3 - for foreground buildings -->
<linearGradient id="buildingGradient3" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#000022" />
<stop offset="100%" stop-color="#000044" />
</linearGradient>
<!-- Moon glow -->
<filter id="moonGlow">
<feGaussianBlur stdDeviation="2" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
<!-- Reflection gradient -->
<linearGradient id="reflectionGradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#cc33ff" stop-opacity="0.3" />
<stop offset="100%" stop-color="#9900cc" stop-opacity="0" />
</linearGradient>
</defs>
<!-- Background -->
<rect x="0" y="0" width="300" height="300" fill="url(#skyGradient)" />
<!-- Moon -->
<circle cx="250" cy="50" r="20" fill="#ffffcc" opacity="0.9" filter="url(#moonGlow)" />
<!-- Stars in the sky -->
<g id="stars">
<circle cx="20" cy="30" r="1" fill="white" />
<circle cx="40" cy="20" r="0.8" fill="white" />
<circle cx="60" cy="40" r="1.2" fill="white" />
<circle cx="80" cy="25" r="0.7" fill="white" />
<circle cx="100" cy="35" r="1.1" fill="white" />
<circle cx="120" cy="15" r="0.9" fill="white" />
<circle cx="140" cy="30" r="1.3" fill="white" />
<circle cx="160" cy="20" r="0.6" fill="white" />
<circle cx="180" cy="40" r="1" fill="white" />
<circle cx="200" cy="10" r="0.8" fill="white" />
<circle cx="220" cy="30" r="1.2" fill="white" />
<circle cx="240" cy="25" r="0.7" fill="white" />
<circle cx="260" cy="15" r="0.9" fill="white" />
<circle cx="280" cy="35" r="1.1" fill="white" />
<!-- Additional stars -->
<circle cx="15" cy="60" r="0.6" fill="white" />
<circle cx="35" cy="75" r="1.1" fill="white" />
<circle cx="55" cy="65" r="0.8" fill="white" />
<circle cx="75" cy="55" r="1" fill="white" />
<circle cx="95" cy="70" r="0.7" fill="white" />
<circle cx="270" cy="65" r="0.9" fill="white" />
<circle cx="290" cy="45" r="0.8" fill="white" />
</g>
<!-- Distant cityscape - layer 1 -->
<g id="cityscape-distant" opacity="0.7">
<!-- Building clusters with simplified shapes -->
<rect x="10" y="200" width="30" height="100" fill="#000022" />
<rect x="50" y="180" width="20" height="120" fill="#000022" />
<rect x="80" y="190" width="25" height="110" fill="#000022" />
<rect x="115" y="210" width="15" height="90" fill="#000022" />
<rect x="140" y="185" width="20" height="115" fill="#000022" />
<rect x="170" y="195" width="30" height="105" fill="#000022" />
<rect x="210" y="175" width="25" height="125" fill="#000022" />
<rect x="240" y="190" width="30" height="110" fill="#000022" />
<rect x="275" y="205" width="20" height="95" fill="#000022" />
</g>
<!-- Mid-distance cityscape - layer 2 -->
<g id="cityscape-mid">
<!-- Building 1 - triangular top -->
<path d="M0,300 L0,170 L20,150 L40,170 L40,300 Z" fill="url(#buildingGradient1)" />
<path d="M5,300 L5,175 L20,160 L35,175 L35,300 Z" fill="url(#windowPattern1)" />
<!-- Building 2 - rectangular with setbacks -->
<path d="M45,300 L45,130 L65,130 L65,150 L75,150 L75,180 L85,180 L85,300 Z" fill="url(#buildingGradient2)" />
<path d="M50,300 L50,135 L60,135 L60,155 L70,155 L70,185 L80,185 L80,300 Z" fill="url(#windowPattern2)" />
<!-- Building 3 - curved top -->
<path d="M90,300 L90,120 Q105,100 120,120 L120,300 Z" fill="url(#buildingGradient1)" />
<path d="M95,300 L95,125 Q105,110 115,125 L115,300 Z" fill="url(#windowPattern1)" />
<!-- Building 4 - stepped -->
<path d="M125,300 L125,200 L135,200 L135,180 L145,180 L145,160 L155,160 L155,300 Z" fill="url(#buildingGradient2)" />
<path d="M130,300 L130,205 L140,205 L140,185 L150,185 L150,165 L150,300 Z" fill="url(#windowPattern2)" />
<!-- Building 5 - angular skyscraper -->
<path d="M160,300 L160,100 L170,80 L180,100 L180,300 Z" fill="url(#buildingGradient1)" />
<path d="M165,300 L165,105 L170,90 L175,105 L175,300 Z" fill="url(#windowPattern1)" />
<!-- Building 6 - rectangular with antenna -->
<rect x="185" y="140" width="40" height="160" fill="url(#buildingGradient2)" />
<rect x="190" y="145" width="30" height="155" fill="url(#windowPattern2)" />
<path d="M205,140 L205,110 L210,110 L210,140 Z" fill="#333355" />
<circle cx="207.5" cy="110" r="2.5" fill="#ff3333" />
<!-- Building 7 - multi-layered -->
<path d="M230,300 L230,150 L240,150 L240,130 L250,130 L250,150 L260,150 L260,300 Z" fill="url(#buildingGradient1)" />
<path d="M235,300 L235,155 L245,155 L245,135 L245,135 L245,155 L255,155 L255,300 Z" fill="url(#windowPattern1)" />
<!-- Building 8 - geometric with diamond top -->
<path d="M265,300 L265,160 L280,145 L295,160 L295,300 Z" fill="url(#buildingGradient2)" />
<path d="M270,300 L270,165 L280,155 L290,165 L290,300 Z" fill="url(#windowPattern2)" />
</g>
<!-- Foreground cityscape - layer 3 -->
<g id="cityscape-foreground">
<!-- Left foreground building -->
<path d="M0,300 L0,220 L15,220 L15,240 L25,240 L25,260 L40,260 L40,300 Z" fill="url(#buildingGradient3)" />
<!-- Right foreground building -->
<path d="M260,300 L260,250 L270,230 L290,250 L290,265 L300,265 L300,300 Z" fill="url(#buildingGradient3)" />
</g>
<!-- Purple glow reflections on buildings -->
<g id="reflections">
<rect x="105" y="120" width="30" height="30" fill="url(#reflectionGradient)" />
<rect x="160" y="90" width="40" height="40" fill="url(#reflectionGradient)" />
<rect x="210" y="130" width="35" height="35" fill="url(#reflectionGradient)" />
</g>
<!-- Jellyfish Balloon -->
<g id="jellyfishBalloon">
<!-- Balloon strings -->
<path d="M135,140 C130,160 120,190 110,210" stroke="#ffffff" stroke-width="0.7" fill="none" />
<path d="M145,138 C140,160 135,190 130,215" stroke="#ffffff" stroke-width="0.7" fill="none" />
<path d="M155,138 C160,160 165,190 170,215" stroke="#ffffff" stroke-width="0.7" fill="none" />
<path d="M165,140 C170,160 180,190 190,210" stroke="#ffffff" stroke-width="0.7" fill="none" />
<!-- Jellyfish dome/bell - more balloon-like -->
<ellipse cx="150" cy="90" rx="65" ry="55" fill="url(#jellyfishDome)" filter="url(#jellyfishGlow)" />
<!-- Balloon top pinch -->
<path d="M145,35 C148,33 152,33 155,35" stroke="#cc33ff" stroke-width="1.5" fill="none" />
<!-- Jellyfish inner glow -->
<ellipse cx="150" cy="90" rx="45" ry="35" fill="url(#innerGlow)" />
<!-- Decorative patterns inside jellyfish -->
<path d="M120,70 C130,75 140,85 150,90 C160,85 170,75 180,70" stroke="#ffffff" stroke-width="0.7" fill="none" opacity="0.6" />
<path d="M110,90 C130,95 140,100 150,105 C160,100 170,95 190,90" stroke="#ffffff" stroke-width="0.7" fill="none" opacity="0.6" />
<!-- Decorative geometric patterns - inspired by the cityscape below -->
<path d="M130,80 L135,80 L135,85 L130,85 Z" fill="#ffffff" opacity="0.4" />
<path d="M165,80 L170,80 L170,85 L165,85 Z" fill="#ffffff" opacity="0.4" />
<path d="M140,100 L145,100 L145,105 L140,105 Z" fill="#ffffff" opacity="0.4" />
<path d="M155,100 L160,100 L160,105 L155,105 Z" fill="#ffffff" opacity="0.4" />
<path d="M147,75 L153,75 L153,80 L147,80 Z" fill="#ffffff" opacity="0.4" />
<!-- Jellyfish tentacles -->
<path d="M110,120 C105,140 95,160 105,180 C110,190 100,200 95,210" stroke="#cc33ff" stroke-width="3" fill="none" opacity="0.7" />
<path d="M120,125 C115,145 110,165 120,185 C125,195 115,210 120,220" stroke="#cc33ff" stroke-width="2" fill="none" opacity="0.7" />
<path d="M130,127 C125,147 120,167 130,187 C135,197 125,215 130,225" stroke="#cc33ff" stroke-width="4" fill="none" opacity="0.7" />
<path d="M140,128 C135,148 125,168 135,188 C140,198 135,215 140,230" stroke="#cc33ff" stroke-width="2.5" fill="none" opacity="0.7" />
<path d="M150,129 C145,149 140,169 150,189 C155,199 145,215 150,235" stroke="#cc33ff" stroke-width="3.5" fill="none" opacity="0.7" />
<path d="M160,128 C155,148 150,168 160,188 C165,198 160,215 165,230" stroke="#cc33ff" stroke-width="2" fill="none" opacity="0.7" />
<path d="M170,127 C165,147 160,167 170,187 C175,197 170,215 175,225" stroke="#cc33ff" stroke-width="3" fill="none" opacity="0.7" />
<path d="M180,125 C175,145 170,165 180,185 C185,195 180,210 185,220" stroke="#cc33ff" stroke-width="2.5" fill="none" opacity="0.7" />
<path d="M190,120 C185,140 180,160 190,180 C195,190 190,200 195,210" stroke="#cc33ff" stroke-width="3.5" fill="none" opacity="0.7" />
<!-- Glowing spots on tentacles -->
<circle cx="105" cy="180" r="2" fill="#ff99ff" opacity="0.8" />
<circle cx="120" cy="185" r="1.5" fill="#ff99ff" opacity="0.8" />
<circle cx="130" cy="187" r="2.5" fill="#ff99ff" opacity="0.8" />
<circle cx="135" cy="188" r="1.8" fill="#ff99ff" opacity="0.8" />
<circle cx="150" cy="189" r="2.2" fill="#ff99ff" opacity="0.8" />
<circle cx="160" cy="188" r="1.5" fill="#ff99ff" opacity="0.8" />
<circle cx="170" cy="187" r="2" fill="#ff99ff" opacity="0.8" />
<circle cx="180" cy="185" r="1.7" fill="#ff99ff" opacity="0.8" />
<circle cx="190" cy="180" r="2.3" fill="#ff99ff" opacity="0.8" />
<!-- More glowing spots further down the tentacles -->
<circle cx="95" cy="210" r="1.8" fill="#ff99ff" opacity="0.7" />
<circle cx="120" cy="220" r="1.3" fill="#ff99ff" opacity="0.7" />
<circle cx="130" cy="225" r="2.2" fill="#ff99ff" opacity="0.7" />
<circle cx="140" cy="230" r="1.6" fill="#ff99ff" opacity="0.7" />
<circle cx="150" cy="235" r="2" fill="#ff99ff" opacity="0.7" />
<circle cx="165" cy="230" r="1.3" fill="#ff99ff" opacity="0.7" />
<circle cx="175" cy="225" r="1.7" fill="#ff99ff" opacity="0.7" />
<circle cx="185" cy="220" r="1.5" fill="#ff99ff" opacity="0.7" />
<circle cx="195" cy="210" r="2" fill="#ff99ff" opacity="0.7" />
</g>
<!-- Small glowing particles around jellyfish -->
<g id="particles">
<circle cx="110" cy="100" r="0.8" fill="#ff99ff" opacity="0.7" />
<circle cx="120" cy="80" r="0.6" fill="#ff99ff" opacity="0.7" />
<circle cx="140" cy="60" r="1" fill="#ff99ff" opacity="0.7" />
<circle cx="160" cy="60" r="0.7" fill="#ff99ff" opacity="0.7" />
<circle cx="180" cy="80" r="0.9" fill="#ff99ff" opacity="0.7" />
<circle cx="190" cy="100" r="0.6" fill="#ff99ff" opacity="0.7" />
<circle cx="115" cy="120" r="0.7" fill="#ff99ff" opacity="0.7" />
<circle cx="185" cy="120" r="0.8" fill="#ff99ff" opacity="0.7" />
<!-- More particles -->
<circle cx="130" cy="70" r="0.5" fill="#ff99ff" opacity="0.7" />
<circle cx="170" cy="70" r="0.6" fill="#ff99ff" opacity="0.7" />
<circle cx="150" cy="50" r="0.8" fill="#ff99ff" opacity="0.7" />
<circle cx="100" cy="110" r="0.7" fill="#ff99ff" opacity="0.7" />
<circle cx="200" cy="110" r="0.5" fill="#ff99ff" opacity="0.7" />
</g>
<!-- Purple light cast over the scene -->
<rect x="0" y="0" width="300" height="300" fill="#9900cc" opacity="0.05" />
</svg>
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="cityGradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#1a2f4c;stop-opacity:1"/>
<stop offset="100%" style="stop-color:#0d1523;stop-opacity:1"/>
</linearGradient>
<radialGradient id="jellyfishGradient" cx="50%" cy="50%" r="50%">
<stop offset="0%" style="stop-color:#ff69b4;stop-opacity:0.8"/>
<stop offset="100%" style="stop-color:#9c27b0;stop-opacity:0.6"/>
</radialGradient>
</defs>
<rect width="300" height="300" fill="#0d1523"/>
<g transform="translate(50,200)">
<path d="M0,0 Q50,30 100,0 Q150,-30 200,0 Q250,30 300,0" fill="url(#cityGradient)" stroke="#1a2f4c" stroke-width="2"/>
<rect x="10" y="20" width="150" height="120" rx="10" fill="#2196f3"/>
<rect x="170" y="20" width="100" height="180" rx="10" fill="#3f51b5"/>
<path d="M280,20 L290,20 L295,60 L285,60 Z" fill="#e91e63"/>
<path d="M20,150 L30,150 L35,190 L25,190 Z" fill="#e91e63"/>
<rect x="140" y="100" width="80" height="80" rx="40" fill="#2962ff"/>
</g>
<g transform="translate(150,100)">
<circle r="40" fill="url(#jellyfishGradient)"/>
<path d="M-40,0 Q0,-20 40,0 Q80,20 120,0" stroke="#ff69b4" stroke-width="2" fill="none"/>
<path d="M0,-40 Q20,-20 0,0 Q-20,-20 0,-40" stroke="#ff69b4" stroke-width="2" fill="none"/>
<circle cx="-20" cy="-10" r="5" fill="#fff"/>
<circle cx="20" cy="-10" r="5" fill="#fff"/>
<circle cx="0" cy="10" r="5" fill="#fff"/>
</g>
<rect x="0" y="250" width="300" height="50" rx="25" fill="url(#cityGradient)"/>
<path d="M100,220 Q150,200 200,220" stroke="#1a2f4c" stroke-width="2" fill="none"/>
<path d="M50,230 Q100,210 150,230" stroke="#1a2f4c" stroke-width="2" fill="none"/>
<path d="M100,240 Q125,220 150,240" stroke="#1a2f4c" stroke-width="2" fill="none"/>
<rect x="120" y="210" width="60" height="30" rx="15" fill="#2196f3"/>
<rect x="140" y="225" width="20" height="10" fill="#fff"/>
<rect x="110" y="230" width="80" height="20" rx="10" fill="#3f51b5"/>
<rect x="130" y="235" width="40" height="10" fill="#fff"/>
</svg>
Judge's Analysis
Player 1's image captures the idea effectively with a clear depiction of a jellyfish balloon hovering over a detailed geometric cityscape.
The vibrant colors and intricate details enhance the visual appeal and creativity, making it more aligned with the prompt.
Player 2's image, while abstract and unique, lacks clarity in representing both the jellyfish and the cityscape in comparison.
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
"A lighthouse emitting rainbow beams under a starry night sky"
"Floating cityscape on a giant turtle's back under a starry sky"
"A cyberpunk octopus playing a violin"
"Neon jellyfish ballet under a disco ball in the deep ocean"