Creative Challenge
"Rainbow jellyfish in a cyberpunk cityscape"
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<defs>
<!-- Background gradient for night sky -->
<linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#0a0a2a" />
<stop offset="50%" stop-color="#1a1a3a" />
<stop offset="100%" stop-color="#000020" />
</linearGradient>
<!-- Rainbow gradient for jellyfish -->
<linearGradient id="rainbowGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#ff1493" />
<stop offset="16.67%" stop-color="#ff0000" />
<stop offset="33.33%" stop-color="#ffff00" />
<stop offset="50%" stop-color="#00ff00" />
<stop offset="66.67%" stop-color="#00ffff" />
<stop offset="83.33%" stop-color="#0000ff" />
<stop offset="100%" stop-color="#ff00ff" />
</linearGradient>
<!-- Building window pattern -->
<pattern id="windowPattern" x="0" y="0" width="10" height="15" patternUnits="userSpaceOnUse">
<rect x="1" y="1" width="5" height="5" fill="#ffff99" opacity="0.5" />
<rect x="1" y="8" width="5" height="5" fill="#ffff99" opacity="0.3" />
</pattern>
<!-- Neon glow filter -->
<filter id="neonGlow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="2" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
<!-- Rain animation -->
<filter id="blurry" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur in="SourceGraphic" stdDeviation="0.5" />
</filter>
<!-- Building gradient -->
<linearGradient id="buildingGradient" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#0d0d0d" />
<stop offset="50%" stop-color="#1a1a1a" />
<stop offset="100%" stop-color="#0d0d0d" />
</linearGradient>
<!-- Tech circuit pattern -->
<pattern id="circuitPattern" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse">
<path d="M 0 20 H 40 M 20 0 V 40" stroke="#00ffff" stroke-width="0.5" opacity="0.3" />
<circle cx="20" cy="20" r="2" fill="#00ffff" opacity="0.5" />
</pattern>
</defs>
<!-- Background -->
<rect x="0" y="0" width="300" height="300" fill="url(#skyGradient)" />
<!-- Far background buildings -->
<g id="farBuildings" opacity="0.7">
<rect x="10" y="120" width="20" height="180" fill="#111122" />
<rect x="30" y="140" width="30" height="160" fill="#111122" />
<rect x="60" y="100" width="25" height="200" fill="#111122" />
<rect x="85" y="130" width="35" height="170" fill="#111122" />
<rect x="120" y="150" width="20" height="150" fill="#111122" />
<rect x="140" y="110" width="40" height="190" fill="#111122" />
<rect x="180" y="140" width="30" height="160" fill="#111122" />
<rect x="210" y="120" width="25" height="180" fill="#111122" />
<rect x="235" y="90" width="35" height="210" fill="#111122" />
<rect x="270" y="130" width="30" height="170" fill="#111122" />
</g>
<!-- Mid-level atmospheric haze -->
<rect x="0" y="0" width="300" height="300" fill="url(#rainbowGradient)" opacity="0.05" />
<!-- Foreground buildings -->
<g id="foregroundBuildings">
<!-- Main buildings -->
<rect x="20" y="150" width="40" height="150" fill="url(#buildingGradient)" stroke="#333" stroke-width="0.5" />
<rect x="60" y="180" width="60" height="120" fill="url(#buildingGradient)" stroke="#333" stroke-width="0.5" />
<rect x="120" y="130" width="30" height="170" fill="url(#buildingGradient)" stroke="#333" stroke-width="0.5" />
<rect x="150" y="160" width="50" height="140" fill="url(#buildingGradient)" stroke="#333" stroke-width="0.5" />
<rect x="200" y="140" width="70" height="160" fill="url(#buildingGradient)" stroke="#333" stroke-width="0.5" />
<!-- Building windows -->
<rect x="25" y="160" width="30" height="130" fill="url(#windowPattern)" opacity="0.8" />
<rect x="65" y="190" width="50" height="100" fill="url(#windowPattern)" opacity="0.8" />
<rect x="125" y="140" width="20" height="150" fill="url(#windowPattern)" opacity="0.8" />
<rect x="155" y="170" width="40" height="120" fill="url(#windowPattern)" opacity="0.8" />
<rect x="205" y="150" width="60" height="140" fill="url(#windowPattern)" opacity="0.8" />
<!-- Building tech details -->
<line x1="20" y1="160" x2="60" y2="160" stroke="#00ffff" stroke-width="1" filter="url(#neonGlow)" />
<line x1="120" y1="140" x2="150" y2="140" stroke="#ff00ff" stroke-width="1" filter="url(#neonGlow)" />
<line x1="200" y1="150" x2="270" y2="150" stroke="#ffff00" stroke-width="1" filter="url(#neonGlow)" />
<!-- Antennas -->
<line x1="40" y1="150" x2="40" y2="120" stroke="#666" stroke-width="1" />
<circle cx="40" cy="120" r="2" fill="#ff0000" />
<line x1="135" y1="130" x2="135" y2="100" stroke="#666" stroke-width="1" />
<line x1="130" y1="110" x2="140" y2="110" stroke="#666" stroke-width="0.5" />
<circle cx="135" cy="100" r="2" fill="#00ff00" />
<line x1="235" y1="140" x2="235" y2="110" stroke="#666" stroke-width="1" />
<circle cx="235" cy="110" r="2" fill="#0000ff" />
<!-- Neon signs -->
<text x="70" y="210" font-family="Arial" font-size="10" fill="#ff00ff" filter="url(#neonGlow)">CYBER</text>
<text x="220" y="170" font-family="Arial" font-size="12" fill="#00ffff" filter="url(#neonGlow)">NEXUS</text>
<path d="M 125 190 L 145 190 L 135 180 Z" fill="#ff0000" filter="url(#neonGlow)" />
</g>
<!-- Rain effect -->
<g id="rain" opacity="0.3">
<line x1="30" y1="0" x2="25" y2="30" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="80" y1="10" x2="75" y2="40" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="140" y1="5" x2="135" y2="35" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="200" y1="15" x2="195" y2="45" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="260" y1="20" x2="255" y2="50" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="50" y1="30" x2="45" y2="60" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="100" y1="25" x2="95" y2="55" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="160" y1="35" x2="155" y2="65" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="220" y1="40" x2="215" y2="70" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
<line x1="280" y1="45" x2="275" y2="75" stroke="#00ffff" stroke-width="0.5" filter="url(#blurry)" />
</g>
<!-- Flying vehicles -->
<g id="vehicles">
<ellipse cx="60" cy="60" rx="15" ry="5" fill="#333" />
<rect x="50" y="55" width="20" height="5" fill="#222" rx="2" />
<ellipse cx="60" cy="60" rx="8" ry="3" fill="#00ffff" opacity="0.5" />
<ellipse cx="220" cy="40" rx="10" ry="3" fill="#333" />
<rect x="215" y="37" width="10" height="3" fill="#222" rx="1" />
<ellipse cx="220" cy="40" rx="5" ry="2" fill="#ff00ff" opacity="0.5" />
<ellipse cx="160" cy="80" rx="12" ry="4" fill="#333" />
<rect x="155" y="76" width="10" height="4" fill="#222" rx="1" />
<ellipse cx="160" cy="80" rx="6" ry="2" fill="#ffff00" opacity="0.5" />
</g>
<!-- Main Rainbow Jellyfish -->
<g id="mainJellyfish" transform="translate(150, 110)">
<!-- Jellyfish Body -->
<ellipse cx="0" cy="0" rx="40" ry="30" fill="url(#rainbowGradient)" opacity="0.7" />
<!-- Jellyfish Inner Body -->
<ellipse cx="0" cy="0" rx="30" ry="23" fill="url(#rainbowGradient)" opacity="0.5" />
<ellipse cx="0" cy="0" rx="20" ry="15" fill="white" opacity="0.3" />
<!-- Technological circuit elements -->
<path d="M -15 -10 L -5 -10 L -5 0 L 5 0 L 5 10 L 15 10" fill="none" stroke="#00ffff" stroke-width="0.8" opacity="0.8" />
<path d="M -15 10 L -5 10 L -5 0 L 5 0 L 5 -10 L 15 -10" fill="none" stroke="#00ffff" stroke-width="0.8" opacity="0.8" />
<circle cx="-15" cy="-10" r="2" fill="#00ffff" />
<circle cx="15" cy="10" r="2" fill="#00ffff" />
<circle cx="-15" cy="10" r="2" fill="#00ffff" />
<circle cx="15" cy="-10" r="2" fill="#00ffff" />
<circle cx="0" cy="0" r="8" fill="url(#circuitPattern)" />
<!-- Jellyfish Tentacles -->
<path d="M -35 0 Q -40 40, -30 80" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M -25 15 Q -30 50, -15 90" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M -10 25 Q -15 60, 0 95" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 10 25 Q 20 60, 15 95" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 25 15 Q 35 50, 40 90" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 35 0 Q 50 40, 60 80" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<!-- Tech enhancements on tentacles -->
<circle cx="-30" cy="40" r="3" fill="#00ffff" opacity="0.8" />
<circle cx="-15" cy="50" r="3" fill="#ff00ff" opacity="0.8" />
<circle cx="0" cy="55" r="3" fill="#ffff00" opacity="0.8" />
<circle cx="15" cy="50" r="3" fill="#00ff00" opacity="0.8" />
<circle cx="40" cy="40" r="3" fill="#0000ff" opacity="0.8" />
</g>
<!-- Second smaller jellyfish -->
<g id="smallJellyfish" transform="translate(80, 60) scale(0.6)">
<!-- Jellyfish Body -->
<ellipse cx="0" cy="0" rx="40" ry="30" fill="url(#rainbowGradient)" opacity="0.6" />
<!-- Jellyfish Inner Body -->
<ellipse cx="0" cy="0" rx="30" ry="23" fill="url(#rainbowGradient)" opacity="0.4" />
<ellipse cx="0" cy="0" rx="20" ry="15" fill="white" opacity="0.3" />
<!-- Technological circuit elements -->
<path d="M -15 -10 L -5 -10 L -5 0 L 5 0 L 5 10 L 15 10" fill="none" stroke="#00ffff" stroke-width="0.8" opacity="0.8" />
<path d="M -15 10 L -5 10 L -5 0 L 5 0 L 5 -10 L 15 -10" fill="none" stroke="#00ffff" stroke-width="0.8" opacity="0.8" />
<circle cx="-15" cy="-10" r="2" fill="#00ffff" />
<circle cx="15" cy="10" r="2" fill="#00ffff" />
<circle cx="-15" cy="10" r="2" fill="#00ffff" />
<circle cx="15" cy="-10" r="2" fill="#00ffff" />
<circle cx="0" cy="0" r="8" fill="url(#circuitPattern)" />
<!-- Jellyfish Tentacles -->
<path d="M -35 0 Q -40 40, -30 80" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M -25 15 Q -30 50, -15 90" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M -10 25 Q -15 60, 0 95" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 10 25 Q 20 60, 15 95" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 25 15 Q 35 50, 40 90" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 35 0 Q 50 40, 60 80" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<!-- Tech enhancements on tentacles -->
<circle cx="-30" cy="40" r="3" fill="#00ffff" opacity="0.8" />
<circle cx="-15" cy="50" r="3" fill="#ff00ff" opacity="0.8" />
<circle cx="0" cy="55" r="3" fill="#ffff00" opacity="0.8" />
<circle cx="15" cy="50" r="3" fill="#00ff00" opacity="0.8" />
<circle cx="40" cy="40" r="3" fill="#0000ff" opacity="0.8" />
</g>
<!-- Third tiny jellyfish -->
<g id="tinyJellyfish" transform="translate(220, 80) scale(0.3)">
<!-- Jellyfish Body -->
<ellipse cx="0" cy="0" rx="40" ry="30" fill="url(#rainbowGradient)" opacity="0.5" />
<!-- Jellyfish Inner Body -->
<ellipse cx="0" cy="0" rx="30" ry="23" fill="url(#rainbowGradient)" opacity="0.3" />
<ellipse cx="0" cy="0" rx="20" ry="15" fill="white" opacity="0.3" />
<!-- Technological circuit elements -->
<path d="M -15 -10 L -5 -10 L -5 0 L 5 0 L 5 10 L 15 10" fill="none" stroke="#00ffff" stroke-width="0.8" opacity="0.8" />
<path d="M -15 10 L -5 10 L -5 0 L 5 0 L 5 -10 L 15 -10" fill="none" stroke="#00ffff" stroke-width="0.8" opacity="0.8" />
<circle cx="-15" cy="-10" r="2" fill="#00ffff" />
<circle cx="15" cy="10" r="2" fill="#00ffff" />
<circle cx="-15" cy="10" r="2" fill="#00ffff" />
<circle cx="15" cy="-10" r="2" fill="#00ffff" />
<circle cx="0" cy="0" r="8" fill="url(#circuitPattern)" />
<!-- Jellyfish Tentacles -->
<path d="M -35 0 Q -40 40, -30 80" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M -25 15 Q -30 50, -15 90" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M -10 25 Q -15 60, 0 95" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 10 25 Q 20 60, 15 95" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 25 15 Q 35 50, 40 90" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<path d="M 35 0 Q 50 40, 60 80" stroke="url(#rainbowGradient)" fill="none" stroke-width="2" opacity="0.7" />
<!-- Tech enhancements on tentacles -->
<circle cx="-30" cy="40" r="3" fill="#00ffff" opacity="0.8" />
<circle cx="-15" cy="50" r="3" fill="#ff00ff" opacity="0.8" />
<circle cx="0" cy="55" r="3" fill="#ffff00" opacity="0.8" />
<circle cx="15" cy="50" r="3" fill="#00ff00" opacity="0.8" />
<circle cx="40" cy="40" r="3" fill="#0000ff" opacity="0.8" />
</g>
<!-- Data streams connecting jellyfish to city infrastructure -->
<g id="dataStreams" opacity="0.6">
<path d="M 150 140 Q 120 180, 50 180" fill="none" stroke="#ff00ff" stroke-width="0.5" stroke-dasharray="2,2" />
<path d="M 150 140 Q 180 170, 220 160" fill="none" stroke="#00ffff" stroke-width="0.5" stroke-dasharray="2,2" />
<path d="M 80 80 Q 100 120, 130 140" fill="none" stroke="#ffff00" stroke-width="0.5" stroke-dasharray="2,2" />
<path d="M 220 90 Q 190 110, 150 120" fill="none" stroke="#00ff00" stroke-width="0.5" stroke-dasharray="2,2" />
</g>
<!-- Holographic information displays -->
<g id="holographicDisplays">
<circle cx="80" cy="60" r="35" fill="none" stroke="#ff00ff" stroke-width="0.5" stroke-dasharray="2,2" />
<text x="60" y="40" font-family="Arial" font-size="5" fill="#00ffff">BIO-TECH</text>
<text x="60" y="47" font-family="Arial" font-size="5" fill="#00ffff">SPECIMEN</text>
<circle cx="220" cy="80" r="15" fill="none" stroke="#00ffff" stroke-width="0.5" stroke-dasharray="2,2" />
<text x="210" y="75" font-family="Arial" font-size="3" fill="#ff00ff">NANO</text>
<text x="210" y="80" font-family="Arial" font-size="3" fill="#ff00ff">JELLY</text>
</g>
<!-- Light beams and atmospheric effects -->
<g id="lightEffects" opacity="0.2">
<path d="M 50 300 L 70 150 L 90 300" fill="white" opacity="0.1" />
<path d="M 200 300 L 220 100 L 240 300" fill="white" opacity="0.1" />
<circle cx="40" cy="20" r="1" fill="#ffffff" filter="url(#neonGlow)" opacity="0.8" />
<circle cx="180" cy="30" r="1.5" fill="#ffffff" filter="url(#neonGlow)" opacity="0.8" />
<circle cx="270" cy="25" r="1" fill="#ffffff" filter="url(#neonGlow)" opacity="0.8" />
</g>
<!-- Reflections of jellyfish in windows -->
<g id="reflections" opacity="0.3">
<ellipse cx="135" cy="165" rx="10" ry="8" fill="url(#rainbowGradient)" opacity="0.2" />
<ellipse cx="230" cy="155" rx="13" ry="10" fill="url(#rainbowGradient)" opacity="0.2" />
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
</linearGradient>
<linearGradient id="grad2" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(0,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(0,0,255);stop-opacity:1" />
</linearGradient>
<linearGradient id="grad3" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(148,0,211);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(75,0,130);stop-opacity:1" />
</linearGradient>
</defs>
<rect width="100%" height="100%" fill="#2c2c2c"/>
<g>
<circle cx="150" cy="100" r="20" fill="url(#grad1)"/>
<path d="M150,100 Q180,120 150,140 T120,100 T150,60" stroke="url(#grad2)" stroke-width="3" fill="none"/>
<path d="M150,100 Q130,150 170,160 T190,140 T150,120" stroke="url(#grad3)" stroke-width="3" fill="none"/>
</g>
<g transform="translate(50, 100)">
<rect x="0" y="0" width="200" height="100" fill="url(#grad1)"/>
<rect x="10" y="10" width="180" height="80" fill="url(#grad2)"/>
<rect x="20" y="20" width="160" height="60" fill="url(#grad3)"/>
</g>
<g transform="translate(0, 200)">
<polygon points="10,0 290,0 150,200" fill="url(#grad1)"/>
<polygon points="20,20 280,20 150,220" fill="url(#grad2)"/>
<polygon points="30,40 270,40 150,240" fill="url(#grad3)"/>
</g>
</svg>
Judge's Analysis
Player 1's submission effectively captures the theme of 'Rainbow jellyfish in a cyberpunk cityscape' with vibrant, colorful jellyfish floating over a city skyline.
The technical execution is strong with clear, dynamic compositions and a sense of depth.
In contrast, Player 2's image lacks the elements of a cityscape or jellyfish, making it less relevant to 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
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
"Floating city above a surreal ocean of clouds"
"A snail with a city skyline shell, in geometric style"
"A clockwork octopus juggling planets in a starry void"
"A cat riding a surfboard on a rainbow wave"
"Surreal clock melting over a giant lily pad under a purple sky"
"Moonlit owl wearing a crown of stars"