CLEAN MODE
Knappen C · Clean mode eller tangenten C visar bara 3D-scenen. C, Esc, dubbelklick eller dubbeltryck återställer gränssnittet. Menyer, HUD, kartor, ortnamn, målmarkeringar, spelare och muspekare döljs. Ljud och flygning fortsätter. Tidigare HUD-val bevaras.

VERSION 16 — FLYGUPPVISNING, HUD OCH OFFLINE-SR
Välj Flyguppvisning i uppdragslistan: sju Gripen över Bråvalla/Norrköping, julgranen, pilformation, tät grupp, stigande solfjäder. Automatisk kamera, nästa moment och avsluta. Programmet är en visuell koreografi, inte verkliga flygprocedurer. H eller H · HUD på/av visar/döljer instrument och flygdata. Tre Sveriges Radio-inslag sparas i viewer/audio/sr och bäddas in i offlinefilen. Källor och kontrollsummor i sources.json. Originalradion på YouTube kräver fortfarande internet.

VERSION 15 — FLER GRIPEN I FORMATION
Martin Gul 181 och Martin Grön 182 ansluter periodvis till roten. Fyra formationer: diamant, kolonn, echelong höger och bred formation. Första anslutningen börjar efter 12 sekunders flygning; inflygningen tar 24 sekunder. Gruppen lämnar efter cirka 2,5 minuter och återkommer efter en paus. F-kameran zoomar mjukt ut. Planen har egna identiteter, roder, pilotanimationer, kondens och motorflammor samt positioner på kartan.

VERSION 14 — HELA ÖSTERSJÖN
Kartområde WGS84: 9–33°E, 53–66,5°N. Finska viken, Bottenviken, Kaliningrad, Rigabukten, Åland och Öresund. Nya områden har generaliserad Natural Earth-kust och illustrativ, plan mark; inga nya vägar eller byggnader. OSM-detaljer och lokal höjdmodell kring Bråvalla bevaras. Övningsplatser är fiktiva och inte verkliga incidentkoordinater. Välj Hela Östersjön i kartan eller ett nytt Startområde.

VERSION 11 — hjälm och flygutrustning efter SvD/Per Kustvik/Saabs foto:
ljusgrått skal, mörk hjässremsa, stort blankt visir, svarta fästen,
grå ribbad syrgasslang och mjuk grön flytvästkrage. Kamera 0 visar piloten.
Referensen är från 2016; modellen är en egen visuell approximation.

VERSION 10 — synliga kondensstråk (Automatisk/Tydlig/Av), alltid synlig HUD,
höjdknappar ±100 m och WASD/pilar för manuell flygning. P slår på autopilot.
Kartan saknar nu rutnät och ringar. Originalradio öppnas nere till höger;
tryck play om webbläsaren blockerar ljudstart. Efterbrännare på vid rörelse.
Pilotens kropp och ansikte bygger på MakeHuman CC0, med egen utrustning.

VERSION 9 — transparenta menyer och stor karta; detaljerad OSM-kust, vägar
och ortnamn. Maximera på kartan; Esc förminskar. Ortnamn på/av i flygpanelen.
Startområden Krokek och Arkösund. Kamera 0 visar den nya animerade piloten.

Spotify: öppna ♫ Spotify · spellista i flygpanelen och tryck play.
Musiken kräver internet och styrs av Spotifys spelare. Stäng musik stoppar den.
Bråvalla GeoJSON: viewer/bravalla.geojson, även länkad från Om scenen.

JAS 39 Gripen — offline WebGL2

STARTA
Dubbelklicka på Gripen-offline.html. Modellen, texturerna och Three.js är
inbäddade i filen. Ingen internetanslutning eller webbserver behövs.
Webbläsaren måste ha WebGL2 aktiverat. Välj Fri kamera för att rotera och zooma.
I cockpit: dra för att se dig omkring.

