Ville Musicale — une skyline qui danse
La scène Ville Musicale génère une métropole de 100 bâtiments procéduraux organisés en grille 10×10. Chaque building est mappé à une bande de fréquence du spectre audio : les graves font monter les tours du centre-ville, les médiums animent les quartiers intermédiaires, et les aigus font vibrer les immeubles de banlieue. Le résultat est une skyline vivante dont chaque immeuble est un égaliseur géant en trois dimensions.
Architecture procédurale
Les bâtiments sont générés de manière déterministe à chaque chargement — même ville, même disposition — grâce à un générateur pseudo-aléatoire à graine fixe. Leur largeur, leur profondeur et leur hauteur maximale varient de manière organique, les gratte-ciels les plus hauts étant concentrés au centre de la grille pour reproduire la densité naturelle d'un downtown. Plus de 300 sprites de fenêtres lumineux sont disposés sur les façades des buildings et suivent leur hauteur en temps réel.
La réactivité musicale
À chaque frame, la hauteur de chaque immeuble est calculée à partir de son amplitude de fréquence propre. Sans audio, une animation sinusoïdale douce maintient la ville vivante. La couleur de chaque tour évolue en arc-en-ciel selon le spectre : les bâtiments les plus actifs s'illuminent fortement, tandis que les immeubles au repos restent sombres, comme une ville de nuit dont les lumières clignotent au rythme de la musique.
La caméra orbite lentement autour de la skyline à une distance constante, légèrement surélevée. Sur les pics d'énergie, elle monte imperceptiblement, offrant une vue plongeante plus dramatique sur le centre-ville.
Technologie
Grille procédurale 10×10 = 100 buildings BoxGeometry. Graine pseudo-aléatoire déterministe (seed=42). Hauteur = baseH + amp × maxAdd, mis à jour chaque frame. 300 sprites fenêtres (SpriteMaterial + AdditiveBlending) qui suivent la hauteur de leur building. Caméra orbite : angle += 0,0018 + energySmooth × 0,001 par frame, rayon fixe 24 unités.