Lightning Globe, Dünya üzerindeki gerçek zamanlı yıldırım ve şimşek deşarjlarını uzay istasyonu perspektifinden sinematik bir görsel deneyime dönüştüren, yüksek performanslı bir 3D gezegen izleme ve meteorolojik analiz platformudur.
- 🎯 Anti-Drift Hedef Kilitlemeli Kamera (Faz 16):
- Yaklaşma tamamlandığında hedef merkezine (
controls.target.copy) milimetrik kilitlenme. - Yapay rotasyon sapmalarından arındırılmış sıfır kayma (zero-drift) kamera kararlılığı.
- Yaklaşma tamamlandığında hedef merkezine (
- 🗺️ Tıklanabilir Şimşekler & İstemci Tarafı Tersine Coğrafi Kodlama (Faz 17):
- Küre üzerindeki şimşeklere tıklayarak anlık HUD kartı açma (
#strike-card-hud). -
GeoEnricherile hafif istemci tarafı poligon sınır testi: Ülke adı, ISO kodu, bayrak ikonu, kıta ve koordinat zenginleştirmesi.
- Küre üzerindeki şimşeklere tıklayarak anlık HUD kartı açma (
- ⏳ 24 Saatlik Kalıcı İz Katmanı (Persistent Trails) (Faz 18):
- Küre üzerinde son 24 saatin tüm fırtına deşarjlarını soluklaşan parçacık noktalarıyla (
HistoricalTrailLayer) gösterme. - Saniyede 60+ FPS hızını koruyan sabit GPU nokta geometrisi ve dinamik opaklık sönümlemesi.
- Küre üzerinde son 24 saatin tüm fırtına deşarjlarını soluklaşan parçacık noktalarıyla (
- 📡 30 Saniyelik Kayan Pencere & Fırtına Hücresi Radar Halkaları (Faz 19):
-
StormCellBatcherile son 30 saniyedeki vuruşların kayan pencerede toplanması ve$\ge 5$ vuruş yoğunlaşan fırtına odaklarının (StormCell) tespiti. -
StormCellRadarile küre üzerinde nabız atan, genişleyen ve fırtına şiddetine göre renk değiştiren teğetsel çoklu dalga halkaları (48 yuvalı nesne havuzu).
-
- ⚡ EnergyProxy Fiziksel Ölçekleme Modeli (Faz 20):
- Tepe akımı (
$|\text{peakCurrent}|$ ) ve yerel yoğunluktan türetilen dinamik enerji çarpanı:$$\text{EnergyProxy} = \text{clamp}\left(0.65 \times \frac{|\text{peakCurrent}|}{100.0} + 0.35 \times \frac{\text{localDensity}}{10.0}, ; 0.2, ; 3.0\right)$$ - Şok dalgası yarıçapının, yayılma hızının ve 3D cıvata kalınlığının fiziksel orantıyla dinamik büyümesi.
- Tepe akımı (
- 🏆 Gerçek Takvimli Ülke Liderlik Tablosu (Leaderboard) (Faz 21):
-
CountryLeaderboardmotoru ile UTC takvimine bağlı günlük, haftalık, aylık ve yıllık kümülatif ülke vuruş sayaçları. - UTC 00:00:00 devrinde otomatik günlük sıfırlama ve
localStoragepersistansı (lightning_leaderboard_v2). - Glassmorphic
[🏆 LEADERBOARD]paneli ve listeden ülkeye tıklandığında yumuşak kamera uçuşu (flyToCountry).
-
- 🌐 Gerçek Zamanlı Canlı Akış (Blitzortung WebSocket) & Fallback Engine:
- Canlı global yıldırım telemetrisi (
wss://). - Ağ kopmalarında üstel geri çekilme (Exponential Backoff + Full Jitter, 1s - 30s) ve 10s Heartbeat Watchdog ile otomatik sentetik yedek moda geçiş (Graceful Fallback).
- Canlı global yıldırım telemetrisi (
- ⚡ 3D Prosedürel Yıldırım Cıvataları & Dinamik VFX:
- Fraktal orta nokta ötelemesi (Recursive Midpoint Displacement) ile hacimsel elektrik arkları.
- Sıfır bellek tahsisli 6 yuvalı cıvata nesne havuzu (Object Pool).
- 🌌 Atmosferik Saçılım & NASA Black Marble Terminatör Harmanlaması:
-
$R=101.8$ dış kabuk üzerinde özel GLSL fragment shader ile Fresnel Rayleigh Limb Glow. - Gerçek zamanlı astronomik Güneş vektörüne göre
smoothstepile pürüzsüz gece şehir ışıkları geçişi.
-
- 🔊 Prosedürel Web Audio Fırtına Sentezleyici:
- Sıfır harici dosya bağımlılığıyla prosedürel beyaz gürültü ve alçak geçiren filtreli tok bas gök gürültüsü uğultusu.
- 🧮 O(N) Mekânsal-Zamansal Fırtına Kümeleme & Puanlama:
-
$300\text{ km}$ yarıçap ve$30\text{ sn}$ pencerede Disjoint Set Union (DSU) tabanlı kümeleme ve 4 bileşenliActivityScore.
-
- 🕹️ 6 Deterministik Meteorolojik Senaryo:
-
ISOLATED_DISCHARGES,TROPICAL_CONVERGENCE,SUPERCELL_OUTBREAK,POLAR_ACTIVITY,DATELINE_STORM,EXTREME_SURGE($80-100\text{ strike/sn}$ ).
-
graph TD
A[Live WebSocket / Synthetic Scenarios] -->|Raw Lightning Data| B(GeoEnricher & Normalizer)
B -->|Enriched StrikeRecord| C[LiveEventStore / 24H RingBuffer]
C -->|Historical Events| D[HistoricalTrailLayer 24H Heatmap]
C -->|30s Sliding Window| E[StormCellBatcher & Activity Engine]
C -->|Realtime Strikes| F[EnergyProxy Physical Scaler]
E -->|Active Storm Cells| G[StormCellRadar Pulsating Wave Rings]
E -->|Ranked Storm Queue| H[Event & Camera Director]
F -->|Scaled Radii & Thickness| I[LightningRenderer & Bolt Pool]
B -->|Country ISO & Name| J[CountryLeaderboard UTC Tracker]
J -->|Day/Week/Month/Year| K[Glassmorphic Leaderboard HUD]
H -->|Quaternion SLERP| L[Three.js 3D Planetary Scene]
D --> L
G --> L
I --> L
- Node.js: v18.0.0 veya üzeri
- NPM: v9.0.0 veya üzeri
- Bağımlılıkları yükleyin:
npm install- Geliştirme sunucusunu başlatın (HMR destekli):
npm run devUygulama yerel olarak http://localhost:3000 adresinde açılacaktır.
- Üretim paketini derleyin:
npm run build- Üretim paketini yerel olarak önizleyin:
npm run previewProje, pure domain ve matematiksel mantıkların grafik motorundan bağımsız olarak doğrulandığı 21 test süiti içerir:
| Test Dosyası | Kapsam | Komut |
|---|---|---|
tests/storm_cells_batch.test.ts |
30s Kayan Pencere, Fırtına Hücre Eşiği ( |
npx tsx --test tests/storm_cells_batch.test.ts |
tests/energy_proxy.test.ts |
EnergyProxy Formülü, Clamp Sınırları |
npx tsx --test tests/energy_proxy.test.ts |
tests/leaderboard.test.ts |
UTC Takvim Sıfırlaması (Gün/Hafta/Ay/Yıl) ve localStorage Depolaması | npx tsx --test tests/leaderboard.test.ts |
tests/geo_enricher.test.ts |
Poligon Tabanlı Ülke Eşleştirme, Okyanus Tespiti ve Önbellekleme | npx tsx --test tests/geo_enricher.test.ts |
tests/persistent_trail.test.ts |
24 Saatlik Kalıcı İz Tamponu, Yaş Sönümlemesi ve Bellek Sınırı | npx tsx --test tests/persistent_trail.test.ts |
tests/camera_drift.test.ts |
Yaklaşma Tamamlandığında Hedef Kilidi ve Sıfır Kayma (Zero-Drift) | npx tsx --test tests/camera_drift.test.ts |
tests/vfx.test.ts |
Prosedürel 3D Cıvata Geometrisi ve 6 Yuvalı Cıvata Havuzu | npx tsx --test tests/vfx.test.ts |
tests/polish.test.ts |
Fresnel Saçılımı, Terminatör Harmanlaması, Web Audio Durum Makinesi | npx tsx tests/polish.test.ts |
tests/reliability.test.ts |
WebSocket Yeniden Bağlanma, Exponential Backoff, Watchdog Fallback | npx tsx tests/reliability.test.ts |
tests/performance.test.ts |
10.000 Olay Yükü, Zero-Allocation Spatial Hash, Bellek Sızıntısı Koruması | npx tsx tests/performance.test.ts |
tests/scenarios.test.ts |
6 Deterministik Meteorolojik Senaryo ve Durum Temizliği | npx tsx tests/scenarios.test.ts |
tests/clustering.test.ts |
DSU Kümeleme, Antimeridyen Sürekliliği, 3D Kartezyen Merkez | npx tsx tests/clustering.test.ts |
tests/director.test.ts |
SLERP Kamera İnterpolasyonu, Olay Yönetmeni Öncelik Sıralaması | npx tsx tests/director.test.ts |
tests/ui.test.ts |
HUD Telemetrisi, Çekmece Durumu, Erişilebilirlik (Reduced Motion) | npx tsx tests/ui.test.ts |
Uygulama, saniyede
- Sıfır Bellek Tahsisli Mekânsal Grid: Integer tabanlı grid hash ile V8 Garbage Collector duraksamaları önlenmiştir.
-
Sabit Boyutlu Dairesel Halka Tampon (RingBuffer): 24 saatlik izler ve anlık olaylar önceden tahsis edilmiş dizilerde
$O(1)$ yazma ile tutulur. -
Çoklu Efekt Nesne Havuzları (Object Pooling): Şimşek arkları için 6 yuvalı
LightningBoltPool, radar dalgaları için 48 yuvalıStormCellRadarhavuzu ile frame başına bellek tahsisi sıfırlanmıştır. -
Ölçülen Telemetri Sonuçları:
- Kare Hızı: 63 - 75 FPS (Tüm v2.0 katmanları açıkken), 73 - 105 FPS (v1.0 taban).
- Kare Süresi: 1.8 - 2.2 ms.
- Bellek: 10.000 eşzamanlı olay yükünde sızıntısız düz çizgi (flatline) Heap kullanımı.
Proje, herhangi bir Node.js arka ucu gerektirmeyen saf bir Static SPA (Single Page Application) yapısındadır:
- Build Command:
npm run build - Output Directory:
dist - Vercel, Cloudflare Pages, Netlify veya GitHub Pages üzerinde sıfır yapılandırmayla çalışır.
Bu proje MIT lisansı ile lisanslanmıştır.