ALTERNATIV: VANLIG WEBBSIDA
Dubbelklicka på Starta-visaren.command och öppna http://127.0.0.1:8765.
Den servern använder bara datorns loopback-adress och kräver inte internet.
Stäng servern med Ctrl+C. Python 3 behövs för detta alternativ.
Kopiera hela viewer-mappen till en webbserver för att integrera visaren.

VERSION 8 — KARTLAGT BRÅVALLA OCH TAKTISK LÄGESBILD
Två korsande banor, vägnät och byggnadskonturer från OpenStreetMap.
Lokal höjdmodell från Mapzen Terrain Tiles; start på kartlagd tröskel 06.
Jämfört med OSM-kartan och Joshua06:s foton från 2019 av verkstad och torn.
Byggnadshöjder och fasader är uppskattade; inte en exakt historisk kopia.
Höjddata finns runt Bråvalla, inte över hela kartan. MSL = över havet,
AGL = över lokal terräng. GNSS-ellipsoidhöjd är inte samma sak som MSL.
Övrig mark är fortfarande förenklad. Se references/bravalla/README.txt.

Kartan har militärt inspirerad lägesbild, koordinatnät, ringar, track-ID,
true heading och tre närskalor; detta är inte en autentisk NORAD-kopia.
Kamera 9 visar hela Bråvalla. 1 NM-kartan visar detaljer kring eget flygplan.
WGS84-position och MSL-höjd är separerade från kameran; UTM 33N används
för gemensamma meterkoordinater. Framtida multiplayer kan använda samma
positioner via snapshot/relativePosition. Ingen nätanslutning till andra
piloter finns ännu. Se references/MULTIPLAYER-COORDINATES.txt.

VERSION 7 — BRÅVALLA TILL GOTLAND
Automatisk start från illustrativ Bråvalla-bana, sedan Bråviken och Gotland.
Autopilot är standard och cirklar i sökområdet. Välj Manuell flygning
för A/D eller piltangenter: sväng, W/S eller upp/ned: höjd. Pekknappar finns.
1×, 5× och 20× restid. Starten begränsas till högst 5×.
Översiktskarta visar position, kurs, rutt, sökområde och upptäckta mål.
Kustkonturer kommer från Natural Earth; mark och byggnader är förenklade.
Startområde kan väljas för att snabbt besöka Linköping/kusten/Gotland.
Tre illustrativa målfartyg upptäcks inom 12 km. Målkamera (8) öppnas efter
upptäckt. Avfyrning/träffar är förenklade speleffekter. Kondens vid sväng.
Radioval spelar en av tre originalfilmer via synlig YouTube-spelare.
Internet behövs; ingen TTS-radio används. Motorljudet förblir syntetiskt.
Version 6-beskrivningen nedan är historik och dess radiolägen är ersatta.
Testat: automatisk start och hel rutt till Gotland, manuell sväng/stigning,
återstart, koordinater, målupptäckt och träff, originalspelare, WebGL utan fel.

VERSION 6 — FLYGSCEN OCH RADIO
Förfinat huvglas, cockpitram, pilotdetaljer och tre animerade instrument.
Procedurgenererad skärgård med höjder, träd och hus, moln och dagsljusval.
FFT-hav från mkling.org/experiments/wave-dynamics (David Li, MIT).
Sju kameror; cockpit med förenklad HUD. 1–7 byter kamera, A/D roll,
W/S nosläge, R återställer. Avfyrning mot tre virtuella målflottar.
Efterbrännare och blinkande fenljus är visuella approximationer.
Motorljud och radio styrs separat. Tre kanaler med egna repliker och
syntetiskt tal: kustflygning, formation och engelsk övningsradio.
Originalradio från Försvarsmaktens film kan öppnas i separat YouTube-
spelare; den kräver internet. Inget originalljud har kopierats in.
Offline-röster beror på vilka röster enheten har installerade.

