BruceBanners commited on
Commit
b64a36c
·
verified ·
1 Parent(s): 0fb4449

No this is not what i wanted. please make the background one style, i want it to be small particles that becomes the shapes i asked you to make earlier.

Browse files
Files changed (1) hide show
  1. index.html +77 -90
index.html CHANGED
@@ -9,11 +9,8 @@
9
  <script src="https://unpkg.com/feather-icons"></script>
10
  <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
  <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
12
- <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script>
13
- <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.waves.min.js"></script>
14
- <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.cells.min.js"></script>
15
- <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.dots.min.js"></script>
16
- <style>
17
  @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
18
  body {
19
  font-family: 'Space Grotesk', sans-serif;
@@ -207,94 +204,84 @@
207
  asciiContainer.innerHTML = `<div class="ascii-art">${asciiPatterns[currentPattern]}</div>`;
208
  currentPattern = (currentPattern + 1) % asciiPatterns.length;
209
  }
210
- // Initialize with morphing background effects
211
- let currentEffect = 'cells';
212
-
213
- function initializeVantaEffect(effect) {
214
- if (window.vantaEffect) {
215
- window.vantaEffect.destroy();
216
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
 
218
- switch(effect) {
219
- case 'globe':
220
- window.vantaEffect = VANTA.GLOBE({
221
- el: "#vanta-background",
222
- mouseControls: true,
223
- touchControls: true,
224
- gyroControls: false,
225
- minHeight: 200.00,
226
- minWidth: 200.00,
227
- scale: 1.00,
228
- color: 0x3b82f6,
229
- backgroundColor: 0x0f172a,
230
- size: 1.00
231
- });
232
- break;
233
- case 'waves':
234
- window.vantaEffect = VANTA.WAVES({
235
- el: "#vanta-background",
236
- mouseControls: true,
237
- touchControls: true,
238
- gyroControls: false,
239
- minHeight: 200.00,
240
- minWidth: 200.00,
241
- scale: 1.00,
242
- color: 0x10b981,
243
- shininess: 50.00,
244
- waveHeight: 20.00,
245
- waveSpeed: 0.50,
246
- zoom: 0.75
247
- });
248
- break;
249
- case 'dots':
250
- window.vantaEffect = VANTA.DOTS({
251
- el: "#vanta-background",
252
- mouseControls: true,
253
- touchControls: true,
254
- touchControls: true,
255
- gyroControls: false,
256
- minHeight: 200.00,
257
- minWidth: 200.00,
258
- scale: 1.00,
259
- color: 0xa855f7,
260
- color2: 0xec4899,
261
- size: 3.00,
262
- spacing: 40.00
263
- });
264
- break;
265
- case 'cells':
266
- default:
267
- window.vantaEffect = VANTA.CELLS({
268
- el: "#vanta-background",
269
- mouseControls: true,
270
- touchControls: true,
271
- gyroControls: false,
272
- minHeight: 200.00,
273
- minWidth: 200.00,
274
- scale: 1.00,
275
- color1: 0x1e293b,
276
- color2: 0x475569,
277
- size: 1.50,
278
- speed: 1.20
279
- });
280
- break;
281
  }
282
  }
283
-
284
- // Start with cells effect
285
- initializeVantaEffect('cells');
286
-
287
- // Morph between different background effects
288
- const effects = ['cells', 'globe', 'waves', 'dots'];
289
- let effectIndex = 0;
290
-
291
- function morphBackground() {
292
- effectIndex = (effectIndex + 1) % effects.length;
293
- initializeVantaEffect(effects[effectIndex]);
294
- }
295
-
296
- // Change background effect every 8 seconds
297
- setInterval(morphBackground, 8000);
298
  // Initialize countdown to January 1, 2026 at 12:00
299
  const countdownDate = new Date('January 1, 2026 12:00:00');
300
  function updateCountdown() {
 
9
  <script src="https://unpkg.com/feather-icons"></script>
10
  <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
  <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
12
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.dots.min.js"></script>
13
+ <style>
 
 
 
14
  @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
15
  body {
16
  font-family: 'Space Grotesk', sans-serif;
 
204
  asciiContainer.innerHTML = `<div class="ascii-art">${asciiPatterns[currentPattern]}</div>`;
205
  currentPattern = (currentPattern + 1) % asciiPatterns.length;
206
  }
207
+ // Initialize dots background with shape morphing
208
+ window.vantaEffect = VANTA.DOTS({
209
+ el: "#vanta-background",
210
+ mouseControls: true,
211
+ touchControls: true,
212
+ gyroControls: false,
213
+ minHeight: 200.00,
214
+ minWidth: 200.00,
215
+ scale: 1.00,
216
+ color: 0x3b82f6,
217
+ color2: 0xa855f7,
218
+ size: 2.00,
219
+ spacing: 40.00,
220
+ backgroundAlpha: 0
221
+ });
222
+
223
+ // Shape definitions for particles to form
224
+ const shapes = {
225
+ building: [
226
+ { x: 0.3, y: 0.3 }, { x: 0.7, y: 0.3 }, { x: 0.7, y: 0.7 }, { x: 0.3, y: 0.7 },
227
+ { x: 0.5, y: 0.7 }, { x: 0.5, y: 0.9 },
228
+ { x: 0.3, y: 0.3 }, { x: 0.3, y: 0.7 },
229
+ { x: 0.7, y: 0.3 }, { x: 0.7, y: 0.7 },
230
+ { x: 0.4, y: 0.4 }, { x: 0.6, y: 0.4 }, { x: 0.6, y: 0.6 }, { x: 0.4, y: 0.6 }, { x: 0.4, y: 0.4 },
231
+ { x: 0.4, y: 0.6 }, { x: 0.6, y: 0.6 }
232
+ ],
233
+ helicopter: [
234
+ { x: 0.5, y: 0.3 },
235
+ { x: 0.4, y: 0.4 }, { x: 0.6, y: 0.4 },
236
+ { x: 0.35, y: 0.5 }, { x: 0.65, y: 0.5 },
237
+ { x: 0.4, y: 0.6 }, { x: 0.6, y: 0.6 },
238
+ { x: 0.3, y: 0.7 }, { x: 0.7, y: 0.7 },
239
+ { x: 0.45, y: 0.8 }, { x: 0.55, y: 0.8 }
240
+ ],
241
+ cityscape: [
242
+ { x: 0.1, y: 0.4 }, { x: 0.2, y: 0.3 }, { x: 0.3, y: 0.5 }, { x: 0.4, y: 0.4 }, { x: 0.5, y: 0.3 }, { x: 0.6, y: 0.4 }, { x: 0.7, y: 0.3 }, { x: 0.8, y: 0.4 }, { x: 0.9, y: 0.3 },
243
+ { x: 0.1, y: 0.7 }, { x: 0.2, y: 0.6 }, { x: 0.3, y: 0.7 }, { x: 0.4, y: 0.6 }, { x: 0.5, y: 0.7 }, { x: 0.6, y: 0.6 }, { x: 0.7, y: 0.7 }, { x: 0.8, y: 0.6 }, { x: 0.9, y: 0.7 },
244
+ { x: 0.15, y: 0.4 }, { x: 0.15, y: 0.7 },
245
+ { x: 0.25, y: 0.3 }, { x: 0.25, y: 0.6 },
246
+ { x: 0.35, y: 0.5 }, { x: 0.35, y: 0.7 },
247
+ { x: 0.45, y: 0.3 }, { x: 0.45, y: 0.7 },
248
+ { x: 0.55, y: 0.3 }, { x: 0.55, y: 0.7 },
249
+ { x: 0.65, y: 0.3 }, { x: 0.65, y: 0.7 },
250
+ { x: 0.75, y: 0.3 }, { x: 0.75, y: 0.7 },
251
+ { x: 0.85, y: 0.3 }, { x: 0.85, y: 0.7 }
252
+ ],
253
+ circuit: [
254
+ { x: 0.2, y: 0.2 }, { x: 0.8, y: 0.2 }, { x: 0.8, y: 0.8 }, { x: 0.2, y: 0.8 }, { x: 0.2, y: 0.2 },
255
+ { x: 0.4, y: 0.4 }, { x: 0.6, y: 4 }, { x: 0.6, y: 0.6 }, { x: 0.4, y: 0.6 }, { x: 0.4, y: 0.4 },
256
+ { x: 0.5, y: 0.2 }, { x: 0.5, y: 0.8 },
257
+ { x: 0.2, y: 0.5 }, { x: 0.8, y: 0.5 },
258
+ { x: 0.3, y: 0.3 }, { x: 0.7, y: 0.3 }, { x: 0.7, y: 0.7 }, { x: 0.3, y: 0.7 },
259
+ { x: 0.2, y: 0.2 }, { x: 0.8, y: 0.2 }, { x: 0.8, y: 0.8 }, { x: 0.2, y: 0.8 }
260
+ ]
261
+ };
262
+
263
+ let currentShape = 'building';
264
+ let shapeIndex = 0;
265
+ const shapeNames = Object.keys(shapes);
266
+
267
+ function morphShape() {
268
+ currentShape = shapeNames[shapeIndex];
269
+ shapeIndex = (shapeIndex + 1) % shapeNames.length;
270
 
271
+ // Update the dots positions to form the new shape
272
+ if (window.vantaEffect && window.vantaEffect.setOptions) {
273
+ const targetPositions = shapes[currentShape];
274
+ window.vantaEffect.setOptions({
275
+ size: 2.5,
276
+ spacing: 35,
277
+ showLines: true,
278
+ points: targetPositions
279
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
280
  }
281
  }
282
+
283
+ // Change shape every 6 seconds
284
+ setInterval(morphShape, 6000);
 
 
 
 
 
 
 
 
 
 
 
 
285
  // Initialize countdown to January 1, 2026 at 12:00
286
  const countdownDate = new Date('January 1, 2026 12:00:00');
287
  function updateCountdown() {