Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기LS19 (Look Star 19) — tarayıcıda canlı uzay simülasyonu: Dünya'dan Ay'a görev, ~16.600 canlı uydu, ~55.000 asteroit (JPL SBDB) ve asteroit saptırma fizik motoru.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Tarayıcıda gerçek zamanlı çalışan bir uzay simülasyonu. Dünya park yörüngesinden Apollo 11 iniş bölgesine kadar tüm Ay görevini fizik motoruyla uçurur: motorlu iniş isteğe bağlı olarak yakıt-optimal güdümle (kayıpsız dışbükeyleştirme + ikinci derece koni programı, tarayıcıda WebAssembly çözücüyle) ve iki kademeli iniş aracıyla yapılır, aracın yönelimi 6 serbestlik dereceli rijit cisim dinamiğiyle (RCS + gimbal) uçurulur, araç NASA'nın resmî Apollo modelleriyle (LM, hizmet modülü, S-IVB) çizilir, aracın anlık durumu canlı kontrol panelinde izlenir.README 전문 보기 ↗
Tarayıcıda gerçek zamanlı çalışan bir uzay simülasyonu. Dünya park yörüngesinden Apollo 11 iniş bölgesine kadar tüm Ay görevini fizik motoruyla uçurur: motorlu iniş isteğe bağlı olarak yakıt-optimal güdümle (kayıpsız dışbükeyleştirme + ikinci derece koni programı, tarayıcıda WebAssembly çözücüyle) ve iki kademeli iniş aracıyla yapılır, aracın yönelimi 6 serbestlik dereceli rijit cisim dinamiğiyle (RCS + gimbal) uçurulur, araç NASA'nın resmî Apollo modelleriyle (LM, hizmet modülü, S-IVB) çizilir, aracın anlık durumu canlı kontrol panelinde izlenir. Güneş sistemini canlı N-cisim efemerisiyle hesaplar, Dünya ve Ay çevresindeki gerçek uyduları ve ~53.000 asteroidi canlı gösterir. Saptırma laboratuvarında bir asteroide uygulanan itkinin Dünya yakın geçişini ne kadar değiştirdiğini hesaplar.
A real-time, browser-based space simulator: live N-body ephemeris (DE440-initialised), an Earth-to-Moon mission with LLO/halo/NRHO staging flown by a closed-loop autopilot (optional fuel-optimal powered descent via lossless convexification and second-order cone programming, re-solved every 10 s with a WebAssembly interior-point solver; one- or two-stage lander; rigid-body 6-DOF attitude dynamics with RCS and thrust-vector control; vehicle drawn with NASA's official Apollo models (LM, service module, S-IVB); live flight-telemetry control panel), ~16,600 live satellites (CelesTrak + SGP4), ~53,000 asteroids (JPL SBDB), and an asteroid-deflection physics engine (kinetic impactor or continuous force, B-plane analysis, validated against JPL close-approach data).
Dengeli yakıt-optimal motorlu iniş (iki kademeli araç, Apollo 11 iniş yeri): yörünge kademesi atılmış, iniş kademesi NASA'nın Apollo LM modeliyle yaklaşmada (%10 gaz); sağda Kontrol sekmesi.
TLI yakışı: NASA'nın resmî Apollo modelleriyle araç yığını (üstten alta iniş aracı LM, hizmet modülü, Saturn V S-IVB); sağda Kontrol sekmesi.
Sinematik gösterim (alt çubukta film simgesi ya da C): TLI ateşlemesinden bir kare. Letterbox, bölüm kartı, veri şeridi ve zaman çizelgesi; HDR bloom, anamorfik parlama ve film geçişi; vakum plümü, Dünya'dan yansıyan mavi dolgu ışığı. Her kare gerçek simülasyondur.
Gösterimin kapanışı: iniş özeti (görev süresi, kullanılan Δv, temas hızı, kalan yakıt; sayılar kart açılırken sıfırdan yuvarlanır) solda, yüzeydeki iniş aracı ve gölgesi sağda. Temas çekiminde iniş motorunun yüzeyi vurduğu yerde Ay tozu (balistik parçacıklar) kalkar.
web/test/nbody_ref.js) 20 sa / 52 sa / 22 sa'lik transfer bacaklarında 0,06–0,17 m, alçak Ay yörüngesinde 1,4 cm uyuşur. Eski iki merkez cisimli (etki küresi) çözücü de seçilebilir (Uçuş ▾ → N-cisim çözücü; uçuş sırasında değiştirilebilir, durum kesin dönüştürülür); iki çözücüyle tüm görev ≤ 0,001 m/s Δv farkıyla aynı sonucu verir. Yörünge sekmesinde canlı kuvvet dökümü (Dünya, Ay, Güneş, gezegenler, Dünya J2, Ay J2/C22, itki; m/s²) baskın cismi ve her etkinin doğrudan çekimini ile bozucu (gelgit) etkisini gösterir — örn. Güneş doğrudan ~6·10⁻³ m/s² çeker ama Dünya'yla birlikte düştüğünden etkisi ~5·10⁻⁷ kalır.| Sınama | Sonuç |
|---|---|
| Apophis, 13 Nisan 2029 yakın geçişi | 38.013 km — JPL CAD 38.011,5 km (fark ~2 km, zaman farkı < 1 s) |
| 1 cm/s itki: doğrusal (STM) ve tam tümleme | Δζ 2276,6 / 2276,5 km |
| DART/Dimorphos | başa baş Δv 2,99 mm/s; ölçülen 2,70 mm/s → periyot −32,8 dk (gözlenen −33,0 ± 1,0 dk) |
| ISS geçişleri, İstanbul (3 gün) | Skyfield'a göre en büyük fark 0,6 s ve 0,007° |
| Ay görevi profilleri (13 Ekim 2026) | Apollo 5928,6 m/s · NRHO 9:2 6677,2 m/s · L1 6487,8 · L2 7016,7 · yörünge yükseltmeli (3 yakış, 40.000 km) 5922,3 — hepsi temasla biter (6-DOF yönelim: RCS yakıtı ve ofsetli itki kinematik modele göre +1–5 m/s ekler) |
| N-cisim çözücü ↔ bağımsız barisentrik-tutarlı N-cisim entegrasyonu | TLI→MCC-1 (20 sa) 0,07 m · MCC-1→MCC-2 (52 sa) 0,17 m · MCC-2→LOI (22 sa, etki küresi dahil) 0,06 m · alçak Ay yörüngesi (3,6 sa) 1,4 cm |
| Sonlu itki, boş uzay | Δv roket denklemine 1e-6 m/s içinde (h ≤ 1 s ve 0,25 s); yakıt bitince itki kesilir |
| Yörünge yükseltme (3 yakış → 40.000 km apoje) | hedef apojeler ±0,1% içinde; TLI sonrası MCC-1 9,3 m/s (yükseltmesiz 7,9); park/yükseltme sırasında 1–10 m/s bozulmalarda iniş %100 (15/15; 6-DOF yönelimle yeniden doğrulandı) |
| İniş sağlamlığı | 6 tarih × (bozulmasız, 6×2 m/s, 6×10 m/s): hepsi temasla biter (dikey ≈ −1,07 m/s) |
| Kontrol paneli telemetrisi ↔ bağımsız referanslar | jeodezik irtifa/enlem (en yakın-nokta aramasıyla) < 0,01 mm · periapsisten geçen süre (bağımsız iki-cisim RK4) 2·10⁻¹³ bağıl · ölçülen özgül kuvvet (dv/dt − yerçekimi) ↔ F/m 1,4·10⁻⁶ bağıl · Δv korunumu (motorun saydığı + Tsiolkovsky kalan; yönelimsiz uçuşta) 3,5·10⁻⁸ mm/s · motor kesilirse çarpma süresi (Kepler) ↔ tam kuvvet modeliyle yayınlanan 3 ms · Dünya ile görüş hattı (181 durum) ve Güneş ışığı oranı (98 durum, Güneş diskinde ışın atma) uyuşmazlık yok · temas anı dikey hız −1,0643 m/s = görev sonucu |
| Δv payı (kademe Δv'si − planlı manevra kalanı) | yönelimsiz uçuşta bozulmasız uçuşta tam sabit (yayılım 0,00 m/s); 6-DOF'ta RCS yakıtı kuru kütleden düştüğü için araç hafifler ve pay RCS tüketimiyle orantılı artar (≈ +1 m/s / kg: Apollo +8,0 m/s), test bunu sınırlar. İniş aracı tasarım payı Apollo +425,3 · NRHO +132,5 · L2 +168,2 · L1 +171,2 · yükseltmeli +423,5 m/s; altı profilde telemetri istisnasız, yanlış alarmsız |
| Optimal iniş çekirdeği ↔ yayımlanmış ve bağımsız referanslar | Mars (Malyuta vd. 2022'nin yeniden üretimi): tf=75 s'de 373,755 kg, tf=80 s'de 378,633 kg, tf=70 s uygun değil — aynen; aynı formülasyon CVXPY/Clarabel ile 373,8413 / 378,6623 kg · düz Ay'da 5 yapılandırma 1,4·10⁻⁵ kg içinde · 1B dikey iniş bağımsız yarı-analitik optimumun +%0,06'sı (anahtarlama anı 76,2 s = 76,2 s) · Ay yörüngesinden iniş planı gerçek merkezi çekimle bağımsız RK4'te 1,0 m / 0,002 m/s · kayıpsızlık ‖u‖ = σ: 4·10⁻¹⁰ |
Gereken: Python 3 (yalnız standart kütüphane) ve güncel bir tarayıcı.
cd web
python3 sunucu.py # macOS'ta baslat.command'a çift tıklamak da olur
# tarayıcıda: http://localhost:8765
sunucu.py sitenin dosyalarını sunar; CelesTrak (GP ve Supplemental GP), JPL Horizons, JPL SBDB ve Sentry için yerel vekil, önbellek ve 10 dakikalık arka plan güncellemesi görevi görür. Ayrıntılar: web/BENIOKU.md.
Depo Vercel'e olduğu gibi bağlanabilir; ayar gerekmez (vercel.json hazır):
LS19 deposunu seç → Deploy.web/ klasöründen statik olarak sunulur; canlı veri vekili api/ klasöründeki sunucusuz işlevlerdir (/api/gp, /api/asteroids, /api/sbdb, /api/sentry, /api/horizons, /api/surum).Notlar:
ROCSIM.blend depoda yoktur (GitHub sınırını aşar, .gitignore); scripts/ içindeki Blender betikleri ve kernels/, pylib/ gibi klasörler .vercelignore ile yayına alınmaz./api/surum'u sorar; veri istekleri kaynağın izinli aralığına göre bir sürüm anahtarı taşır ve Vercel CDN yanıtı o süre boyunca paylaşımlı önbellekte tutar. Böylece ziyaretçi sayısından bağımsız olarak CelesTrak'a 2 saatte, JPL'e günde CDN bölgesi başına bir istek gider.docs/celestrak-data.yml iş akışı 2 saatte bir CelesTrak'tan GP ve Supplemental GP'yi çekip deponun data dalına (geçmişsiz) yazar; bulut işlevleri ve tarayıcı CelesTrak'a ulaşamazsa bu kopyayı kullanır. Etkinleştirmek için dosyayı GitHub'da .github/workflows/ altına taşıyın (Actions açık olmalı). data dalı Vercel'de yayına alınmaz (vercel.json → git.deploymentEnabled).cd web
node test/test_deflect.js # Apophis 2029 (JPL CAD ile), STM/tam tümleme uyumu, DART
node test/test_api.js # bulut işlevleri (taklit veriyle), yerel sunucuyla aynı biçim, GitHub kopyasına düşme
node test/test_passes.js # ISS geçişleri, Skyfield sonuçlarıyla
node test/test_satmodels.js # 3B model kataloğu (NORAD/ad eşleşmeleri, dosyalar)
node test/test_satfamilies.js # uydu aileleri (ad/yörünge eşleşmesi, aile GLB'leri)
node test/test_astshapes.js # asteroit şekil modelleri (katalog, birim yarıçap, bilinen boyutlar)
node test/test_damit.js # DAMIT paketi: 4.369 kaydın bütünlüğü, hacim, dönme verisi
node test/test_impact.js # yörünge bozunması (büyüklük sıraları, B*↔ndot, eksantrik), geçmiş analizi (manevra/eğim/sınıflandırma, eğimle kalibrasyon) ve Sentry ayrıştırma
node test/test_cr3bp.js # halo/NRHO aileleri
node test/test_nbody.js # N-cisim çözücü: değişken kütleli itki, çerçeve dönüşümü, bağımsız N-cisim referansı, iki çözücünün eşdeğerliği, kuvvet dökümü
node test/test_raise.js # yörünge yükseltme: tasarım zinciri, hedef apojeler, iki çözücü, bozulma dayanıklılığı, halo ile
node test/test_telemetry.js # kontrol paneli telemetrisi: jeodezik, Kepler (bağımsız RK4), tutulma (ışın atma), özgül kuvvet, Δv korunumu, çarpma süresi, Δv payı, uyarılar, tüm profiller
node test/test_pdg.js # optimal iniş: Mars karşılaştırması, CVXPY referansları, 1B yarı-analitik optimum, merkezi çekimde RK4, gevşek kısıtlar, koni çizelgesi ve sürekli kumanda (FOH), kapalı döngü, tam görev ve altı profil (~80 s)
node test/test_twostage.js # iki kademeli iniş: araç bölme (roket denklemi), altı profil × üç güdüm, ayrılma irtifası, kalan yakıt, üç kademeli Δv bütçesi, bozulma dayanıklılığı (~2 dk)
node test/test_dynamics6.js # 6-DOF dinamik: kütle özellikleri (kaba kuvvet), Euler/kuaterniyon (kapalı çözüm, korunum, RK4 derecesi), gravite gradyanı, RCS/gimbal/denetleyici, tam görevler (LLO'da takla yok, dengeli güdümde komut sürekliliği), elle uçuş, nominal veri güncelliği (~1 dk)
node test/test_vehmodels.js # araç modelleri (NASA'dan türetilmiş GLB'ler): geçerli GLB, uzantılar, bütçeler, sınırlar ↔ yerleşim sayıları (extras), sahne kodu bağı
node test/test_attitude.js # kinematik yönelim modeli (attitude:'kin'): dönme matematiği, hız sınırı, yuvarlanma sürekliliği, yakış hizası, iniş dönüşü, ayrılan kademeler, elle uçuş (~15 s)
node test/test_format.js # sayı/tarih biçimleme önbelleği: toLocaleString ile aynı metin, ≥ 5× hızlı
node test/test_meshmerge.js # model ağlarını malzemeye göre birleştirme: nicelemeli köşeler, yansıtmalı düğümler, gerçek GLB'ler; dünya uzayı büyüklükleri birebir
node test/test_terrain.js # iniş arazisi üretimi (worker'a taşındı): eski uygulamayla bit düzeyinde aynı çıktı
node test/test_texplan.js # ana doku planı (R8, düşük bellek katmanı) ve yükleme hattı sözleşmeleri
node test/test_nominalby.js # hazır nominal Δv'ler (nominalBy), varsayılan açılışta nominal worker'ı yok, gökyüzü katmanlarının ertelenmesi (~10 s)
node test/test_perfgov.js # uyarlanır çizim çözünürlüğü (salınmaz) ve arka plan duraklatma bağlantısı
node test/test_preload.js # index.html modulepreload ipuçları ↔ gerçek modül grafiği
node test/test_profiles.js # tüm görev profillerini tasarlayıp uçurur (birkaç dakika)
Yapay zekâ becerileri (.claude/skills/; yalnız geliştirme için, siteye girmez). Claude Code depoyu açınca bu klasördeki becerileri yükler: UI UX Pro Max (arayüz stili, renk, yazı tipi ve UX kuralları veritabanı) ve Emil Kowalski'nin 14 becerisi (animasyon ve tasarım mühendisliği: animate, improve-animations, review-animations, find-animation-opportunities, pick-ui-library, emil-design-eng, …). İkisi de MIT; lisans metinleri .claude/skills/LICENSES.md'de, Emil Kowalski becerilerinin dosya özetleri skills-lock.json'dadır. Yeniden kurmak ya da güncellemek için:
npm i -g uipro-cli && uipro init --ai claude --offline # UI UX Pro Max (--offline: GitHub'dan indirmeden paketin içindeki varlıklar)
npx skills add emilkowalski/skill -a claude-code -y # Emil Kowalski becerileri; skills-lock.json güncellenir
Hareket kütüphaneleri (web/lib/). Site bundler kullanmaz; üç kütüphane tek dosyalık ESM olarak depoda durur ve web/index.html'deki importmap ile adlandırılır (Three.js ile aynı yöntem). Importmap girdisi, modül içe aktarılana kadar hiçbir şey indirmez; arayüz bunları şimdilik kullanmaz.
| İçe aktarma adı | Dosya | Ne işe yarar | Boyut (gzip) |
|---|---|---|---|
motion 14.0.0 | lib/motion.esm.js | animate (yay, stagger, bağımsız x/y/scale), inView, scroll, hover, press, MotionValue | 78 KB (29) |
number-flow 0.6.2 | lib/number-flow.esm.js | <number-flow>: rakamları kayarak değişen sayı (canlı değerler için) | 17 KB (6) |
torph 0.1.3 | lib/torph.esm.js | TextMorph: metin değişince harfler arası geçiş | 27 KB (11) |
import { animate, stagger } from 'motion';
import 'number-flow'; // <number-flow> öğesini tanımlar → el.update(1234.5)
import { TextMorph } from 'torph'; // new TextMorph({ element }).update('Yeni metin')
animate(el, { opacity: [0, 1], y: [8, 0] }, { duration: 0.2, ease: 'easeOut' });
node tools/motion_paketle.mjs paketleri npm'den geçici bir klasöre kurar, esbuild ile paketler ve web/lib/'e yazar (sürümler betiğin başında; npm erişimi gerekir). Lisanslar her kütüphanenin yanındaki web/lib/<ad>.LICENSE.md'dedir.
| Yol | İçerik |
|---|---|
web/ | Tarayıcı simülasyonu (Three.js, Web Worker'lar), sunucu.py, testler |
docs/ | Ekran görüntüleri ve teknik notlar: optimal_inis.md (yakıt-optimal iniş: okunan kaynaklar, formülasyon, doğrulama, iki kademeli iniş, sınırlar); yonelim.md (araç yönelimi ve kademe görselleri: bulgular, kinematik model, doğrulama); 6dof.md (6 serbestlik dereceli rijit cisim dinamiği: model, doğrulama, sınırlar); 6dof_arastirma.md (GitHub'da taranan benzer projeler, alınan fikirler, lisans notları); modeller.md (araç modelleri: NASA'nın resmî Apollo modelleri, lisans, dönüştürme, yerleşim); sinematik.md (sinematik gösterim ve araç görünümü: yönetmen, zaman hızı denetimi, son işlem, ışık/malzeme/efektler, sınırlar); performans.md (performans denetimi: veri senkronizasyonu, veri görüntüleme, çizim ve açılış; ölçümler, düzeltmeler, sınırlar) |
web/js/ | engine.js fizik (merkez cisimli ve N-cisim çerçeveleri, değişken kütleli itki, kuvvet dökümü) · ephem.js/live.js efemeris · cr3bp.js/halo.js halo yörüngeleri · design.js görev tasarımı · mission.js otopilot (tek ve iki kademeli iniş aracı) · sats.js/satlayer.js uydular · asteroids.js/astwork.js asteroitler · deflect.js/deflectwork.js saptırma motoru · labui.js/deflectui.js/labtext.js Laboratuvar (deney merkezi, saptırma adımları) · asteroit kataloğu · // canlı takip ve geçişler · / 3B uydu modelleri · alt çubuk menüleri · güncelleme · / yakıt-optimal iniş güdümü (kayıpsız dışbükeyleştirme, SOCP) ve konik çözücü arayüzü · rijit cisim dinamiği (bileşen bazlı kütle özellikleri, Euler denklemleri, kuaterniyon kinematiği) · 6-DOF denetleyici ve aktüatörler (gimbal, RCS) · kinematik yönelim modeli (hız sınırlı; çapraz kontrol) ve kuaterniyon yardımcıları · / canlı uçuş telemetrisi ve kontrol paneli · / sinematik gösterimin yönetmeni ve bindirmeleri · sinematik son işlem hattı · plüm, parçacık ve ortam ışığı efektleri · / görüntü ve arayüz · / ana doku hattı · / iniş arazisi üretimi (worker) · //// performans yardımcıları () |
web/models/ast/katalog.json'dadır.web/models/fam/): bu projede Blender betiğiyle üretildi (MIT, kod ile aynı); Starlink, OneWeb vb. için yayımlanmış yaklaşık boyutlara dayanan temsili modellerdir, resmî CAD değildir.web/models/lander.glb, orb.glb, stage.glb): NASA 3D Resources (NASA, kamu malı; NASA logosu/amblemi kullanım kurallarına tabidir) — Apollo Lunar Module (iniş aracı), Apollo Soyuz içindeki Apollo hizmet modülü (Ay yörünge kademesi; komuta modülü ve Soyuz kesilip atıldı) ve Saturn V içindeki S-IVB + araç aygıt birimi (TLI kademesi; J-2 motoru modelde olmadığından aynı modelin F-1 çanı ölçeklenerek konur, temsilidir). Ağlar düzlemle kesilip kapatıldı, sadeleştirildi, dokular WebP'ye çevrildi; dönüştürme , ayrıntı . Modeller NASA'nın onayını ya da bağlılığını ima etmez.K) aracın anlık durumunu canlı gösterir. Motor ve yakıt: gaz, itki, kütle akışı ṁ = F/(Isp·g₀), özgül kuvvet (yerçekimi dışı ivme, g), itki/ağırlık, kalan yanma süresi, Tsiolkovsky ile kalan Δv. Konum ve hız: Dünya'da WGS-84 elipsoidine göre jeodezik irtifa, Ay'da ortalama yarıçap ve iniş yeri yüzeyine göre irtifa; enlem/boylam; eylemsiz ve dönen yüzeye göre hız (v − ω×r), dikey/yatay hız, uçuş yolu açısı, yön. Yörünge: osküle elemanlar (a, e, i, Ω, ω, ν), periapsis/apoapsis irtifası ve o noktalara kalan süre (Kepler denklemi), özgül enerji, v∞, yörünge haritası; "koniğin geçerliliği" üçüncü cisim bozucusunun merkezi çekime oranını gösterir (transferde periapsis yaklaşıktır, dürüstçe işaretlenir). Δv bütçesi: her kademenin kalan Δv'si − planlı manevralarının kalanı = pay; bozulmasız uçuşta sabit kalır, plan dışı harcama onu azaltır. İniş: iniş yeri irtifası, menzil, motor kesilirse çarpmaya kalan süre, tam gazla durma yüksekliği v²/2(a−g), askıda kalma gazı, yüzeye göre hız sıfırlama alt sınırı ve dikey hız–√irtifa faz düzlemi grafiği. Ortam: Dünya uzaklığı ve ışık gecikmesi, Dünya ile görüş hattı (Ay engeli), Güneş ışığı oranı (Dünya ve Ay diskleriyle örtülme). Tüm değerler tek bir saf modülde (web/js/telemetry.js) motorun durumundan hesaplanır; panelde satırın üzerine gelince tanımı ve formülü yazar. Uyarılar fiziksel eşiklere dayanır: Δv yetersiz ya da plan dışı harcama, yörünge yüzeyi kesiyor (koniğin hatası delme derinliğinden küçükse), Dünya atmosferine giriş yörüngesi, sert temas riski, durma yüksekliğinin altı, itki/ağırlık < 1, Dünya ile görüş hattı ve gölge bilgisi.web/js/pdg.js). Plan eylemsiz Ay çerçevesinde kurulur, her 10 s'de (son dakikada 4 s) sıcak başlangıçla yeniden çözülür (~50 ms), 120 m'lik kapıdan sonra son iniş yasası temasa taşır. Uçuş ▾ → İniş güdümü: Optimal (dengeli) (itki dikeyden ≤ 45°; son 60 s'den itibaren koni 20 s kalana dek yumuşakça ≤ 20°'ye daralır ve kapıya dek orada kalır; hız koridoru; komut sürekli, yönelim izleyebilsin diye), Optimal (serbest) (işaretleme sınırı yok, gevşek koridor; saf yakıt-optimale en yakın, son ~12 s'de hızla burun indirir) ve eski ZEM/ZEV. Apollo profilinde kalan yakıt ZEM/ZEV 190 kg → dengeli 198 kg → serbest 238 kg; sıkı yakıt payı olan NRHO profilinde 60 → 68 → 106 kg. Δv: ZEM/ZEV 1906 m/s, dengeli 1892 (−%0,7), serbest 1809 (−%5,1); yani iyi tasarlanmış bir Apollo profili güvenlik kısıtları altındaki optimuma yakındır, kazanç kısıtlar gevşedikçe büyür (kısıtsız kuramsal en iyi ~1736 m/s, ama son saniyelerde yüzeye yatay sürünme ister). Dengeli ön ayar kazancın bir kısmını yönelimin izleyebileceği yumuşaklığa bırakır (hızlı daralan koni 6 kg daha çok yakıt veriyordu ama yaklaşmada ani dönmelere yol açıyordu). Kaynaklar, formülasyon ve doğrulama düzeyi: docs/optimal_inis.md.web/js/rigidbody.js, web/js/attctl.js): Euler denklemleri I·ω̇ = τ − ω×Iω, kuaterniyon kinematiği, RK4 (denetim periyodu 0,05 s; TLI yığını 0,1 s). Eylemsizlik tensörü ve kütle merkezi yığının kademelerinden ve yakıt sütunundan her adım yeniden hesaplanır (yakıt azaldıkça, kademe atıldıkça değişir). Torku iki aktüatör üretir: ana motorda gimbal (±5°, hız ve gecikme sınırlı; kırpma integratörü kütle merkezi ofsetini ve motor sapmasını sıfırlar) ve RCS (saf tork çiftleri, darbe sıklığı modülasyonu, en küçük darbe 14 ms; yakıt kuru kütleden düşer, kademe başına 36–60 kg bütçe). Denetleyici itki vektörünü komuta çevirir: eldeki açısal ivmeyle durabilecek frenleme eğrisi, hız döngüsü ve jiroskopik terim giderme; itki gerçek (gimbal sapmalı) eksen boyunca uygulanır. Otopilot her yakıştan 180 s önce yakış yönüne hizalanır (ateşlemede yön hatası 0,00°); yakış bitince araç baktığı tarafta kalır (LOI'dan DOI'ya kadar ters yönde: gereksiz 180° taklalar yok), DOI'dan sonra PDI'ya kadar motor ileri kalır; elle uçuşta seçili yön moduna itkisiz de RCS ile dönülür. Ayrılan her kademe kendi rijit cismidir: kendi eylemsizliğiyle ve 0,5°/s ayrılma devrilmesiyle torksuz serbest döner (açısal momentum ve enerji korunur), araç da karşı devrilmeyi alır; araç modeli aktif kademeyi gösterir. Sahne yönelimi fizikle aynıdır; alev gimballe döner, RCS iticileri fizikteki görev oranıyla yanar. Kontrol → Yönelim ve kontrol satırları kip, itki ekseni hatası, açısal hız, gimbal, tork, RCS görev oranı ve yakıtı, eylemsizlik ve açısal ivme yetkisini canlı gösterir. Doğrulama: korunum yasaları (açısal momentum, enerji), bağımsız kuramlar (simetrik topaç, gravite gradyanı salınım dönemi %0,03), RK4 derecesi 4,01, kaba kuvvetle kütle özellikleri, zaman-eniyi alt sınırın 1,00–1,04 katı eksen kaydırma ve 36 görevin hepsinde yumuşak temas (aşağıda). Tasarım için GitHub'daki benzer 6-DOF projeleri tarandı: docs/6dof_arastirma.md; model, sonuçlar ve sınırlar: docs/6dof.md. Sınırlar: algılayıcı/kestirim, yakıt çalkantısı, esneklik, itici arızası yoktur; RCS/gimbal değerleri temsilidir; itkisiz süzülmede sınır çevrimi simüle edilmez (yarı-durağan tutma); klasik ZEM/ZEV güdümü yönelim gecikmesinden habersizdir (yaklaşma ve son inişte ±40° salınır, yine yumuşak iner) ve serbest mod son ~12 s'de hızla dikeye döner (saf yakıt-optimalin doğası); dengeli güdümde ve takla/gimbal düzeltmelerinde yönelim sakindir (aşağıda). Önceki kinematik model (Mission({ attitude: 'kin' })) çapraz kontrol olarak korunur; ilk bulgular (360° döngü, ilk kademenin yeniden belirmesi): docs/yonelim.md.tools/apollo_modelleri.mjs ile üretilir (Draco açma, düzlemle kesip kapatma, sadeleştirme, WebP + meshopt; üç dosya toplam ~0,7 MB); motor alevi, RCS ve yığın yerleşimi sayıları model dosyasının içinden okunur. Sınırlar: S-IVB'nin J-2 motoru modelde olmadığından aynı modelin ölçeklenmiş F-1 çanı konur; yığın düzeni fizik yığınıdır (gerçek Apollo düzeni değil); görsel boyutlar fizik rollerinden biraz farklıdır. Ayrıntı, lisans ve yeniden üretim: docs/modeller.md.C; adreste ?cine=1) görevi baştan, gerçek simülasyonla, ~2 dakikalık bir fragman olarak oynatır: açılış, park yörüngesi zaman atlaması, TLI ateşlemesi (motor yakın planı), kademe ayrılması (parlama ve pufları), Ay'a yolculuk (Dünya geri çekilir, Dünya–Ay sistemi, Ay'a yaklaşma), LOI, Ay yörüngesi, iniş kademesinin ayrılması, motorlu iniş, temas ve özet. Yönetmen yalnız kamerayı, zaman hızını ve bindirmeleri yönetir: zaman hızı olay anında yavaşlar (ateşlemede ×1, inişte irtifaya göre ×60 → ×1), yolculukta ×40 000'e çıkar; hız eğrisi tekdüze monoton kübik (PCHIP) + ileri besleme + yaklaşma sınırlayıcıyla, yakışlar ve iniş ise itki durumundan ve irtifadan sürülür (plan zamanları gerçek olaylardan sapar: LOI ~1 dk önce, temas ~36 s sonra). Dokuz bölüm kartı, letterbox (2,39:1), veri şeridi, zaman çizelgesi; yalnız transform/opacity/clip-path ile hareket, prefers-reduced-motion desteği; son işlem: HDR bloom, anamorfik parlama, film (vinyet, tane, kromatik sapma) ve uyarlanır kalite. Esc çık, Boşluk duraklat, → sonraki çekim. Sınırlar (plüm renkleri stilize, fırlatma ve ses yok) ve ayrıntı: docs/sinematik.md.ImageBitmap ile çözülüp yükleme ekranında GPU'ya aktarılır (bulut/özyansıma R8, düşük bellekli cihazlarda yarı çözünürlük), iniş arazisi worker'da üretilir, nominal Δv'ler hazır gelir (5 sn'lik worker yok), Canlı Gökyüzü katmanları boşta kurulur, modül grafiği paralel indirilir. Sekme gizlenince görev duraklar; ağır sahnelerde çizim çözünürlüğü uyarlanır. Adres parametreleri ?lowmem, ?adapt=0, ?bg=1, ?prefetch=1. Bulgular, ölçümler ve sınırlar: docs/performans.md.M tuşu) Ay Görevi (değiştirilebilir, koşturulabilir fizik motoru, görev saati), Canlı Gökyüzü (gerçek saat, uydular, asteroitler, çarpma/yeniden giriş) ve Laboratuvar arasında geçilir. Laboratuvar "ya şöyle olsaydı?" denemelerinin yeridir: Asteroit saptırma dört adımda (Hedef → Yakın geçiş → İtki → Sonuç; yakın geçiş yoksa ne yapılacağını söyler, "Dünya kurtulur / Bu itki yetmez" kararı ve "ne kadar itki gerekir" cümlesi verir) ve Ay görevi ile çarpma riskine kısayollar; Ay Görevi ile Canlı Gökyüzü ayrı saat, efemeris ve kamerayla çalışır, Laboratuvar gökyüzü motorunu paylaşır. Ayrıntı: docs/laboratuvar.md.InstancedMesh ile kendi ailesinin modelini alır (yakında gerçek ölçekte, uzaklaştıkça ekranda ~13 piksel kalacak kadar büyütülür), ötesi nokta kalır. Aileler: Starlink v1/v2 mini, OneWeb, Kuiper, düz panelli megakonstelasyon (Qianfan/Guowang/Hulianwang), Iridium, Globalstar, seyrüsefer (GPS/Galileo/BeiDou/GLONASS), yer eşzamanlı haberleşme, CubeSat, küçük uydu ve genel gövde. Ad ve yörüngeye göre eşleşir (web/js/satfamilies.js); modeller Blender'da betikle üretilir (tools/uydu_aileleri.py), boyutlar yayımlanmış yaklaşık değerlerdir ve temsilidir (bu uyduların kendi 3B modeli yayımlanmamıştır; bilgi kartında "temsili aile modeli" yazar). Yakındaki uydular ana iş parçacığında SGP4 ile kesin konumlandırılır.web/js/tiles.js). Dünya: NASA GIBS Blue Marble, kabartmalı + deniz tabanı (≈490 m/piksel; dağ ve vadi kabartması doğrudan görüntüde); çok yakında üstüne 30 m/piksel katman biner: varsayılan Landsat WELD (bulutsuz, tam kara kapsamı, ~2000 görüntüleri) ya da isteğe bağlı HLS (güncel Sentinel-2/Landsat; gerçek ve yeni ama bulutlu ve şerit şerit yamalı, son 9 günden her parça için en yeni veri). Sol alttaki düğme Landsat → HLS → yalnız Blue Marble arasında geçer (seçim hatırlanır); Ay: NASA Trek LRO WAC mozaiği (≈83 m/piksel; kraterler, ışın sistemleri, gölgeler) ve çok yakında onun üstüne SELENE/Kaguya TC ortho mozaiği (≈21 m/piksel; yaklaşık 58°K–58°G arası, dışında WAC kalır; taban rengi korunup yerel kontrast eklenir, şerit farkları bastırılır). Parçalar taban küreyle aynı gölgelendiriciyi kullanır (Güneş ışığı, bulutlar, gece ışıkları, Ay'da LOLA yer değiştirmesi); taban doku uzaktan yeter. Ağ yoksa taban doku kalır (köşede "alınamadı" uyarısı çıkar). Parçaların da çözünürlüğünü aşan yakınlıkta gürültü tabanlı ince ayrıntı eklenir. Hız: parçalar Cache API'de saklanır (ikinci ziyarette ağ yok: 60 parça ≈ 5 ms), indirme ve çözme ana iş parçacığı dışında yapılır, yakından uzağa öncelik verilir, her parça için kaba üst ata önce istenir (önce bulanık, sonra net), kamera yaklaşırken sonraki seviye boşta bant genişliğiyle önceden istenir, gerekmeyen istekler iptal edilir, başarısız parça 15 sn sonra yeniden denenir. Yakında 8K bulut katmanı seyreltilir, yer ayrıntısı bulanık lekelerin altında kalmaz.web/data/gecmis.json) her uydunun yarı büyük ekseni a(t) çıkarılır; a'daki ani artışlar yörünge yükseltme manevrasıdır, manevradan sonraki dilimin Theil–Sen eğimi gözlenen bozunma hızıdır. Gözlenen hız B*'tan beklenenle karşılaştırılır: son 120 günde yükseltme ya da beklenenin çok altında bozunma → "yörüngesi korunuyor" (listeden elenir); manevrasız, düzenli ve B*'la uyumlu alçalma → "serbestçe bozunuyor"; düzensiz a(t) ya da uyumsuzluk → "belirsiz". Serbest bozunanlarda sürüklenme genliği tek anlık B* yerine gözlenen a eğiminden kalibre edilir (iki yöntem uyumluysa güven yükselir); seçilince geçmiş irtifa grafiği ve eğim gösterilir. Süzgeç seçenekleri: yaş ≥ 5/10/15/20 yıl (varsayılan 10; ve yörünge koruma kanıtı yok), "geçmişe göre serbest alçalanlar" (yaştan bağımsız) ve tümü. Geçmiş ~14 ayı kapsar, bu yüzden "görev sonu + 5 yıl" ölçütü yine yaşla yaklaştırılır; geçmiş yalnızca bu aralıkta manevra olup olmadığını gösterir. Space-Track kullanılmaz: yalnız kamuya açık CelesTrak verisi; veri her pazartesi GitHub Action ile otomatik yenilenir (son ~14 ay kayan pencere; değiştiyse main'e işlenir, bu da Vercel dağıtımını tetikler). Elle: GitHub'da Actions → "Geçmiş yörünge verisini yenile" → Run workflow, ya da yerelde GITHUB_TOKEN=$(gh auth token) node tools/gecmis_derle.mjs --pencere-gun 425.| Optimal iniş (tam görev, N-cisim motor, 6-DOF yönelim) | altı profil × üç güdüm: hepsi yumuşak temas (dikey −1,07 m/s, yatay ≤ 0,4 m/s, konum hatası ≤ 1,1 m), başarısız yeniden çözüm yok; ilk plan ~1,2 s, yeniden çözüm ortalama ~60 ms · iniş sırasında ve PDI'dan önce rastgele 10 m/s bozulmalar: 10/10 yumuşak temas |
| İki kademeli iniş (tam görev, N-cisim motor) | altı profil × üç güdüm: hepsi yumuşak temas; yörünge kademesi PDI'dan 138–282 s önce 14,7–15,0 km'de ayrılır (23–85 kg yakıt atılır), yörünge kademesinin roket denklemi Δv'si tasarım ihtiyacından ≤ %0,5 fazla; kalan yakıt tek kademeliden ≥ 40 kg fazla (Apollo +111 / +107 / +95 kg); üç kademeli Δv payı bozulmasız uçuşta sabit (yayılım 0,00 m/s), telemetri istisnasız; DOI öncesi ve sonrası rastgele 10 m/s bozulmalarda hepsi yumuşak temas |
6-DOF yönelim dinamiği (test_dynamics6.js, 58 sınama) | kütle merkezi/eylemsizlik ↔ kaba kuvvet ≤ 6·10⁻⁵ · sabit tork kesin (10⁻¹²) · simetrik topaç kapalı çözümü 2·10⁻¹¹ rad/s · asimetrik gövdede açısal momentum sapması 8·10⁻¹¹, enerji sapması 4·10⁻¹² · RK4 derecesi 4,01 · gravite gradyanı salınım dönemi kuramdan %0,031 · eksen kaydırma süresi zaman-eniyi alt sınırın 1,00–1,04 katı · açısal momentum bilançosu ∫R(q)τ dt = ΔL 4·10⁻⁷ · kırpma gimbali kuramla aynı · 60 s yakışta Δv roket denklemiyle 6 hane · 36 görev (6 profil × tek/iki kademe × 3 güdüm) hepsi yumuşak temas (dikey −1,06…−1,07, yatay ≤ 0,50 m/s; RCS 2–17 kg / 36 kg bütçe) · yakışlar hizalı başlar (0,00°; PDI 0,3–6,2°) · Chromium'da sahne yönelimi fizikle aynı (1e-9), gimbal ve RCS jetleri fizikle birebir, sayfa hatası yok |
astui.jspasses.jstracker.jsskyui.jssatcatalog.jssatmodels.jstreemenu.jsupdater.jspdg.jsconic.jsrigidbody.jsattctl.jsattitude.jstelemetry.jscontrolpanel.jscinema.jscinemaui.jspost.jsfx.jsscene.jsui.jstexload.jstexplan.jsterraingen.jsterrainwork.jsmeshmerge.jspointstore.jsformat.jsperfgov.jsnominalrun.jsweb/css/ | style.css ana arayüz · cinema.css sinematik gösterimin bindirmeleri (letterbox, bölüm kartları, veri şeridi; yalnız transform/opacity/clip-path geçişleri, azaltılmış hareket varyantı) |
web/models/lander.glb, orb.glb, stage.glb | Araç modelleri (NASA 3D Resources: Apollo LM, hizmet modülü, Saturn V S-IVB; ~0,7 MB; tools/apollo_modelleri.mjs ile yeniden üretilir; yerleşim sayıları dosyanın extras alanındadır) |
web/models/sats/ | NASA 3D Resources uydu modelleri (meshopt + WebP ile küçültülmüş GLB; tools/uydu_modelleri.mjs ile yeniden üretilir) |
web/models/fam/ | Uydu aileleri: Blender'da üretilen düşük poligonlu GLB'ler (tools/uydu_aileleri.py; köşe renkli, aile başına ~10–25 kB) |
web/models/ast/ | Gerçek asteroit şekil modelleri (NASA PDS OBJ → ~8 bin üçgen GLB, hacim eşdeğeri yarıçap 1) ve katalog.json; tools/asteroit_modelleri.py ile üretilir · damit/: DAMIT şekilleri (≤ 800 üçgen, int16, gzip'li parçalar) ve damit.json indeksi; tools/damit_paketle.py ile üretilir |
web/data/gecmis.json | Halka açık CelesTrak geçmişinden türetilmiş uydu yörünge özeti (manevra sayısı, eğim, B*'tan beklenen bozunma) ve serbest bozunanların a(t) serileri (~2 MB, gzip ~0,5 MB); tools/gecmis_derle.mjs ile (haftalık .github/workflows/gecmis.yml) yenilenir |
web/lib/ | Tek dosyalık ESM kütüphaneler ve lisansları: Three.js (+ addons/: GLTFLoader, meshopt çözücü, son işleme eklentileri EffectComposer/RenderPass/UnrealBloomPass/OutputPass ve gölgelendiricileri, r170, npm pack [email protected]'dan olduğu gibi), satellite.js, motion, number-flow, torph · clarabel/: Clarabel konik çözücü (WebAssembly, Apache-2.0) |
tools/ | Model, veri ve paket üreten betikler ile ölçüm aracı (apollo_modelleri.mjs, inis_olcut.mjs: iniş yönelimi görüntü ölçütleri, uydu_modelleri.mjs, uydu_aileleri.py, asteroit_modelleri.py, damit_paketle.py, gecmis_derle.mjs, motion_paketle.mjs, clarabel_paketle.mjs, perf_olcum.mjs: açılış/çizim/kare ölçümü, cihaz_emulasyonu.mjs: telefon, Safari benzeri yedek yollar, bağlam kaybı ve uyarlanır çözünürlük için emülasyon denetimi, lab_deneme.mjs: Laboratuvar arayüzünün tarayıcı denemesi, internetsiz) |
.claude/skills/, skills-lock.json | Claude Code becerileri (UI UX Pro Max, Emil Kowalski) ve sürüm özetleri; siteye girmez |
api/ | Vercel sunucusuz işlevleri (canlı veri vekili) |
scripts/ | Blender sürümü (Adım 1–5): görev motoru ve sahne betikleri |
kernels/ | JPL DE440s, Ay yönelim çekirdeği, efemeris tablosu |
tools/apollo_modelleri.mjsexamples/jsm'den olduğu gibi), satellite.js (MIT), jplephem (MIT), Motion (MIT), NumberFlow (MIT, içinde esm-env), torph (MIT); lisans metinleri web/lib/*.LICENSE.md.cvxjs 0.1.4 paketinden olduğu gibi (web/lib/clarabel/, SHA-256 özetleriyle). Optimal iniş formülasyonu yayımlanmış makalelerden yazıldı; başka uygulamaların kodu kopyalanmadı (ayrıntı: docs/optimal_inis.md)..claude/skills/): UI UX Pro Max (MIT, Next Level Builder) ve Emil Kowalski becerileri (MIT); bildirimler .claude/skills/LICENSES.md'de.