Detta är en visuell flygstudie, inte en komplett flygsimulator. HUD,
flygdata och vapeneffekter är förenklade. Kusten är inspirerad av filmerna,
inte en geografiskt exakt kopia. Grundmodellens UV-upplösning kvarstår.
Tidigare versionsbeskrivningar nedan är historik; v6 ersätter gamla reglage.

VERIFIERING VERSION 6
113 794 trianglar, glTF Validator 0 fel och 0 varningar.
Samma GLB inbäddad i offlinefilen; inga externa skript eller modellfiler.
Sju kameravyer och radioväljare visuellt testade i WebGL2 utan konsolfel.
Robot/bomb och träffeffekter testade. Originalradions spelare laddad.
Mobilvy kunde inte verifieras: verktygets breddöverskrivning tog inte effekt.
Återskapa v6-modellen: Blender --background --python scripts/refine_flight.py.
Se references/FLIGHT-REFERENCES.txt för källor och begränsningar.

VERSION 5 — PILOT OCH COCKPIT
Statisk, egenmodellerad pilot med flygdräkt, väst, sele, hjälm, krökt visir,
syrgasmask, ribbad slang, handskar och stövlar. Armarna är placerade mot
spak och gasreglage. Piloten är generisk; ingen specifik person återskapas.
Cockpit har fått tätningar, lås, sidokonsoler, vred, märkningar, skenor,
bakre däck och kablage. Grova äldre apparatblock har ersatts.
Små ytmonterade ventilationsdetaljer har tillkommit på flygkroppen.
Den målade yttexturen och dess upplösning från version 4 är oförändrade.

Pilot & stol visar en närbild utan huvglas. Visa pilot växlar synlighet.
Cockpit döljer piloten så att instrumenten kan granskas.
Den nya Wikipedia-länken levererade exakt samma 3008 × 1960-original
som den föregående referensen, verifierat med filernas SHA-1.
Fotot visar inte alla cockpitdetaljer; inredningen är approximativ och
instrumenten är statiska. Ingen anatomisk eller teknisk exakthet utlovas.

VERSION 4 — FOTOGRAFISK YTREFERENS
Referens: https://sv.wikipedia.org/wiki/Fil:Swedish_JAS-39_Gripen_landing.jpg
Foto: Msgt. Billy Johnston, USAF, 1 september 2003 (public domain).

Lacken har anpassats till neutralgrå färg, ljus nos, diskret patina,
smuts kring paneler och mörkare akter. 179, FARA, gula servicemarkeringar
 och lågkontrast-kronmärken finns i den reviderade texturen.
Separat roughness-textur styr den matta lackens glans. Luftintagen är
mörka och matta; utblåsets metall har dämpats.
Överlappande geometriska kronmärken från arbetsversion 3 har tagits bort
för att eliminera flimmer. Den nya atlasen är 1254 × 1254 pixlar.

Ytdetaljer, Akter & fena och Sidovy ger jämförbara utsnitt. Cockpit visar
instrumenten. Återställ vy återställer även automatisk rotation.

Grundmodellen är FlightGear-modellen och tidigare detaljering finns kvar:
807 nitar, statiska cockpitdetaljer och förenklade dekorativa yttre laster.
Flygkonfigurationen utan landningsställ behålls. Detta är en visuell
approximation, inte en exakt rekonstruktion av flygplanet i fotografiet.
Grundmodellens geometri och UV-upplösning begränsar extremt nära vyer.
Texturen är AI-redigerad från den tidigare UV-atlasen med fotot som visuell
referens; enskilda små stenciler och paneler är approximativa.

