Spaces:
Sleeping
Sleeping
✨ Add epic intro sequence with enhanced aurora effects
Browse files- Pulsating title with massive glow effects
- Animated welcome messages with fade-in
- Enhanced particle system with 7 colors
- Lightning particles for intense bursts
- Auto-start evolution after 4 seconds
- Multiple burst patterns for visual variety
- Gradient background for depth
app.py
CHANGED
|
@@ -20,16 +20,44 @@ state = {
|
|
| 20 |
"running": False
|
| 21 |
}
|
| 22 |
|
| 23 |
-
# HTML for aurora effect
|
| 24 |
AURORA_HTML = """
|
| 25 |
-
<div id="aurora-container" style="position: relative; width: 100%; height: 400px; background: #
|
| 26 |
<canvas id="aurora-canvas" style="width: 100%; height: 100%;"></canvas>
|
| 27 |
-
<div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; z-index: 10;">
|
| 28 |
-
<h1 style="color: #00FF88; font-size:
|
| 29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
</div>
|
| 31 |
</div>
|
| 32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
<script>
|
| 34 |
const canvas = document.getElementById('aurora-canvas');
|
| 35 |
const ctx = canvas.getContext('2d');
|
|
@@ -77,15 +105,30 @@ class Particle {
|
|
| 77 |
function createBurst(intensity) {
|
| 78 |
const centerX = canvas.width / 2;
|
| 79 |
const centerY = canvas.height / 2;
|
| 80 |
-
const colors = ['#00FF88', '#7B3FF2', '#00AAFF', '#FFD700'];
|
| 81 |
|
|
|
|
| 82 |
for (let i = 0; i < 100 * intensity; i++) {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
particles.push(new Particle(
|
| 84 |
-
centerX +
|
| 85 |
-
centerY +
|
| 86 |
-
|
| 87 |
));
|
| 88 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
}
|
| 90 |
|
| 91 |
function animate() {
|
|
@@ -109,8 +152,22 @@ setInterval(() => {
|
|
| 109 |
}
|
| 110 |
}, 2000);
|
| 111 |
|
| 112 |
-
//
|
| 113 |
-
setTimeout(() =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 114 |
</script>
|
| 115 |
"""
|
| 116 |
|
|
|
|
| 20 |
"running": False
|
| 21 |
}
|
| 22 |
|
| 23 |
+
# HTML for aurora effect with epic intro
|
| 24 |
AURORA_HTML = """
|
| 25 |
+
<div id="aurora-container" style="position: relative; width: 100%; height: 400px; background: linear-gradient(to bottom, #000428, #004e92); overflow: hidden; border-radius: 10px;">
|
| 26 |
<canvas id="aurora-canvas" style="width: 100%; height: 100%;"></canvas>
|
| 27 |
+
<div id="title-container" style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; z-index: 10;">
|
| 28 |
+
<h1 id="main-title" style="color: #00FF88; font-size: 64px; margin: 0; text-shadow: 0 0 30px #00FF88, 0 0 60px #00FF88; animation: pulse 2s ease-in-out infinite;">
|
| 29 |
+
Evolution Aurora
|
| 30 |
+
</h1>
|
| 31 |
+
<p style="color: #FFD700; font-size: 28px; text-shadow: 0 0 20px #FFD700; margin-top: 10px; opacity: 0; animation: fadeIn 2s ease-in 1s forwards;">
|
| 32 |
+
Watch AI Learn to Code in Real-Time
|
| 33 |
+
</p>
|
| 34 |
+
<p id="welcome-msg" style="color: #00AAFF; font-size: 20px; margin-top: 20px; opacity: 0; animation: fadeIn 2s ease-in 2s forwards;">
|
| 35 |
+
🚀 Welcome to the Future of AI Development
|
| 36 |
+
</p>
|
| 37 |
</div>
|
| 38 |
</div>
|
| 39 |
|
| 40 |
+
<style>
|
| 41 |
+
@keyframes pulse {
|
| 42 |
+
0% { transform: scale(1); opacity: 0.8; }
|
| 43 |
+
50% { transform: scale(1.05); opacity: 1; }
|
| 44 |
+
100% { transform: scale(1); opacity: 0.8; }
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
@keyframes fadeIn {
|
| 48 |
+
to { opacity: 1; }
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
@keyframes float {
|
| 52 |
+
0%, 100% { transform: translateY(0); }
|
| 53 |
+
50% { transform: translateY(-10px); }
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
#aurora-container {
|
| 57 |
+
box-shadow: 0 10px 40px rgba(123, 63, 242, 0.5);
|
| 58 |
+
}
|
| 59 |
+
</style>
|
| 60 |
+
|
| 61 |
<script>
|
| 62 |
const canvas = document.getElementById('aurora-canvas');
|
| 63 |
const ctx = canvas.getContext('2d');
|
|
|
|
| 105 |
function createBurst(intensity) {
|
| 106 |
const centerX = canvas.width / 2;
|
| 107 |
const centerY = canvas.height / 2;
|
| 108 |
+
const colors = ['#00FF88', '#7B3FF2', '#00AAFF', '#FFD700', '#FF6B6B', '#4ECDC4', '#45B7D1'];
|
| 109 |
|
| 110 |
+
// Create multiple burst patterns
|
| 111 |
for (let i = 0; i < 100 * intensity; i++) {
|
| 112 |
+
const angle = (Math.PI * 2 * i) / (100 * intensity);
|
| 113 |
+
const speed = Math.random() * 15 + 5;
|
| 114 |
+
const color = colors[Math.floor(Math.random() * colors.length)];
|
| 115 |
+
|
| 116 |
particles.push(new Particle(
|
| 117 |
+
centerX + Math.cos(angle) * 20,
|
| 118 |
+
centerY + Math.sin(angle) * 20,
|
| 119 |
+
color
|
| 120 |
));
|
| 121 |
}
|
| 122 |
+
|
| 123 |
+
// Add some special lightning particles
|
| 124 |
+
if (intensity > 3) {
|
| 125 |
+
for (let j = 0; j < 20; j++) {
|
| 126 |
+
const lightningParticle = new Particle(centerX, centerY, '#FFFFFF');
|
| 127 |
+
lightningParticle.size = Math.random() * 8 + 4;
|
| 128 |
+
lightningParticle.life = 150;
|
| 129 |
+
particles.push(lightningParticle);
|
| 130 |
+
}
|
| 131 |
+
}
|
| 132 |
}
|
| 133 |
|
| 134 |
function animate() {
|
|
|
|
| 152 |
}
|
| 153 |
}, 2000);
|
| 154 |
|
| 155 |
+
// Epic initial burst sequence
|
| 156 |
+
setTimeout(() => {
|
| 157 |
+
createBurst(5); // Massive initial burst
|
| 158 |
+
document.getElementById('welcome-msg').style.fontSize = '24px';
|
| 159 |
+
}, 500);
|
| 160 |
+
|
| 161 |
+
setTimeout(() => createBurst(3), 1500);
|
| 162 |
+
setTimeout(() => createBurst(4), 2500);
|
| 163 |
+
|
| 164 |
+
// Auto-start evolution after intro
|
| 165 |
+
setTimeout(() => {
|
| 166 |
+
const startBtn = document.querySelector('.gr-button-primary');
|
| 167 |
+
if (startBtn && startBtn.textContent.includes('Start')) {
|
| 168 |
+
startBtn.click();
|
| 169 |
+
}
|
| 170 |
+
}, 4000);
|
| 171 |
</script>
|
| 172 |
"""
|
| 173 |
|