Creative Challenge
"A lighthouse on a cliff under a swirling galaxy sky."
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<defs>
<!-- Sky and galaxy gradients -->
<linearGradient id="skyGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#0a001a" />
<stop offset="40%" stop-color="#1a0033" />
<stop offset="70%" stop-color="#2d004d" />
<stop offset="100%" stop-color="#3a015c" />
</linearGradient>
<radialGradient id="milkyWayGradient" cx="30%" cy="30%" r="70%" fx="30%" fy="30%">
<stop offset="0%" stop-color="rgba(255,255,255,0.15)" />
<stop offset="50%" stop-color="rgba(180,180,255,0.07)" />
<stop offset="100%" stop-color="rgba(100,100,200,0)" />
</radialGradient>
<!-- Star glow filters -->
<filter id="starGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="1" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
<filter id="brightStarGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="2" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
<!-- Nebula effect filter -->
<filter id="nebulaEffect" x="-50%" y="-50%" width="200%" height="200%">
<feTurbulence type="fractalNoise" baseFrequency="0.01" numOctaves="3" result="noise" seed="3" />
<feColorMatrix in="noise" type="saturate" values="0" result="noiseGray" />
<feGaussianBlur in="noiseGray" stdDeviation="5" result="blurredNoise" />
<feBlend in="SourceGraphic" in2="blurredNoise" mode="multiply" />
</filter>
<!-- Water gradient -->
<linearGradient id="waterGradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#0a1a3a" />
<stop offset="100%" stop-color="#05152d" />
</linearGradient>
<!-- Rock patterns -->
<pattern id="rockPattern" patternUnits="userSpaceOnUse" width="20" height="20">
<path d="M0,10 L5,8 L10,12 L15,7 L20,10" stroke="#483e35" stroke-width="0.5" fill="none" />
<path d="M0,15 L5,17 L10,14 L15,18 L20,15" stroke="#483e35" stroke-width="0.5" fill="none" />
<path d="M10,0 L8,5 L12,10 L7,15 L10,20" stroke="#483e35" stroke-width="0.5" fill="none" />
<path d="M15,0 L17,5 L14,10 L18,15 L15,20" stroke="#483e35" stroke-width="0.5" fill="none" />
</pattern>
<!-- Lighthouse gradients -->
<linearGradient id="lighthouseGradient" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#f0f0f0" />
<stop offset="50%" stop-color="#ffffff" />
<stop offset="100%" stop-color="#f0f0f0" />
</linearGradient>
<radialGradient id="beamGradient" cx="50%" cy="0%" r="100%" fx="50%" fy="0%">
<stop offset="0%" stop-color="rgba(255, 255, 200, 0.9)" />
<stop offset="40%" stop-color="rgba(255, 255, 200, 0.5)" />
<stop offset="100%" stop-color="rgba(255, 255, 200, 0)" />
</radialGradient>
<filter id="lightGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="3" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
</defs>
<!-- Background galaxy sky -->
<rect width="300" height="300" fill="url(#skyGradient)" />
<!-- Milky way background glow -->
<ellipse cx="100" cy="80" rx="200" ry="120" fill="url(#milkyWayGradient)" transform="rotate(-15, 100, 80)" />
<!-- Nebula and galaxy swirls -->
<g filter="url(#nebulaEffect)">
<path d="M150,50 Q200,60 220,100 T270,130 T250,200" fill="none" stroke="#9966ff" stroke-width="40" opacity="0.15" />
<path d="M100,20 Q50,70 70,120 T30,180 T80,230" fill="none" stroke="#6600cc" stroke-width="30" opacity="0.15" />
<path d="M200,10 Q250,50 230,100 T280,150 T230,220" fill="none" stroke="#cc66ff" stroke-width="30" opacity="0.12" />
<path d="M120,30 Q170,40 160,90 T190,120 T150,180" fill="none" stroke="#cc99ff" stroke-width="25" opacity="0.1" />
</g>
<!-- Galaxy spiral arm details -->
<path d="M70,40 Q120,70 100,120 Q80,170 120,190" fill="none" stroke="#9966ff" stroke-width="3" opacity="0.2" />
<path d="M220,30 Q170,80 200,130 Q230,180 190,210" fill="none" stroke="#6600cc" stroke-width="2" opacity="0.2" />
<path d="M30,80 Q90,90 120,130 Q150,170 130,220" fill="none" stroke="#cc66ff" stroke-width="2" opacity="0.2" />
<path d="M250,60 Q190,100 210,150 Q230,200 190,240" fill="none" stroke="#9966ff" stroke-width="3" opacity="0.2" />
<!-- Galaxy swirl details -->
<path d="M90,50 C110,40 130,50 140,70 C150,90 140,110 120,120" fill="none" stroke="#8a66cc" stroke-width="1.5" opacity="0.3" />
<path d="M210,40 C190,50 170,40 160,60 C150,80 160,100 180,110" fill="none" stroke="#a080ff" stroke-width="1.5" opacity="0.3" />
<path d="M50,100 C70,90 90,100 100,120 C110,140 100,160 80,170" fill="none" stroke="#8a66cc" stroke-width="1.5" opacity="0.3" />
<path d="M250,90 C230,100 210,90 200,110 C190,130 200,150 220,160" fill="none" stroke="#a080ff" stroke-width="1.5" opacity="0.3" />
<!-- Small distant stars -->
<g fill="white">
<circle cx="15" cy="10" r="0.3" />
<circle cx="35" cy="35" r="0.2" />
<circle cx="55" cy="15" r="0.3" />
<circle cx="70" cy="30" r="0.2" />
<circle cx="85" cy="40" r="0.3" />
<circle cx="100" cy="10" r="0.2" />
<circle cx="130" cy="20" r="0.3" />
<circle cx="145" cy="40" r="0.2" />
<circle cx="160" cy="25" r="0.3" />
<circle cx="175" cy="35" r="0.2" />
<circle cx="185" cy="45" r="0.3" />
<circle cx="205" cy="20" r="0.2" />
<circle cx="215" cy="30" r="0.3" />
<circle cx="235" cy="45" r="0.2" />
<circle cx="245" cy="10" r="0.3" />
<circle cx="265" cy="25" r="0.2" />
<circle cx="275" cy="15" r="0.3" />
<circle cx="290" cy="40" r="0.2" />
<circle cx="10" cy="50" r="0.3" />
<circle cx="30" cy="70" r="0.2" />
<circle cx="45" cy="45" r="0.3" />
<circle cx="75" cy="60" r="0.2" />
<circle cx="95" cy="65" r="0.3" />
<circle cx="115" cy="85" r="0.2" />
<circle cx="135" cy="65" r="0.3" />
<circle cx="155" cy="80" r="0.2" />
<circle cx="170" cy="90" r="0.3" />
<circle cx="190" cy="75" r="0.2" />
<circle cx="210" cy="65" r="0.3" />
<circle cx="220" cy="85" r="0.2" />
<circle cx="240" cy="90" r="0.3" />
<circle cx="270" cy="75" r="0.2" />
<circle cx="285" cy="85" r="0.3" />
<circle cx="25" cy="95" r="0.2" />
<circle cx="42" cy="65" r="0.2" />
<circle cx="63" cy="85" r="0.2" />
<circle cx="78" cy="92" r="0.2" />
<circle cx="93" cy="78" r="0.2" />
<circle cx="107" cy="63" r="0.2" />
<circle cx="123" cy="87" r="0.2" />
<circle cx="142" cy="76" r="0.2" />
<circle cx="158" cy="61" r="0.2" />
<circle cx="177" cy="82" r="0.2" />
<circle cx="188" cy="93" r="0.2" />
<circle cx="203" cy="72" r="0.2" />
<circle cx="217" cy="65" r="0.2" />
<circle cx="232" cy="79" r="0.2" />
<circle cx="247" cy="94" r="0.2" />
<circle cx="263" cy="67" r="0.2" />
<circle cx="277" cy="83" r="0.2" />
<circle cx="292" cy="73" r="0.2" />
<circle cx="22" cy="17" r="0.2" />
<circle cx="37" cy="29" r="0.3" />
<circle cx="52" cy="38" r="0.2" />
<circle cx="67" cy="18" r="0.2" />
<circle cx="82" cy="28" r="0.3" />
<circle cx="97" cy="39" r="0.2" />
<circle cx="112" cy="19" r="0.2" />
<circle cx="127" cy="29" r="0.3" />
<circle cx="142" cy="38" r="0.2" />
<circle cx="157" cy="18" r="0.2" />
<circle cx="172" cy="27" r="0.3" />
<circle cx="187" cy="36" r="0.2" />
<circle cx="202" cy="16" r="0.2" />
<circle cx="217" cy="25" r="0.3" />
<circle cx="232" cy="34" r="0.2" />
<circle cx="247" cy="14" r="0.2" />
<circle cx="262" cy="23" r="0.3" />
<circle cx="277" cy="32" r="0.2" />
<circle cx="292" cy="12" r="0.2" />
</g>
<!-- Medium-sized stars with glow -->
<g filter="url(#starGlow)">
<circle cx="30" cy="20" r="0.7" fill="white" />
<circle cx="50" cy="55" r="0.6" fill="white" />
<circle cx="80" cy="20" r="0.8" fill="white" />
<circle cx="110" cy="45" r="0.7" fill="white" />
<circle cx="150" cy="25" r="0.7" fill="white" />
<circle cx="170" cy="50" r="0.6" fill="white" />
<circle cx="200" cy="35" r="0.8" fill="white" />
<circle cx="230" cy="15" r="0.7" fill="white" />
<circle cx="260" cy="45" r="0.6" fill="white" />
<circle cx="285" cy="30" r="0.7" fill="white" />
<circle cx="25" cy="60" r="0.8" fill="white" />
<circle cx="65" cy="70" r="0.6" fill="white" />
<circle cx="105" cy="75" r="0.7" fill="white" />
<circle cx="125" cy="55" r="0.6" fill="white" />
<circle cx="165" cy="75" r="0.8" fill="white" />
<circle cx="195" cy="85" r="0.7" fill="white" />
<circle cx="225" cy="60" r="0.6" fill="white" />
<circle cx="255" cy="90" r="0.8" fill="white" />
</g>
<!-- Bright stars with stronger glow -->
<g filter="url(#brightStarGlow)">
<circle cx="30" cy="20" r="1.5" fill="white" />
<circle cx="120" cy="30" r="1.2" fill="white" />
<circle cx="210" cy="40" r="1.5" fill="white" />
<circle cx="270" cy="60" r="1.2" fill="white" />
<circle cx="140" cy="70" r="1.3" fill="white" />
<circle cx="60" cy="40" r="1" fill="white" />
<circle cx="180" cy="15" r="1" fill="white" />
<circle cx="250" cy="25" r="1" fill="white" />
<circle cx="40" cy="80" r="1" fill="white" />
<circle cx="90" cy="55" r="0.8" fill="white" />
<circle cx="190" cy="60" r="1" fill="white" />
<circle cx="240" cy="75" r="0.9" fill="white" />
<circle cx="280" cy="90" r="1.1" fill="white" />
</g>
<!-- Ocean/Water -->
<path d="M0,230 L300,230 L300,300 L0,300 Z" fill="url(#waterGradient)" />
<!-- Water reflections -->
<path d="M150,230 L170,300 L130,300 Z" fill="rgba(255, 255, 200, 0.2)" opacity="0.3" />
<g opacity="0.3">
<path d="M120,230 Q150,270 180,230" fill="none" stroke="rgba(255, 255, 200, 0.1)" stroke-width="1" />
<path d="M100,230 Q150,280 200,230" fill="none" stroke="rgba(255, 255, 200, 0.1)" stroke-width="1" />
<path d="M80,230 Q150,290 220,230" fill="none" stroke="rgba(255, 255, 200, 0.1)" stroke-width="1" />
</g>
<!-- Wave details -->
<g stroke="rgba(100, 150, 200, 0.2)" fill="none">
<path d="M10,250 Q20,248 30,250 Q40,252 50,250" />
<path d="M70,260 Q80,258 90,260 Q100,262 110,260" />
<path d="M180,255 Q190,253 200,255 Q210,257 220,255" />
<path d="M240,265 Q250,263 260,265 Q270,267 280,265" />
</g>
<!-- Cliff structure -->
<path d="M50,230 L250,230 L220,180 C200,170 190,190 170,180 C150,170 140,190 120,180 C100,170 90,190 80,180 L50,230 Z" fill="#614b36" />
<path d="M80,180 C90,190 100,170 120,180 C140,190 150,170 170,180 C190,190 200,170 220,180 L220,170 C200,160 190,180 170,170 C150,160 140,180 120,170 C100,160 90,180 80,170 L80,180 Z" fill="#735942" />
<path d="M80,170 C90,180 100,160 120,170 C140,180 150,160 170,170 C190,180 200,160 220,170 L220,160 C200,150 190,170 170,160 C150,150 140,170 120,160 C100,150 90,170 80,160 L80,170 Z" fill="#8a6d4d" />
<!-- Rock texture -->
<path d="M50,230 L250,230 L220,180 C200,170 190,190 170,180 C150,170 140,190 120,180 C100,170 90,190 80,180 L50,230 Z" fill="url(#rockPattern)" />
<path d="M80,180 C90,190 100,170 120,180 C140,190 150,170 170,180 C190,190 200,170 220,180 L220,170 C200,160 190,180 170,170 C150,160 140,180 120,170 C100,160 90,180 80,170 L80,180 Z" fill="url(#rockPattern)" />
<!-- Cliff details -->
<g opacity="0.7">
<path d="M70,190 L90,190 L85,200 L75,195 Z" fill="#483e35" />
<path d="M110,195 L125,195 L120,205 L115,200 Z" fill="#483e35" />
<path d="M150,190 L160,195 L155,205 L145,200 Z" fill="#483e35" />
<path d="M180,185 L195,190 L190,200 L185,195 Z" fill="#483e35" />
<path d="M210,190 L225,195 L220,205 L215,200 Z" fill="#483e35" />
<!-- Rock cracks -->
<path d="M60,200 L70,210" stroke="#483e35" stroke-width="0.5" fill="none" />
<path d="M90,205 L100,215" stroke="#483e35" stroke-width="0.5" fill="none" />
<path d="M130,200 L140,210" stroke="#483e35" stroke-width="0.5" fill="none" />
<path d="M170,205 L180,215" stroke="#483e35" stroke-width="0.5" fill="none" />
<path d="M210,200 L220,210" stroke="#483e35" stroke-width="0.5" fill="none" />
</g>
<!-- Cliff vegetation -->
<g fill="#29452f" opacity="0.7">
<path d="M75,185 L73,180 L77,180 Z" />
<path d="M65,190 L63,185 L67,185 Z" />
<path d="M95,187 L93,182 L97,182 Z" />
<path d="M105,192 L103,187 L107,187 Z" />
<path d="M195,183 L193,178 L197,178 Z" />
<path d="M205,189 L203,184 L207,184 Z" />
<path d="M225,186 L223,181 L227,181 Z" />
</g>
<!-- Lighthouse base -->
<path d="M125,180 L175,180 L170,160 L130,160 Z" fill="#614b36" />
<rect x="130" y="155" width="40" height="5" fill="#483e35" />
<!-- Lighthouse tower -->
<path d="M135,155 L165,155 L160,100 L140,100 Z" fill="url(#lighthouseGradient)" />
<!-- Lighthouse stripes -->
<path d="M135,155 L165,155 L164,145 L136,145 Z" fill="#d12c2c" />
<path d="M137,135 L163,135 L162,125 L138,125 Z" fill="#d12c2c" />
<path d="M139,115 L161,115 L160,105 L140,105 Z" fill="#d12c2c" />
<!-- Lighthouse details -->
<path d="M140,155 L140,100" stroke="#d6d6d6" stroke-width="0.5" fill="none" />
<path d="M145,155 L145,100" stroke="#d6d6d6" stroke-width="0.5" fill="none" />
<path d="M150,155 L150,100" stroke="#d6d6d6" stroke-width="0.5" fill="none" />
<path d="M155,155 L155,100" stroke="#d6d6d6" stroke-width="0.5" fill="none" />
<path d="M160,155 L160,100" stroke="#d6d6d6" stroke-width="0.5" fill="none" />
<!-- Lighthouse top -->
<ellipse cx="150" cy="95" rx="12" ry="5" fill="#483e35" />
<path d="M140,95 L160,95 L157,75 L143,75 Z" fill="#614b36" />
<ellipse cx="150" cy="75" rx="10" ry="3" fill="#483e35" />
<!-- Lighthouse dome -->
<path d="M143,75 C143,70 157,70 157,75" fill="#614b36" />
<ellipse cx="150" cy="70" rx="5" ry="2" fill="#483e35" />
<!-- Lighthouse light -->
<ellipse cx="150" cy="70" rx="7" ry="5" fill="#333333" />
<ellipse cx="150" cy="70" rx="5" ry="3" fill="#ffcc00" opacity="0.8" />
<circle cx="150" cy="70" r="3" fill="#ffffcc" filter="url(#lightGlow)" />
<!-- Light beam -->
<path d="M150,70 L190,20 L240,40 L150,70 Z" fill="url(#beamGradient)" opacity="0.7" />
<!-- Windows -->
<rect x="145" y="135" width="10" height="5" rx="1" fill="#ffffcc" opacity="0.7" />
<rect x="145" y="115" width="10" height="5" rx="1" fill="#ffffcc" opacity="0.7" />
<!-- Door -->
<rect x="146" y="172" width="8" height="8" rx="1" fill="#614b36" />
<rect x="149" y="172" width="2" height="8" fill="#483e35" />
<!-- Railing -->
<path d="M141,95 L143,95 L143,92 L141,92 Z" fill="#333333" />
<path d="M147,95 L149,95 L149,92 L147,92 Z" fill="#333333" />
<path d="M153,95 L155,95 L155,92 L153,92 Z" fill="#333333" />
<path d="M159,95 L157,95 L157,92 L159,92 Z" fill="#333333" />
<path d="M141,92 L159,92" stroke="#333333" stroke-width="0.7" fill="none" />
<!-- Light reflections -->
<path d="M130,160 L170,160" stroke="rgba(255, 255, 150, 0.1)" stroke-width="3" fill="none" />
<path d="M125,170 L175,170" stroke="rgba(255, 255, 150, 0.05)" stroke-width="5" fill="none" />
<path d="M120,180 L180,180" stroke="rgba(255, 255, 150, 0.03)" stroke-width="7" fill="none" />
</svg>
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="skyGrad" cx="50%" cy="30%" r="70%">
<stop offset="0%" stop-color="#0b0b2a"/>
<stop offset="100%" stop-color="#1a1a4a"/>
</radialGradient>
<linearGradient id="galaxyGrad" x1="50%" y1="20%" x2="50%" y2="100%">
<stop offset="0%" stop-color="#6b46c1" stop-opacity="0.8"/>
<stop offset="100%" stop-color="#2a2a7a" stop-opacity="0.3"/>
</linearGradient>
<filter id="glow">
<feGaussianBlur stdDeviation="4" result="glow"/>
<feMerge>
<feMergeNode in="glow"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Sky -->
<rect width="300" height="300" fill="url(#skyGrad)"/>
<!-- Galaxy -->
<path d="M150 50q-40 60 20 100-60 40-80 80t40 60" stroke="url(#galaxyGrad)" stroke-width="12" fill="none" stroke-linecap="round" transform="rotate(-15 150 150)"/>
<!-- Stars -->
<g opacity="0.8">
<circle cx="80" cy="70" r="1.2" fill="#fff"/>
<circle cx="220" cy="90" r="1.5" fill="#f8f9fa"/>
<circle cx="170" cy="40" r="1" fill="#e9ecef"/>
<circle cx="110" cy="120" r="1.3" fill="#fff"/>
</g>
<!-- Cliff -->
<path d="M0 300L40 220Q80 200 120 210L160 240Q200 260 240 250L300 300Z" fill="#2d2d2d" stroke="#1a1a1a" stroke-width="2"/>
<!-- Lighthouse -->
<g transform="translate(150 200)">
<rect x="-10" y="-120" width="20" height="120" fill="#dc2f02"/>
<path d="M-15 -120L15 -120 0 -150Z" fill="#e85d04"/>
<circle cx="0" cy="-130" r="8" fill="#ffba08"/>
<!-- Light Beam -->
<path d="M0 -150Q-50 -100 0 -50 50 -100 0 -150" fill="url(#galaxyGrad)" filter="url(#glow)" opacity="0.7"/>
</g>
<!-- Ocean -->
<path d="M0 300H300V260Q250 270 200 265 150 260 100 265 50 270 0 260Z" fill="#1d3557" opacity="0.8"/>
</svg>
Judge's Analysis
Player 1's image adheres more closely to the prompt, featuring a detailed lighthouse atop a cliff with a swirling galaxy sky in the background.
The composition is visually appealing and technically well-executed, with clear elements that match the theme.
Player 2's image is more abstract and less aligned with the prompt, lacking a clear depiction of a lighthouse or a galaxy sky.
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 rocket shaped like a watermelon blasting off into a starry sky."
"A cat riding a unicycle on a tightrope under a starry sky."
"Alien juggling planets under a neon galaxy sky."
"An octopus juggling planets under a starry sky."