FILER
blender/gripen.blend — förfinad modell, packade texturer, kamera och studioljus.
blender/gripen-preview.png — Blender-rendering av slutversionen.
viewer/models/gripen.glb — export med inbäddade texturer.
viewer/index.html och app.js — vanlig WebGL2-visare med lokala beroenden.
Gripen-offline.html — fristående HTML med all renderingskod och modell inbäddad.
backups/v1, backups/v2 och backups/v4 — tidigare versioner för jämförelse/återskapande.
scripts/refine_gripen.py — reproducerbar detaljering av v1 i Blender.
scripts/cockpit_pilot.py — bygger revision 5 från backups/v4.
scripts/render_cockpit.py — separat närbild med dolt huvglas.
scripts/surface_photo.py — applicerar fotoanpassad yta på v2 och exporterar GLB.
scripts/render_preview.py — studioljus och förhandsbild.
blender/textures — albedo, roughness och Imagegen-prompt.
references — fotografi och källuppgifter.
scripts/build_offline.py — bygger HTML-filen med esbuild (argument: binärens sökväg).
source/JAS39-Gripen — ursprunglig FlightGear-källa inklusive licens.

KÄLLA OCH LICENS
https://github.com/FGMEMBERS/JAS39-Gripen
Commit: cd4cd2f42a8d8495abccaedaffca080b5b3d476c
Emmanuel Baranger (Helijah), med FGMEMBERS/FlightGear-bidrag.
GPL-2.0 enligt källprojektet; se source/JAS39-Gripen/COPYING.
Behåll attribution, licens och motsvarande källor när paketet delas.
Three.js 0.186.1: MIT, se viewer/vendor/LICENSE-three.txt.

VERIFIERING 2026-10-10
GLB: 104,288 trianglar, 7,614,560 byte.
Khronos glTF Validator: 0 fel, 0 varningar.
Alla GLB-texturer är inbäddade; HTML innehåller exakt samma GLB.
Inga externa skript eller modellhämtningar behövs i Gripen-offline.html.
Visuellt granskat i Blender-rendering och WebGL2 via lokal HTTP:
helhet, ytdetaljer, akter/fena, sidovy, pilot, pilotens synlighetsreglage
och cockpit. Inga konsolfel.
Direktöppning av file:// har inte testats automatiskt.
blender/web-preview.jpg visar den verifierade webbversionen.

ÅTERSKAPA
1. Blender --background --python scripts/refine_gripen.py (v1 till v2)
2. Blender --background --python scripts/surface_photo.py (använder backups/v2)
   Revision 5: Blender --background --python scripts/cockpit_pilot.py (backups/v4)
3. Blender --background --python scripts/render_preview.py
4. python3 scripts/build_offline.py /sökväg/till/esbuild
5. node scripts/validate.cjs /sökväg/till/gltf-validator
Den tidigare scripts/sharp_markings.py ingår INTE i slutversionens arbetsgång.
På denna Mac finns Blender i /Applications/Blender.app/Contents/MacOS/Blender.

VERSION 12 – ROTE, UPPDRAG OCH HUD
Rörliga canarder, elevoner, klaffar och sidroder; tidsbaserad kondens med vind,
upplösning och virvlar; animerad efterbrännare. F visar Martin Blå / Martin Röd.
Namn och unika lokala flygplansnummer väljs i startbriefingen. WGS84-paket
finns i gripenSession.snapshot(); nätverk/server för multiplayer ingår inte ännu.
Nyhetsurvalet i briefingen är källbelagt, senast kontrollerat 10 oktober 2026.
Uppdragen är fiktiva. Originalradion försöker spela med ljud efter Starta-knappen;
webbläsaren kan kräva ett separat tryck i spelaren. Kräver internet.
HUD i alla kameror: attitydstege, bank, sann kurs, markfart i knop, MSL-höjd i fot,
stig-/sjunkhastighet i fot/minut, AGL där höjdunderlag finns, gas och AP-läge.
Detta är simulatorinstrument och ingen exakt kopia av Gripens verkliga HUD.

VERSION 13 – STÄDER, SR-BRIEFING OCH DEMOLÄGE
OSM: 47 655 byggnader, 23 564 vägsträckor och 64 kyrkor i Norrköping,
Linköping, Oxelösund och Visby. Välj ort under Startområde. Grundformer och
lägen kommer från OSM; saknade höjder, fasader/tak och torn är förenklade.
Markhöjden utanför befintligt Bråvalla-underlag är fortfarande schematisk.
Originalinslag från Sveriges Radio till Öresund 27 februari, Gripeninsatserna
12 juni och mötet med bombplan 21 juli. Kräver internet. Övriga händelser
markeras uttryckligen när ett exakt SR-inslag inte har verifierats.
Demoläge startar efter 45 sekunder utan val i startbriefingen. Det visar start,
städer, rote, sex kameravyer, identifiering och en separat bestyckningsövning.
Varje del pågår 65 sekunder; kameran växlar var 12:e sekund. Klicka/tangent
återgår till briefingen. Ljud försöker starta; vid webbläsarblockering finns
Aktivera ljud. Starta demo med ljud ger även direkt start med användarklick.

KARTUTVIDGNING OCH STADSUPPVISNINGAR – 10 OKTOBER 2026
Kartans östra gräns är nu 42° E och omfattar Moskva.
Centrala Helsingfors, Sankt Petersburg och Moskva har OSM-byggnader och huvudvägar.
Det är avgränsade centrala stadsområden, inte hela storstadsregionerna.
Välj Flyguppvisning i briefingen och sedan stad. Staden kan även bytas under
pågående uppvisning. Alla sju städer med bebyggelse går att välja, samt den
ursprungliga rutten Bråvalla–Norrköping. Uppvisningarna är fria simulatorlägen.
Geografiska byggnadskonturer är verkliga; saknade höjder och ytutseenden uppskattas.
Se references/cities/EASTERN-CITIES.txt och de sparade OSM-frågorna för datatäckning.

Uppdatering 37 – 2026-10-11
Rubriken följer region och närmaste ort. Cockpit och landskap har separata djupintervall; cockpitglaset har en enklare genomskinlighet inifrån för stabil rendering.
Ryska flygplan har två dynamiska avgasflammor och vingkondens, samt fotografibaserade färgtolkningar och procedurmässigt slitage. Detta är inte exakta individmålningar från insatserna. Referenser: references/opponent-appearance/SOURCES.txt.
Tre nya valbara ryska arkivinspelningar ersätter Ringway-klippet: Russian Knights Kubinka, Russian Knights inflygning Belaja, Falcons of Russia Chabarovsk. Strömmas från Radioscanner och kräver internet. Kontext enligt uppladdarna; inte inspelningar från uppdragen. Källor: references/russian-radio.txt.
HUD och stadsurval uppdateras med begränsad frekvens; instrumenttexturer uppdateras endast i cockpit/pilotvy.

Uppdatering 38 – lokalt ryskt radioarkiv
De tre MP3-originalen ligger nu i viewer/audio/russian, med källor och SHA-256 i sources.json. De är även inbäddade direkt i Gripen-offline.html. Rysk radio behöver därmed ingen internetanslutning. Svenska YouTube-klipp och Spotify kräver fortfarande internet.

Uppdatering 39 – mindre radiofiler
AAC i mono minskar rysk radio från 11,1 till 5,2 MB (53 %). Full speltid. Original-MP3 finns separat i references/russian-radio-originals; paketen använder endast de komprimerade versionerna.

Uppdatering 40: rysk radio använder nu MP3, mono 16 kbit/s / 16 kHz. Totalt 3 621 336 byte, 30,4 % mindre än AAC-versionerna och 67,2 % mindre än originalen. Full speltid och full avkodning kontrollerade; originalen bevaras separat.

Uppdatering 41: kamerastyrd HUD visas bara i framåtriktad cockpit/följ-/fri kamera. Fotografibaserade AI-bearbetade UV-texturer för Su-24, Su-34 och Tu-22M3; rutmönstret borttaget. Originalmärkningar behålls som modellillustrationer. Su-34:s felaktiga texturrotationer korrigerade. Källor och bildprompter i references/opponent-appearance/SOURCES.txt. GitHub: privat Klingoon/gripen-flight-simulator.
